From 8e0f2d4356a5ccd0ebc5424de39e85c1b4089b21 Mon Sep 17 00:00:00 2001 From: mattias Date: Fri, 7 Nov 2003 16:29:59 +0000 Subject: [PATCH] implemented Break Lines in Selection git-svn-id: trunk@4767 - --- ide/keymapping.pp | 14 +++++++++----- ide/lazarusidestrconsts.pas | 1 + ide/main.pp | 10 ++++++++++ ide/mainbar.pas | 7 +++++++ ide/sourceeditprocs.pas | 8 +++++++- ide/uniteditor.pp | 18 ++++++++++++++++++ 6 files changed, 52 insertions(+), 6 deletions(-) diff --git a/ide/keymapping.pp b/ide/keymapping.pp index ec99d5ec1f..7debe72c05 100644 --- a/ide/keymapping.pp +++ b/ide/keymapping.pp @@ -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)]; diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index 4f5b851dc6..687ff5389b 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -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'; diff --git a/ide/main.pp b/ide/main.pp index 012a24bab8..f1d62ce4c7 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -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 diff --git a/ide/mainbar.pas b/ide/mainbar.pas index cbba22744c..2cd3914bb3 100644 --- a/ide/mainbar.pas +++ b/ide/mainbar.pas @@ -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); diff --git a/ide/sourceeditprocs.pas b/ide/sourceeditprocs.pas index fd8412cbf1..aba503a96f 100644 --- a/ide/sourceeditprocs.pas +++ b/ide/sourceeditprocs.pas @@ -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. diff --git a/ide/uniteditor.pp b/ide/uniteditor.pp index dd6ea8a78a..4d46aca98b 100644 --- a/ide/uniteditor.pp +++ b/ide/uniteditor.pp @@ -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;