mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-03 01:09:50 +01:00
SynEdit: Replacing BlockMode selection now inserts in BlockMode too
SourceEditor: Fix upper/LowerCase Selection for Blockmode, Issue #15626 git-svn-id: trunk@23645 -
This commit is contained in:
parent
f4b1d030b0
commit
d9fc2ac6e7
@ -839,7 +839,7 @@ end;
|
||||
|
||||
procedure TSynEditSelection.SetSelText(const Value : string);
|
||||
begin
|
||||
SetSelTextPrimitive(smNormal, PChar(Value));
|
||||
SetSelTextPrimitive(FActiveSelectionMode, PChar(Value));
|
||||
end;
|
||||
|
||||
procedure TSynEditSelection.DoCaretChanged(Sender: TObject);
|
||||
|
||||
@ -1906,17 +1906,21 @@ end;
|
||||
Turns current text selection uppercase.
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TSourceEditor.UpperCaseSelection;
|
||||
var OldBlockBegin, OldBlockEnd: TPoint;
|
||||
var
|
||||
OldBlockBegin, OldBlockEnd: TPoint;
|
||||
OldMode: TSynSelectionMode;
|
||||
begin
|
||||
if ReadOnly then exit;
|
||||
if not EditorComponent.SelAvail then exit;
|
||||
OldBlockBegin:=FEditor.BlockBegin;
|
||||
OldBlockEnd:=FEditor.BlockEnd;
|
||||
OldMode:=FEditor.SelectionMode;
|
||||
FEditor.BeginUpdate;
|
||||
FEditor.BeginUndoBlock;
|
||||
FEditor.SelText:=UpperCase(EditorComponent.SelText);
|
||||
FEditor.BlockBegin:=OldBlockBegin;
|
||||
FEditor.BlockEnd:=OldBlockEnd;
|
||||
FEditor.SelectionMode := OldMode;
|
||||
FEditor.EndUndoBlock;
|
||||
FEditor.EndUpdate;
|
||||
end;
|
||||
@ -1927,17 +1931,21 @@ end;
|
||||
Turns current text selection lowercase.
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TSourceEditor.LowerCaseSelection;
|
||||
var OldBlockBegin, OldBlockEnd: TPoint;
|
||||
var
|
||||
OldBlockBegin, OldBlockEnd: TPoint;
|
||||
OldMode: TSynSelectionMode;
|
||||
begin
|
||||
if ReadOnly then exit;
|
||||
if not EditorComponent.SelAvail then exit;
|
||||
OldBlockBegin:=FEditor.BlockBegin;
|
||||
OldBlockEnd:=FEditor.BlockEnd;
|
||||
OldMode:=FEditor.SelectionMode;
|
||||
FEditor.BeginUpdate;
|
||||
FEditor.BeginUndoBlock;
|
||||
FEditor.SelText:=LowerCase(EditorComponent.SelText);
|
||||
FEditor.BlockBegin:=OldBlockBegin;
|
||||
FEditor.BlockEnd:=OldBlockEnd;
|
||||
FEditor.SelectionMode := OldMode;
|
||||
FEditor.EndUndoBlock;
|
||||
FEditor.EndUpdate;
|
||||
end;
|
||||
@ -1948,13 +1956,15 @@ end;
|
||||
Convert all tabs into spaces in current text selection.
|
||||
-------------------------------------------------------------------------------}
|
||||
procedure TSourceEditor.TabsToSpacesInSelection;
|
||||
var
|
||||
var
|
||||
OldBlockBegin, OldBlockEnd: TPoint;
|
||||
OldMode: TSynSelectionMode;
|
||||
begin
|
||||
if ReadOnly then exit;
|
||||
if not EditorComponent.SelAvail then exit;
|
||||
OldBlockBegin:=FEditor.BlockBegin;
|
||||
OldBlockEnd:=FEditor.BlockEnd;
|
||||
OldMode:=FEditor.SelectionMode;
|
||||
FEditor.BeginUpdate;
|
||||
FEditor.BeginUndoBlock;
|
||||
// ToDo: replace step by step to keep bookmarks and breakpoints
|
||||
@ -1962,6 +1972,7 @@ begin
|
||||
EditorComponent.TabWidth,FEditor.UseUTF8);
|
||||
FEditor.BlockBegin:=OldBlockBegin;
|
||||
FEditor.BlockEnd:=OldBlockEnd;
|
||||
FEditor.SelectionMode := OldMode;
|
||||
FEditor.EndUndoBlock;
|
||||
FEditor.EndUpdate;
|
||||
end;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user