implemented Break Lines in Selection

git-svn-id: trunk@4767 -
This commit is contained in:
mattias 2003-11-07 16:29:59 +00:00
parent 8307c1426c
commit 8e0f2d4356
6 changed files with 52 additions and 6 deletions

View File

@ -84,11 +84,12 @@ const
ecSelectionComment = ecUserFirst + 54;
ecSelectionUncomment = ecUserFirst + 55;
ecSelectionSort = ecUserFirst + 56;
ecSelectToBrace = ecUserFirst + 57;
ecSelectCodeBlock = ecUserFirst + 58;
ecSelectLine = ecUserFirst + 59;
ecSelectParagraph = ecUserFirst + 60;
ecSelectionBreakLines = ecUserFirst + 57;
ecSelectToBrace = ecUserFirst + 58;
ecSelectCodeBlock = ecUserFirst + 59;
ecSelectLine = ecUserFirst + 60;
ecSelectParagraph = ecUserFirst + 61;
// insert text
ecInsertCharacter = ecUserFirst + 80;
ecInsertGPLNotice = ecUserFirst + 81;
@ -491,6 +492,7 @@ begin
ecSelectionComment: SetResult(VK_UNKNOWN, [],VK_UNKNOWN,[]);
ecSelectionUncomment: SetResult(VK_UNKNOWN, [],VK_UNKNOWN,[]);
ecSelectionSort: SetResult(VK_UNKNOWN, [],VK_UNKNOWN,[]);
ecSelectionBreakLines: SetResult(VK_UNKNOWN, [],VK_UNKNOWN,[]);
// editing
ecBlockIndent: SetResult(VK_I,[ssCtrl],VK_UNKNOWN,[]);
@ -1094,6 +1096,7 @@ begin
ecSelectionComment : Result:= lismenucommentselection;
ecSelectionUncomment : Result:= lismenuuncommentselection;
ecSelectionSort : Result:= lismenusortselection;
ecSelectionBreakLines : Result:= lismenusortselection;
ecSelectToBrace : Result:= lismenuselecttobrace;
ecSelectCodeBlock : Result:= lismenuselectcodeblock;
ecSelectLine : Result:= lismenuselectline;
@ -1889,6 +1892,7 @@ begin
AddDefault(C,'Comment selection',ecSelectionComment);
AddDefault(C,'Uncomment selection',ecSelectionUncomment);
AddDefault(C,'Sort selection',ecSelectionSort);
AddDefault(C,'Break Lines in selection',ecSelectionBreakLines);
// editing
C:=Categories[AddCategory('editing commands',srkmCatEditing,caSrcEditOnly)];

View File

@ -132,6 +132,7 @@ resourcestring
lisMenuCommentSelection = 'Comment selection';
lisMenuUncommentSelection = 'Uncomment selection';
lisMenuSortSelection = 'Sort selection';
lisMenuBeakLinesInSelection = 'Break Lines in selection';
lisMenuSelect = 'Select';
lisMenuSelectAll = 'Select all';
lisMenuSelectToBrace = 'Select to brace';

View File

@ -127,6 +127,7 @@ type
procedure mnuEditCommentBlockClicked(Sender: TObject);
procedure mnuEditUncommentBlockClicked(Sender: TObject);
procedure mnuEditSortBlockClicked(Sender: TObject);
procedure mnuEditSelectionBreakLinesClicked(Sender: TObject);
procedure mnuEditSelectAllClick(Sender: TObject);
procedure mnuEditSelectCodeBlockClick(Sender: TObject);
procedure mnuEditSelectToBraceClick(Sender: TObject);
@ -1444,6 +1445,7 @@ begin
itmEditCommentBlock.OnClick:=@mnuEditCommentBlockClicked;
itmEditUncommentBlock.OnClick:=@mnuEditUncommentBlockClicked;
itmEditSortBlock.OnClick:=@mnuEditSortBlockClicked;
itmEditSelectionBreakLines.OnClick:=@mnuEditSelectionBreakLinesClicked;
itmEditSelectAll.OnClick:=@mnuEditSelectAllClick;
itmEditSelectToBrace.OnClick:=@mnuEditSelectToBraceClick;
itmEditSelectCodeBlock.OnClick:=@mnuEditSelectCodeBlockClick;
@ -9726,6 +9728,11 @@ begin
DoEditMenuCommand(ecSelectionSort);
end;
procedure TMainIDE.mnuEditSelectionBreakLinesClicked(Sender: TObject);
begin
DoEditMenuCommand(ecSelectionBreakLines);
end;
procedure TMainIDE.mnuEditSelectAllClick(Sender: TObject);
begin
DoEditMenuCommand(ecSelectAll);
@ -9935,6 +9942,9 @@ end.
{ =============================================================================
$Log$
Revision 1.664 2003/11/07 16:29:59 mattias
implemented Break Lines in Selection
Revision 1.663 2003/11/06 19:13:34 mattias
fixed loading forms with errors

View File

@ -210,6 +210,7 @@ type
itmEditCommentBlock: TMenuItem;
itmEditUncommentBlock: TMenuItem;
itmEditSortBlock: TMenuItem;
itmEditSelectionBreakLines: TMenuItem;
itmEditSelect: TMenuItem;
itmEditSelectAll: TMenuItem;
itmEditSelectToBrace: TMenuItem;
@ -695,6 +696,11 @@ begin
itmEditTabsToSpacesBlock.Caption := lisMenuTabsToSpacesSelection;
mnuEdit.Add(itmEditTabsToSpacesBlock);
itmEditSelectionBreakLines := TMenuItem.Create(Self);
itmEditSelectionBreakLines.Name:='itmEditSelectionBreakLines';
itmEditSelectionBreakLines.Caption := lisMenuBeakLinesInSelection;
mnuEdit.Add(itmEditSelectionBreakLines);
mnuEdit.Add(CreateMenuSeparator);
itmEditCommentBlock := TMenuItem.Create(Self);
@ -1406,6 +1412,7 @@ begin
itmEditCommentBlock.ShortCut:=CommandToShortCut(ecSelectionComment);
itmEditUncommentBlock.ShortCut:=CommandToShortCut(ecSelectionUncomment);
itmEditSortBlock.ShortCut:=CommandToShortCut(ecSelectionSort);
itmEditSelectionBreakLines.ShortCut:=CommandToShortCut(ecSelectionBreakLines);
itmEditSelectAll.ShortCut:=CommandToShortCut(ecSelectAll);
itmEditSelectToBrace.ShortCut:=CommandToShortCut(ecSelectToBrace);
itmEditSelectCodeBlock.ShortCut:=CommandToShortCut(ecSelectCodeBlock);

View File

@ -34,7 +34,7 @@ unit SourceEditProcs;
interface
uses
Classes, SysUtils, BasicCodeTools, CodeTree, CodeToolManager,
Classes, SysUtils, LCLProc, BasicCodeTools, CodeTree, CodeToolManager,
PascalParserTool, IdentCompletionTool, GraphType, Graphics, EditorOptions,
SynEdit, SynCompletion;
@ -50,6 +50,7 @@ procedure PaintCompletionItem(const AKey: string; ACanvas: TCanvas;
aCompletion : TSynCompletion; CurrentCompletionType: TCompletionType);
function GetIdentCompletionValue(aCompletion : TSynCompletion;
var ValueType: TIdentComplValue; var CursorToLeft: integer): string;
function BreakLinesInText(const s: string; MaxLineLength: integer): string;
implementation
@ -296,5 +297,10 @@ begin
end;
end;
function BreakLinesInText(const s: string; MaxLineLength: integer): string;
begin
Result:=BreakString(s,MaxLineLength,GetLineIndent(s,1));
end;
end.

View File

@ -227,6 +227,7 @@ type
procedure CommentSelection;
procedure UncommentSelection;
procedure SortSelection;
procedure BreakLinesInSelection;
procedure SelectToBrace;
procedure SelectCodeBlock;
procedure SelectLine;
@ -1063,6 +1064,9 @@ Begin
ecSelectionSort:
SortSelection;
ecSelectionBreakLines:
BreakLinesInSelection;
ecSelectToBrace:
SelectToBrace;
@ -1278,6 +1282,20 @@ begin
EditorComponent.SelText:=NewSortedText;
end;
procedure TSourceEditor.BreakLinesInSelection;
var
OldSelection: String;
begin
if not EditorComponent.SelAvail then exit;
FEditor.BeginUpdate;
FEditor.BeginUndoBlock;
// ToDo: replace step by step to keep bookmarks and breakpoints
OldSelection:=EditorComponent.SelText;
FEditor.SelText:=BreakLinesInText(OldSelection,FEditor.RightEdge);
FEditor.EndUndoBlock;
FEditor.EndUpdate;
end;
procedure TSourceEditor.SelectToBrace;
begin
EditorComponent.SelectToBrace;