mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-11 09:40:31 +01:00
synedit + IDE: added KeyShortCuts for Folding in SynEdit from Martin Friebe (issue #12593)
git-svn-id: trunk@17299 -
This commit is contained in:
parent
f07d918ee6
commit
1614e73034
@ -8546,6 +8546,22 @@ begin
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SYN_LAZARUS}
|
||||
EcFoldLevel1..EcFoldLevel9:
|
||||
FoldAll(Command - EcFoldLevel1);
|
||||
EcFoldLevel0:
|
||||
UnfoldAll;
|
||||
EcFoldCurrent:
|
||||
begin
|
||||
CY := fTextView.ExpandedLineForBlockAtLine(CaretY);
|
||||
if CY > 0 then begin
|
||||
fTextView.FoldAtTextIndex(CY-1);
|
||||
SetCaretXY(Point(1, CY));
|
||||
end;
|
||||
end;
|
||||
EcUnFoldCurrent:
|
||||
fTextView.UnFoldAtTextIndex(CaretY-1);
|
||||
{$ENDIF}
|
||||
end;
|
||||
finally
|
||||
DecPaintLock;
|
||||
|
||||
@ -155,6 +155,19 @@ const
|
||||
ecSetMarker8 = 359; // Set marker, Data = PPoint - X, Y Pos
|
||||
ecSetMarker9 = 360; // Set marker, Data = PPoint - X, Y Pos
|
||||
|
||||
EcFoldLevel1 = 361; // fold all folds, greater/equal than nesting level 1
|
||||
EcFoldLevel2 = EcFoldLevel1 + 1;
|
||||
EcFoldLevel3 = EcFoldLevel2 + 1;
|
||||
EcFoldLevel4 = EcFoldLevel3 + 1;
|
||||
EcFoldLevel5 = EcFoldLevel4 + 1;
|
||||
EcFoldLevel6 = EcFoldLevel5 + 1;
|
||||
EcFoldLevel7 = EcFoldLevel6 + 1;
|
||||
EcFoldLevel8 = EcFoldLevel7 + 1;
|
||||
EcFoldLevel9 = EcFoldLevel8 + 1;
|
||||
EcFoldLevel0 = EcFoldLevel9 + 1;
|
||||
EcFoldCurrent = 371;
|
||||
EcUnFoldCurrent = 372;
|
||||
|
||||
ecDeleteLastChar = 501; // Delete last char (i.e. backspace key)
|
||||
ecDeleteChar = 502; // Delete char at cursor (i.e. delete key)
|
||||
ecDeleteWord = 503; // Delete from cursor to end of word
|
||||
@ -381,7 +394,7 @@ type
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
EditorCommandStrs: array[0..89] of TIdentMapEntry = (
|
||||
EditorCommandStrs: array[0..101] of TIdentMapEntry = (
|
||||
(Value: ecNone; Name: 'ecNone'),
|
||||
(Value: ecLeft; Name: 'ecLeft'),
|
||||
(Value: ecRight; Name: 'ecRight'),
|
||||
@ -471,7 +484,20 @@ const
|
||||
(Value: ecSetMarker6; Name: 'ecSetMarker6'),
|
||||
(Value: ecSetMarker7; Name: 'ecSetMarker7'),
|
||||
(Value: ecSetMarker8; Name: 'ecSetMarker8'),
|
||||
(Value: ecSetMarker9; Name: 'ecSetMarker9'));
|
||||
(Value: ecSetMarker9; Name: 'ecSetMarker9'),
|
||||
(Value: EcFoldLevel1; Name: 'EcFoldLevel1'),
|
||||
(Value: EcFoldLevel2; Name: 'EcFoldLevel2'),
|
||||
(Value: EcFoldLevel3; Name: 'EcFoldLevel1'),
|
||||
(Value: EcFoldLevel4; Name: 'EcFoldLevel1'),
|
||||
(Value: EcFoldLevel5; Name: 'EcFoldLevel1'),
|
||||
(Value: EcFoldLevel6; Name: 'EcFoldLevel6'),
|
||||
(Value: EcFoldLevel7; Name: 'EcFoldLevel7'),
|
||||
(Value: EcFoldLevel8; Name: 'EcFoldLevel8'),
|
||||
(Value: EcFoldLevel9; Name: 'EcFoldLevel9'),
|
||||
(Value: EcFoldLevel0; Name: 'EcFoldLevel0'),
|
||||
(Value: EcFoldCurrent; Name: 'EcFoldCurrent'),
|
||||
(Value: EcUnFoldCurrent; Name: 'EcUnFoldCurrent')
|
||||
);
|
||||
|
||||
procedure GetEditorCommandValues(Proc: TGetStrProc);
|
||||
var
|
||||
@ -888,6 +914,18 @@ begin
|
||||
AddKey(ecSetMarker7, ord('7'), [ssCtrl,ssShift]);
|
||||
AddKey(ecSetMarker8, ord('8'), [ssCtrl,ssShift]);
|
||||
AddKey(ecSetMarker9, ord('9'), [ssCtrl,ssShift]);
|
||||
AddKey(EcFoldLevel1, ord('1'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel2, ord('2'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel3, ord('3'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel4, ord('4'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel5, ord('5'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel6, ord('6'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel7, ord('7'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel8, ord('8'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel9, ord('9'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldLevel0, ord('0'), [ssAlt,ssShift]);
|
||||
AddKey(EcFoldCurrent, ord('-'), [ssAlt,ssShift]);
|
||||
AddKey(EcUnFoldCurrent, ord('+'), [ssAlt,ssShift]);
|
||||
AddKey(ecNormalSelect, ord('N'), [ssCtrl,ssShift]);
|
||||
AddKey(ecColumnSelect, ord('C'), [ssCtrl,ssShift]);
|
||||
AddKey(ecLineSelect, ord('L'), [ssCtrl,ssShift]);
|
||||
|
||||
@ -400,6 +400,19 @@ begin
|
||||
ecGotoEditor9: SetResult(VK_9,[ssAlt],VK_UNKNOWN,[]);
|
||||
ecGotoEditor0: SetResult(VK_0,[ssAlt],VK_UNKNOWN,[]);
|
||||
|
||||
EcFoldLevel1: SetResult(VK_1,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel2: SetResult(VK_2,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel3: SetResult(VK_3,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel4: SetResult(VK_4,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel5: SetResult(VK_5,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel6: SetResult(VK_6,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel7: SetResult(VK_7,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel8: SetResult(VK_8,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel9: SetResult(VK_9,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel0: SetResult(VK_0,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldCurrent: SetResult(VK_OEM_MINUS,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcUnFoldCurrent: SetResult(VK_OEM_PLUS,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
|
||||
// file menu
|
||||
ecNew: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
ecNewUnit: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
@ -726,6 +739,19 @@ begin
|
||||
ecGotoEditor9: SetResult(VK_9,[ssAlt],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
ecGotoEditor0: SetResult(VK_0,[ssAlt],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
|
||||
EcFoldLevel1: SetResult(VK_1,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel2: SetResult(VK_2,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel3: SetResult(VK_3,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel4: SetResult(VK_4,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel5: SetResult(VK_5,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel6: SetResult(VK_6,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel7: SetResult(VK_7,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel8: SetResult(VK_8,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel9: SetResult(VK_9,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldLevel0: SetResult(VK_0,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcFoldCurrent: SetResult(VK_OEM_PLUS,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
EcUnFoldCurrent: SetResult(VK_OEM_MINUS,[ssAlt,ssShift],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
|
||||
// file menu
|
||||
ecNew: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
ecNewUnit: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
@ -1231,6 +1257,19 @@ begin
|
||||
ecGotoEditor9: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
ecGotoEditor0: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
|
||||
EcFoldLevel1: SetResult(VK_1,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel2: SetResult(VK_2,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel3: SetResult(VK_3,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel4: SetResult(VK_4,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel5: SetResult(VK_5,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel6: SetResult(VK_6,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel7: SetResult(VK_7,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel8: SetResult(VK_8,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel9: SetResult(VK_9,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldLevel0: SetResult(VK_0,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcFoldCurrent: SetResult(VK_OEM_PLUS,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
EcUnFoldCurrent: SetResult(VK_OEM_MINUS,[ssAlt,ssShift],VK_UNKNOWN,[]);
|
||||
|
||||
// file menu
|
||||
ecNew: SetResult(VK_N,[ssMeta],VK_UNKNOWN,[]);
|
||||
ecNewUnit: SetResult(VK_UNKNOWN,[],VK_UNKNOWN,[]);
|
||||
@ -1538,6 +1577,11 @@ begin
|
||||
ecRemoveBreakPoint : Result:= srkmecRemoveBreakPoint;
|
||||
ecGotoEditor1..
|
||||
ecGotoEditor0 : Result:= Format(srkmecGotoEditor,[cmd-ecGotoEditor1]);
|
||||
EcFoldLevel1..
|
||||
EcFoldLevel9 : Result:= Format(srkmEcFoldLevel,[cmd-EcFoldLevel1]);
|
||||
EcFoldLevel0 : Result:= srkmecUnFoldAll;
|
||||
EcFoldCurrent : Result:= srkmecFoldCurrent;
|
||||
EcUnFoldCurrent : Result:= srkmecUnFoldCurrent;
|
||||
|
||||
// file menu
|
||||
ecNew : Result:= lisMenuNewOther;
|
||||
@ -2016,6 +2060,21 @@ begin
|
||||
ecOpenFileAtCursor);
|
||||
AddDefault(C,'Procedure List ...',srkmecProcedureList,ecProcedureList);
|
||||
|
||||
// folding
|
||||
C:=Categories[AddCategory('Folding',srkmCatFold,IDECmdScopeSrcEditOnly)];
|
||||
AddDefault(C, 'Fold to Level 1', Format(srkmEcFoldLevel,[1]), EcFoldLevel1);
|
||||
AddDefault(C, 'Fold to Level 2', Format(srkmEcFoldLevel,[2]), EcFoldLevel2);
|
||||
AddDefault(C, 'Fold to Level 3', Format(srkmEcFoldLevel,[3]), EcFoldLevel3);
|
||||
AddDefault(C, 'Fold to Level 4', Format(srkmEcFoldLevel,[4]), EcFoldLevel4);
|
||||
AddDefault(C, 'Fold to Level 5', Format(srkmEcFoldLevel,[5]), EcFoldLevel5);
|
||||
AddDefault(C, 'Fold to Level 6', Format(srkmEcFoldLevel,[6]), EcFoldLevel6);
|
||||
AddDefault(C, 'Fold to Level 7', Format(srkmEcFoldLevel,[7]), EcFoldLevel7);
|
||||
AddDefault(C, 'Fold to Level 8', Format(srkmEcFoldLevel,[8]), EcFoldLevel8);
|
||||
AddDefault(C, 'Fold to Level 9', Format(srkmEcFoldLevel,[9]), EcFoldLevel9);
|
||||
AddDefault(C, 'Unfold all', srkmecUnFoldAll, EcFoldLevel0);
|
||||
AddDefault(C, 'Fold at Cursor', srkmecFoldCurrent, EcFoldCurrent);
|
||||
AddDefault(C, 'Unfold at Cursor', srkmecUnFoldCurrent, EcUnFoldCurrent);
|
||||
|
||||
// marker - without menu items in the IDE bar
|
||||
C:=Categories[AddCategory('Marker',srkmCatMarker,IDECmdScopeSrcEditOnly)];
|
||||
AddDefault(C, 'Set free Bookmark', lisKMSetFreeBookmark, ecSetFreeBookmark);
|
||||
@ -2097,9 +2156,8 @@ begin
|
||||
AddDefault(C, 'Go to source editor 7', lisKMGoToSourceEditor7, ecGotoEditor7);
|
||||
AddDefault(C, 'Go to source editor 8', lisKMGoToSourceEditor8, ecGotoEditor8);
|
||||
AddDefault(C, 'Go to source editor 9', lisKMGoToSourceEditor9, ecGotoEditor9);
|
||||
AddDefault(C, 'Go to source editor 10', lisKMGoToSourceEditor10, ecGotoEditor0
|
||||
);
|
||||
|
||||
AddDefault(C, 'Go to source editor 10', lisKMGoToSourceEditor10, ecGotoEditor0);
|
||||
|
||||
// file menu
|
||||
C:=Categories[AddCategory('FileMenu',srkmCatFileMenu,nil)];
|
||||
AddDefault(C, 'New', lisMenuTemplateNew, ecNew);
|
||||
|
||||
@ -1871,6 +1871,10 @@ resourcestring
|
||||
lisKMGoToSourceEditor8 = 'Go to source editor 8';
|
||||
lisKMGoToSourceEditor9 = 'Go to source editor 9';
|
||||
srkmecGotoEditor = 'Go to editor %d';
|
||||
srkmEcFoldLevel = 'Fold to Level %d';
|
||||
srkmecUnFoldAll = 'Unfold all';
|
||||
srkmecFoldCurrent = 'Fold at Cursor';
|
||||
srkmecUnFoldCurrent = 'Unfold at Cursor';
|
||||
|
||||
// edit menu
|
||||
srkmecSelectionTabs2Spaces = 'Convert tabs to spaces in selection';
|
||||
@ -2007,6 +2011,7 @@ resourcestring
|
||||
srkmCatCmdCmd = 'Command commands';
|
||||
srkmCatSearchReplace = 'Text search and replace commands';
|
||||
srkmCatMarker = 'Text marker commands';
|
||||
srkmCatFold = 'Text folding commands';
|
||||
lisKMSetFreeBookmark = 'Set free Bookmark';
|
||||
srkmCatCodeTools = 'CodeTools commands';
|
||||
srkmCatSrcNoteBook = 'Source Notebook commands';
|
||||
|
||||
Loading…
Reference in New Issue
Block a user