mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 06:29:32 +02:00
IDE/SynEdit: macro recorder, ignore certain commands
git-svn-id: trunk@35461 -
This commit is contained in:
parent
d09a026ad1
commit
a3467f2bc3
@ -73,6 +73,21 @@ type
|
||||
property RepeatCount : Byte read fRepeatCount write fRepeatCount;
|
||||
end;
|
||||
|
||||
{ TSynIgnoredEvent }
|
||||
|
||||
TSynIgnoredEvent = class(TSynMacroEvent)
|
||||
protected
|
||||
function GetAsString : string; override;
|
||||
procedure InitEventParameters(aStr : string); override;
|
||||
public
|
||||
procedure Initialize(aCmd: TSynEditorCommand;
|
||||
const aChar: TUTF8Char;
|
||||
aData: Pointer); override;
|
||||
procedure LoadFromStream(aStream: TStream); override;
|
||||
procedure SaveToStream(aStream: TStream); override;
|
||||
procedure Playback(aEditor: TCustomSynEdit); override;
|
||||
end;
|
||||
|
||||
TSynBasicEvent = class(TSynMacroEvent)
|
||||
protected
|
||||
fCommand: TSynEditorCommand;
|
||||
@ -264,6 +279,39 @@ type
|
||||
|
||||
implementation
|
||||
|
||||
{ TSynIgnoredEvent }
|
||||
|
||||
function TSynIgnoredEvent.GetAsString: string;
|
||||
begin
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
procedure TSynIgnoredEvent.InitEventParameters(aStr: string);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TSynIgnoredEvent.Initialize(aCmd: TSynEditorCommand; const aChar: TUTF8Char;
|
||||
aData: Pointer);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TSynIgnoredEvent.LoadFromStream(aStream: TStream);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TSynIgnoredEvent.SaveToStream(aStream: TStream);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
procedure TSynIgnoredEvent.Playback(aEditor: TCustomSynEdit);
|
||||
begin
|
||||
//
|
||||
end;
|
||||
|
||||
{ TSynDataEvent }
|
||||
|
||||
procedure TSynDataEvent.Initialize(aCmd: TSynEditorCommand; const aChar: TUTF8Char;
|
||||
|
@ -920,6 +920,8 @@ type
|
||||
FMacroRecorder: TSynMacroRecorder;
|
||||
FOnCurrentCodeBufferChanged: TNotifyEvent;
|
||||
procedure DoMacroRecorderState(Sender: TObject);
|
||||
procedure DoMacroRecorderUserCommand(aSender: TCustomSynMacroRecorder;
|
||||
aCmd: TSynEditorCommand; var aEvent: TSynMacroEvent);
|
||||
public
|
||||
property OnCurrentCodeBufferChanged: TNotifyEvent
|
||||
read FOnCurrentCodeBufferChanged write FOnCurrentCodeBufferChanged;
|
||||
@ -7684,6 +7686,19 @@ begin
|
||||
TSourceNotebook(SourceWindows[i]).UpdateStatusBar;
|
||||
end;
|
||||
|
||||
procedure TSourceEditorManagerBase.DoMacroRecorderUserCommand(aSender: TCustomSynMacroRecorder;
|
||||
aCmd: TSynEditorCommand; var aEvent: TSynMacroEvent);
|
||||
begin
|
||||
case aCmd of
|
||||
ecToggleFormUnit..ecViewThreads, ecViewHistory,
|
||||
ecNextEditor, ecPrevEditor, ecNextWindow, ecPrevWindow,
|
||||
ecGotoEditor1..ecGotoEditor0:
|
||||
aEvent := TSynIgnoredEvent.Create;
|
||||
else
|
||||
;//
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSourceEditorManagerBase.FreeSourceWindows;
|
||||
var
|
||||
s: TSourceEditorWindowInterface;
|
||||
@ -8115,6 +8130,7 @@ var
|
||||
begin
|
||||
FMacroRecorder := TSynMacroRecorder.Create(nil);
|
||||
FMacroRecorder.OnStateChange := @DoMacroRecorderState;
|
||||
FMacroRecorder.OnUserCommand := @DoMacroRecorderUserCommand;
|
||||
FMacroRecorder.RecordCommandID := ecSynMacroRecord;
|
||||
FMacroRecorder.PlaybackCommandID := ecSynMacroPlay;
|
||||
FMacroRecorder.RecordShortCut := 0;
|
||||
|
Loading…
Reference in New Issue
Block a user