mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 02:39:15 +02:00
IDE: added clear all-in-open-files or all-in-current-file bookmarks. Issue #0013428
git-svn-id: trunk@39557 -
This commit is contained in:
parent
f6c4b6b46c
commit
6b37bec961
@ -377,6 +377,8 @@ begin
|
|||||||
ecAutoCompletion : Result:= srkmecAutoCompletion;
|
ecAutoCompletion : Result:= srkmecAutoCompletion;
|
||||||
ecUserFirst : Result:= srkmecPrevBookmark;
|
ecUserFirst : Result:= srkmecPrevBookmark;
|
||||||
ecSetFreeBookmark : Result:= srkmecSetFreeBookmark;
|
ecSetFreeBookmark : Result:= srkmecSetFreeBookmark;
|
||||||
|
ecClearBookmarkForFile : Result:= srkmecClearBookmarkForFile;
|
||||||
|
ecClearAllBookmark : Result:= srkmecClearAllBookmark;
|
||||||
ecPrevBookmark : Result:= srkmecPrevBookmark;
|
ecPrevBookmark : Result:= srkmecPrevBookmark;
|
||||||
ecNextBookmark : Result:= srkmecNextBookmark;
|
ecNextBookmark : Result:= srkmecNextBookmark;
|
||||||
ecGotoMarker0 ..
|
ecGotoMarker0 ..
|
||||||
@ -1019,6 +1021,8 @@ begin
|
|||||||
|
|
||||||
// marker
|
// marker
|
||||||
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearBookmarkForFile:SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearAllBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecGotoMarker0: SetCombo(VK_0,[ssCtrl],VK_UNKNOWN,[], VK_Q,[SSCtrl],VK_0,[]);
|
ecGotoMarker0: SetCombo(VK_0,[ssCtrl],VK_UNKNOWN,[], VK_Q,[SSCtrl],VK_0,[]);
|
||||||
@ -1465,6 +1469,8 @@ begin
|
|||||||
|
|
||||||
// marker
|
// marker
|
||||||
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearBookmarkForFile:SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearAllBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecGotoMarker0: SetCombo(VK_Q,[ssCtrl],VK_0,[]);
|
ecGotoMarker0: SetCombo(VK_Q,[ssCtrl],VK_0,[]);
|
||||||
@ -2082,6 +2088,8 @@ begin
|
|||||||
|
|
||||||
// marker
|
// marker
|
||||||
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecSetFreeBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearBookmarkForFile:SetSingle(VK_UNKNOWN,[]);
|
||||||
|
ecClearAllBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecPrevBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
ecNextBookmark: SetSingle(VK_UNKNOWN,[]);
|
||||||
ecGotoMarker0: SetSingle(VK_0,[ssCtrl]);
|
ecGotoMarker0: SetSingle(VK_0,[ssCtrl]);
|
||||||
@ -2647,6 +2655,8 @@ begin
|
|||||||
// marker - without menu items in the IDE bar
|
// marker - without menu items in the IDE bar
|
||||||
C:=Categories[AddCategory('Marker',srkmCatMarker,IDECmdScopeSrcEditOnly)];
|
C:=Categories[AddCategory('Marker',srkmCatMarker,IDECmdScopeSrcEditOnly)];
|
||||||
AddDefault(C, 'Set free Bookmark', lisKMSetFreeBookmark, ecSetFreeBookmark);
|
AddDefault(C, 'Set free Bookmark', lisKMSetFreeBookmark, ecSetFreeBookmark);
|
||||||
|
AddDefault(C, 'Clear Bookmarks for current file', srkmecClearBookmarkForFile, ecClearBookmarkForFile);
|
||||||
|
AddDefault(C, 'Clear all Bookmarks', srkmecClearAllBookmark, ecClearAllBookmark);
|
||||||
AddDefault(C, 'Previous Bookmark', srkmecPrevBookmark, ecPrevBookmark);
|
AddDefault(C, 'Previous Bookmark', srkmecPrevBookmark, ecPrevBookmark);
|
||||||
AddDefault(C, 'Next Bookmark', srkmecNextBookmark, ecNextBookmark);
|
AddDefault(C, 'Next Bookmark', srkmecNextBookmark, ecNextBookmark);
|
||||||
AddDefault(C, 'Go to marker 0', lisKMGoToMarker0, ecGotoMarker0);
|
AddDefault(C, 'Go to marker 0', lisKMGoToMarker0, ecGotoMarker0);
|
||||||
|
@ -2613,6 +2613,8 @@ resourcestring
|
|||||||
srkmecAutoCompletion = 'Code template completion';
|
srkmecAutoCompletion = 'Code template completion';
|
||||||
srkmecUserFirst = 'User First';
|
srkmecUserFirst = 'User First';
|
||||||
srkmecSetFreeBookmark = 'Set a free Bookmark';
|
srkmecSetFreeBookmark = 'Set a free Bookmark';
|
||||||
|
srkmecClearBookmarkForFile = 'Clear Bookmarks for current file';
|
||||||
|
srkmecClearAllBookmark = 'Clear all Bookmarks';
|
||||||
srkmecPrevBookmark = 'Previous Bookmark';
|
srkmecPrevBookmark = 'Previous Bookmark';
|
||||||
srkmecNextBookmark = 'Next Bookmark';
|
srkmecNextBookmark = 'Next Bookmark';
|
||||||
lisKMGoToMarker0 = 'Go to marker 0';
|
lisKMGoToMarker0 = 'Go to marker 0';
|
||||||
|
31
ide/main.pp
31
ide/main.pp
@ -447,6 +447,7 @@ type
|
|||||||
procedure OnSrcNotebookEditorActived(Sender: TObject);
|
procedure OnSrcNotebookEditorActived(Sender: TObject);
|
||||||
procedure OnSrcNotebookEditorPlaceBookmark(Sender: TObject; var Mark: TSynEditMark);
|
procedure OnSrcNotebookEditorPlaceBookmark(Sender: TObject; var Mark: TSynEditMark);
|
||||||
procedure OnSrcNotebookEditorClearBookmark(Sender: TObject; var Mark: TSynEditMark);
|
procedure OnSrcNotebookEditorClearBookmark(Sender: TObject; var Mark: TSynEditMark);
|
||||||
|
procedure OnSrcNotebookEditorClearBookmarkId(Sender: TObject; ID: Integer);
|
||||||
procedure OnSrcNotebookEditorDoSetBookmark(Sender: TObject; ID: Integer; Toggle: Boolean);
|
procedure OnSrcNotebookEditorDoSetBookmark(Sender: TObject; ID: Integer; Toggle: Boolean);
|
||||||
procedure OnSrcNotebookEditorDoGotoBookmark(Sender: TObject; ID: Integer; Backward: Boolean);
|
procedure OnSrcNotebookEditorDoGotoBookmark(Sender: TObject; ID: Integer; Backward: Boolean);
|
||||||
procedure OnSrcNotebookEditorChanged(Sender: TObject);
|
procedure OnSrcNotebookEditorChanged(Sender: TObject);
|
||||||
@ -2032,6 +2033,7 @@ begin
|
|||||||
SourceEditorManager.RegisterChangeEvent(semEditorDestroy, @OnSrcNotebookEditorClosed);
|
SourceEditorManager.RegisterChangeEvent(semEditorDestroy, @OnSrcNotebookEditorClosed);
|
||||||
SourceEditorManager.OnPlaceBookmark := @OnSrcNotebookEditorPlaceBookmark;
|
SourceEditorManager.OnPlaceBookmark := @OnSrcNotebookEditorPlaceBookmark;
|
||||||
SourceEditorManager.OnClearBookmark := @OnSrcNotebookEditorClearBookmark;
|
SourceEditorManager.OnClearBookmark := @OnSrcNotebookEditorClearBookmark;
|
||||||
|
SourceEditorManager.OnClearBookmarkId := @OnSrcNotebookEditorClearBookmarkId;
|
||||||
SourceEditorManager.OnSetBookmark := @OnSrcNotebookEditorDoSetBookmark;
|
SourceEditorManager.OnSetBookmark := @OnSrcNotebookEditorDoSetBookmark;
|
||||||
SourceEditorManager.OnGotoBookmark := @OnSrcNotebookEditorDoGotoBookmark;
|
SourceEditorManager.OnGotoBookmark := @OnSrcNotebookEditorDoGotoBookmark;
|
||||||
SourceEditorManager.OnEditorPropertiesClicked := @mnuEnvEditorOptionsClicked;
|
SourceEditorManager.OnEditorPropertiesClicked := @mnuEnvEditorOptionsClicked;
|
||||||
@ -11246,6 +11248,35 @@ begin
|
|||||||
(Mark.BookmarkNumber);
|
(Mark.BookmarkNumber);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.OnSrcNotebookEditorClearBookmarkId(Sender: TObject;
|
||||||
|
ID: Integer);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
UInfo: TUnitInfo;
|
||||||
|
begin
|
||||||
|
if ID = -1 then begin
|
||||||
|
for i := 0 to 9 do begin
|
||||||
|
//b := Project1.Bookmarks[i];
|
||||||
|
UInfo := TUnitInfo(Project1.Bookmarks.UnitInfoForBookmarkWithIndex(i));
|
||||||
|
if UInfo <> nil then begin
|
||||||
|
if UInfo.OpenEditorInfoCount > 0 then
|
||||||
|
TSourceEditor(UInfo.OpenEditorInfo[0].EditorComponent).EditorComponent.ClearBookMark(i)
|
||||||
|
else
|
||||||
|
UInfo.DeleteBookmark(i);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
else begin
|
||||||
|
UInfo := TUnitInfo(Project1.Bookmarks.UnitInfoForBookmarkWithIndex(Id));
|
||||||
|
if UInfo <> nil then begin
|
||||||
|
if UInfo.OpenEditorInfoCount > 0 then
|
||||||
|
TSourceEditor(UInfo.OpenEditorInfo[0].EditorComponent).EditorComponent.ClearBookMark(Id)
|
||||||
|
else
|
||||||
|
UInfo.DeleteBookmark(Id);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.OnSrcNotebookEditorDoSetBookmark(Sender: TObject; ID: Integer; Toggle: Boolean);
|
procedure TMainIDE.OnSrcNotebookEditorDoSetBookmark(Sender: TObject; ID: Integer; Toggle: Boolean);
|
||||||
var
|
var
|
||||||
ActEdit, OldEdit: TSourceEditor;
|
ActEdit, OldEdit: TSourceEditor;
|
||||||
|
@ -87,6 +87,7 @@ type
|
|||||||
TOnLinesInsertedDeleted = procedure(Sender : TObject;
|
TOnLinesInsertedDeleted = procedure(Sender : TObject;
|
||||||
FirstLine,Count : Integer) of Object;
|
FirstLine,Count : Integer) of Object;
|
||||||
TPlaceBookMarkEvent = procedure(Sender: TObject; var Mark: TSynEditMark) of object;
|
TPlaceBookMarkEvent = procedure(Sender: TObject; var Mark: TSynEditMark) of object;
|
||||||
|
TPlaceBookMarkIdEvent = procedure(Sender: TObject; ID: Integer) of object;
|
||||||
TBookMarkActionEvent = procedure(Sender: TObject; ID: Integer; Toggle: Boolean) of object;
|
TBookMarkActionEvent = procedure(Sender: TObject; ID: Integer; Toggle: Boolean) of object;
|
||||||
|
|
||||||
TCharSet = set of Char;
|
TCharSet = set of Char;
|
||||||
@ -1091,6 +1092,7 @@ type
|
|||||||
private
|
private
|
||||||
FOnAddJumpPoint: TOnAddJumpPoint;
|
FOnAddJumpPoint: TOnAddJumpPoint;
|
||||||
FOnClearBookmark: TPlaceBookMarkEvent;
|
FOnClearBookmark: TPlaceBookMarkEvent;
|
||||||
|
FOnClearBookmarkId: TPlaceBookMarkIdEvent;
|
||||||
FOnClickLink: TMouseEvent;
|
FOnClickLink: TMouseEvent;
|
||||||
FOnCloseClicked: TOnCloseSrcEditor;
|
FOnCloseClicked: TOnCloseSrcEditor;
|
||||||
FOnDeleteLastJumpPoint: TNotifyEvent;
|
FOnDeleteLastJumpPoint: TNotifyEvent;
|
||||||
@ -1144,6 +1146,8 @@ type
|
|||||||
read FOnPlaceMark write FOnPlaceMark;
|
read FOnPlaceMark write FOnPlaceMark;
|
||||||
property OnClearBookmark: TPlaceBookMarkEvent // Bookmark was cleared by SynEdit
|
property OnClearBookmark: TPlaceBookMarkEvent // Bookmark was cleared by SynEdit
|
||||||
read FOnClearBookmark write FOnClearBookmark;
|
read FOnClearBookmark write FOnClearBookmark;
|
||||||
|
property OnClearBookmarkId: TPlaceBookMarkIdEvent
|
||||||
|
read FOnClearBookmarkId write FOnClearBookmarkId;
|
||||||
property OnSetBookmark: TBookMarkActionEvent // request to set a Bookmark
|
property OnSetBookmark: TBookMarkActionEvent // request to set a Bookmark
|
||||||
read FOnSetBookmark write FOnSetBookmark;
|
read FOnSetBookmark write FOnSetBookmark;
|
||||||
property OnGotoBookmark: TBookMarkActionEvent // request to go to a Bookmark
|
property OnGotoBookmark: TBookMarkActionEvent // request to go to a Bookmark
|
||||||
@ -1203,6 +1207,8 @@ var
|
|||||||
SrcEditMenuNextBookmark: TIDEMenuCommand;
|
SrcEditMenuNextBookmark: TIDEMenuCommand;
|
||||||
SrcEditMenuPrevBookmark: TIDEMenuCommand;
|
SrcEditMenuPrevBookmark: TIDEMenuCommand;
|
||||||
SrcEditMenuSetFreeBookmark: TIDEMenuCommand;
|
SrcEditMenuSetFreeBookmark: TIDEMenuCommand;
|
||||||
|
SrcEditMenuClearFileBookmark: TIDEMenuCommand;
|
||||||
|
SrcEditMenuClearAllBookmark: TIDEMenuCommand;
|
||||||
// debugging
|
// debugging
|
||||||
SrcEditMenuToggleBreakpoint: TIDEMenuCommand;
|
SrcEditMenuToggleBreakpoint: TIDEMenuCommand;
|
||||||
SrcEditMenuRunToCursor: TIDEMenuCommand;
|
SrcEditMenuRunToCursor: TIDEMenuCommand;
|
||||||
@ -1501,6 +1507,10 @@ begin
|
|||||||
nil, @ExecuteIdeMenuClick);
|
nil, @ExecuteIdeMenuClick);
|
||||||
SrcEditMenuSetFreeBookmark:=RegisterIDEMenuCommand
|
SrcEditMenuSetFreeBookmark:=RegisterIDEMenuCommand
|
||||||
(AParent, 'Set a free Bookmark',uemSetFreeBookmark, nil, @ExecuteIdeMenuClick);
|
(AParent, 'Set a free Bookmark',uemSetFreeBookmark, nil, @ExecuteIdeMenuClick);
|
||||||
|
SrcEditMenuClearFileBookmark:=RegisterIDEMenuCommand
|
||||||
|
(AParent, 'Clear Bookmark for current file',srkmecClearBookmarkForFile, nil, @ExecuteIdeMenuClick);
|
||||||
|
SrcEditMenuClearAllBookmark:=RegisterIDEMenuCommand
|
||||||
|
(AParent, 'Clear all Bookmark',srkmecClearAllBookmark, nil, @ExecuteIdeMenuClick);
|
||||||
{%endregion}
|
{%endregion}
|
||||||
|
|
||||||
{%region *** Debug Section ***}
|
{%region *** Debug Section ***}
|
||||||
@ -3120,6 +3130,7 @@ Procedure TSourceEditor.ProcessUserCommand(Sender: TObject;
|
|||||||
// define all extra keys here, that should not be handled by synedit
|
// define all extra keys here, that should not be handled by synedit
|
||||||
var
|
var
|
||||||
Handled: boolean;
|
Handled: boolean;
|
||||||
|
i,x,y: Integer;
|
||||||
Begin
|
Begin
|
||||||
//debugln('TSourceEditor.ProcessUserCommand A ',dbgs(Command));
|
//debugln('TSourceEditor.ProcessUserCommand A ',dbgs(Command));
|
||||||
FSharedValues.SetActiveSharedEditor(Self);
|
FSharedValues.SetActiveSharedEditor(Self);
|
||||||
@ -3297,6 +3308,13 @@ Begin
|
|||||||
EditorMacroForRecording.Stop;
|
EditorMacroForRecording.Stop;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
ecClearBookmarkForFile: begin
|
||||||
|
if Assigned(Manager) and Assigned(Manager.OnClearBookmarkId) then
|
||||||
|
for i := 0 to 9 do
|
||||||
|
if EditorComponent.GetBookMark(i,x,y) then
|
||||||
|
Manager.OnClearBookmarkId(Self, i);
|
||||||
|
end;
|
||||||
|
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
Handled:=false;
|
Handled:=false;
|
||||||
@ -7745,6 +7763,10 @@ begin
|
|||||||
if Assigned(Manager.OnSetBookmark) then
|
if Assigned(Manager.OnSetBookmark) then
|
||||||
Manager.OnSetBookmark(GetActiveSE, -1, False);
|
Manager.OnSetBookmark(GetActiveSE, -1, False);
|
||||||
|
|
||||||
|
ecClearAllBookmark:
|
||||||
|
if Assigned(Manager) and Assigned(Manager.OnClearBookmarkId) then
|
||||||
|
Manager.OnClearBookmarkId(Self, -1);
|
||||||
|
|
||||||
ecJumpBack:
|
ecJumpBack:
|
||||||
Manager.HistoryJump(Self,jhaBack);
|
Manager.HistoryJump(Self,jhaBack);
|
||||||
|
|
||||||
@ -9357,6 +9379,8 @@ begin
|
|||||||
SrcEditMenuNextBookmark.Command:=GetCommand(ecNextBookmark);
|
SrcEditMenuNextBookmark.Command:=GetCommand(ecNextBookmark);
|
||||||
SrcEditMenuPrevBookmark.Command:=GetCommand(ecPrevBookmark);
|
SrcEditMenuPrevBookmark.Command:=GetCommand(ecPrevBookmark);
|
||||||
SrcEditMenuSetFreeBookmark.Command:=GetCommand(ecSetFreeBookmark);
|
SrcEditMenuSetFreeBookmark.Command:=GetCommand(ecSetFreeBookmark);
|
||||||
|
SrcEditMenuClearFileBookmark.Command:=GetCommand(ecClearBookmarkForFile);
|
||||||
|
SrcEditMenuClearAllBookmark.Command:=GetCommand(ecClearAllBookmark);
|
||||||
|
|
||||||
for i:=0 to 9 do begin
|
for i:=0 to 9 do begin
|
||||||
TIDEMenuCommand(SrcEditSubMenuGotoBookmarks.FindByName('GotoBookmark'+IntToStr(i)))
|
TIDEMenuCommand(SrcEditSubMenuGotoBookmarks.FindByName('GotoBookmark'+IntToStr(i)))
|
||||||
|
@ -231,6 +231,9 @@ const
|
|||||||
ecSetFreeBookmark = ecFirstLazarus + 381;
|
ecSetFreeBookmark = ecFirstLazarus + 381;
|
||||||
ecPrevBookmark = ecFirstLazarus + 382;
|
ecPrevBookmark = ecFirstLazarus + 382;
|
||||||
ecNextBookmark = ecFirstLazarus + 383;
|
ecNextBookmark = ecFirstLazarus + 383;
|
||||||
|
ecClearBookmarkForFile = ecFirstLazarus + 384;
|
||||||
|
ecClearAllBookmark = ecFirstLazarus + 385;
|
||||||
|
|
||||||
|
|
||||||
// Macro
|
// Macro
|
||||||
ecSynMacroRecord = ecFirstLazarus + 390;
|
ecSynMacroRecord = ecFirstLazarus + 390;
|
||||||
@ -1218,7 +1221,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
IDEEditorCommandStrs: array[0..295] of TIdentMapEntry = (
|
IDEEditorCommandStrs: array[0..297] of TIdentMapEntry = (
|
||||||
// search
|
// search
|
||||||
(Value: ecFind; Name: 'ecFind'),
|
(Value: ecFind; Name: 'ecFind'),
|
||||||
(Value: ecFindAgain; Name: 'ecFindAgain'),
|
(Value: ecFindAgain; Name: 'ecFindAgain'),
|
||||||
@ -1396,6 +1399,8 @@ const
|
|||||||
(Value: ecSetFreeBookmark; Name: 'ecSetFreeBookmark'),
|
(Value: ecSetFreeBookmark; Name: 'ecSetFreeBookmark'),
|
||||||
(Value: ecPrevBookmark; Name: 'ecPrevBookmark'),
|
(Value: ecPrevBookmark; Name: 'ecPrevBookmark'),
|
||||||
(Value: ecNextBookmark; Name: 'ecNextBookmark'),
|
(Value: ecNextBookmark; Name: 'ecNextBookmark'),
|
||||||
|
(Value: ecClearBookmarkForFile; Name: 'ecClearBookmarkForFile'),
|
||||||
|
(Value: ecClearAllBookmark; Name: 'ecClearAllBookmark'),
|
||||||
|
|
||||||
// Macro
|
// Macro
|
||||||
(Value: ecSynMacroRecord; Name: 'ecSynMacroRecord'),
|
(Value: ecSynMacroRecord; Name: 'ecSynMacroRecord'),
|
||||||
|
Loading…
Reference in New Issue
Block a user