mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-24 09:11:44 +02:00
SynEdit: assert correct method types
git-svn-id: trunk@55604 -
This commit is contained in:
parent
533c433bf7
commit
11a202ca0f
@ -50,7 +50,7 @@ type
|
||||
TSynEditNotifyReason = ( // TStringListLineCountEvent
|
||||
senrLineCount, // Lines Inserted or Deleted (if not empty, they will trigger senrLineChange too)
|
||||
senrLineChange, // Lines modified (also triggered by senrEditAction)
|
||||
senrLinesModified, // Send once in "EndUpdate". Modified, inserted or deleted
|
||||
senrLinesModified, //TStringListLinesModifiedEvent: Send once in "EndUpdate". Modified, inserted or deleted
|
||||
senrHighlightChanged, // used by Highlighter (invalidate and fold checks needed)
|
||||
// TStringListLineEditEvent
|
||||
senrEditAction, // EditInsert, EditDelete, EditLineBreak, ...
|
||||
@ -280,6 +280,12 @@ type
|
||||
procedure DoGetPhysicalCharWidths(Line: PChar; LineLen, Index: Integer; PWidths: PPhysicalCharWidth); virtual; abstract;
|
||||
|
||||
function GetDisplayView: TLazSynDisplayView; virtual;
|
||||
|
||||
procedure AddGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); virtual; abstract;
|
||||
procedure RemoveGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); virtual; abstract;
|
||||
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
@ -292,8 +298,6 @@ type
|
||||
procedure InsertLines(Index, NumLines: integer); virtual; abstract;
|
||||
procedure InsertStrings(Index: integer; NewStrings: TStrings); virtual; abstract;
|
||||
|
||||
procedure AddGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); virtual; abstract;
|
||||
procedure AddModifiedHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TStringListLinesModifiedEvent);
|
||||
procedure AddChangeHandler(AReason: TSynEditNotifyReason;
|
||||
@ -301,8 +305,6 @@ type
|
||||
procedure AddNotifyHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TNotifyEvent);
|
||||
|
||||
procedure RemoveGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); virtual; abstract;
|
||||
procedure RemoveModifiedHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TStringListLinesModifiedEvent);
|
||||
procedure RemoveChangeHandler(AReason: TSynEditNotifyReason;
|
||||
@ -988,12 +990,14 @@ end;
|
||||
procedure TSynEditStrings.AddChangeHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TStringListLineCountEvent);
|
||||
begin
|
||||
assert(AReason in [senrLineCount, senrLineChange, senrHighlightChanged], 'AddChangeHandler');
|
||||
AddGenericHandler(AReason, TMethod(AHandler));
|
||||
end;
|
||||
|
||||
procedure TSynEditStrings.AddNotifyHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TNotifyEvent);
|
||||
begin
|
||||
assert(AReason in [senrCleared..senrTextBufferChanged], 'AddNotifyHandler');
|
||||
AddGenericHandler(AReason, TMethod(AHandler));
|
||||
end;
|
||||
|
||||
@ -1007,12 +1011,14 @@ end;
|
||||
procedure TSynEditStrings.RemoveChangeHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TStringListLineCountEvent);
|
||||
begin
|
||||
assert(AReason in [senrLineCount, senrLineChange, senrHighlightChanged], 'RemoveChangeHandler');
|
||||
RemoveGenericHandler(AReason, TMethod(AHandler));
|
||||
end;
|
||||
|
||||
procedure TSynEditStrings.RemoveNotifyHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TNotifyEvent);
|
||||
begin
|
||||
assert(AReason in [senrCleared..senrTextBufferChanged], 'RemoveNotifyHandler');
|
||||
RemoveGenericHandler(AReason, TMethod(AHandler));
|
||||
end;
|
||||
|
||||
|
||||
@ -3925,8 +3925,8 @@ end;
|
||||
procedure TSynEditMarkupIfDef.SetLines(const AValue: TSynEditStrings);
|
||||
begin
|
||||
if Lines <> nil then begin
|
||||
Lines.RemoveGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
Lines.RemoveGenericHandler(senrTextBufferChanging, TMethod(@DoBufferChanging));
|
||||
Lines.RemoveNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
Lines.RemoveNotifyHandler(senrTextBufferChanging, @DoBufferChanging);
|
||||
//FLines.RemoveEditHandler(@DoLinesEdited);
|
||||
// FLines.RemoveChangeHandler(senrHighlightChanged, @DoHighlightChanged);
|
||||
end;
|
||||
@ -3936,8 +3936,8 @@ begin
|
||||
FOuterLines.Lines := AValue;
|
||||
|
||||
if Lines <> nil then begin
|
||||
Lines.AddGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
Lines.AddGenericHandler(senrTextBufferChanging, TMethod(@DoBufferChanging));
|
||||
Lines.AddNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
Lines.AddNotifyHandler(senrTextBufferChanging, @DoBufferChanging);
|
||||
//FLines.AddChangeHandler(senrHighlightChanged, @DoHighlightChanged);
|
||||
// FLines.AddEditHandler(@DoLinesEdited);
|
||||
end;
|
||||
|
||||
@ -205,6 +205,11 @@ type
|
||||
function LogicPosIsCombining(const AChar: PChar): Boolean; inline;
|
||||
|
||||
function GetDisplayView: TLazSynDisplayView; override;
|
||||
|
||||
procedure AddGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); override;
|
||||
procedure RemoveGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); override;
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
@ -219,10 +224,6 @@ type
|
||||
function GetPChar(ALineIndex: Integer; out ALen: Integer): PChar; override; // experimental
|
||||
procedure MarkModified(AFirst, ALast: Integer);
|
||||
procedure MarkSaved;
|
||||
procedure AddGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); override;
|
||||
procedure RemoveGenericHandler(AReason: TSynEditNotifyReason;
|
||||
AHandler: TMethod); override;
|
||||
procedure SendNotification(AReason: TSynEditNotifyReason;
|
||||
ASender: TSynEditStrings; aIndex, aCount: Integer); override;
|
||||
procedure SendNotification(AReason: TSynEditNotifyReason;
|
||||
|
||||
@ -76,8 +76,8 @@ procedure TSynGutterLineNumber.Init;
|
||||
begin
|
||||
inherited Init;
|
||||
FTextDrawer := Gutter.TextDrawer;
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrLineCount, TMethod(@LineCountChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrLineCount, @LineCountChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
FTextDrawer.RegisterOnFontChangeHandler(@FontChanged);
|
||||
LineCountchanged(nil, 0, 0);
|
||||
end;
|
||||
@ -196,8 +196,8 @@ end;
|
||||
procedure TSynGutterLineNumber.BufferChanged(Sender: TObject);
|
||||
begin
|
||||
TSynEditStringList(Sender).RemoveHanlders(self);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrLineCount, TMethod(@LineCountChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrLineCount, @LineCountChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
LineCountChanged(nil, 0, 0);
|
||||
end;
|
||||
|
||||
|
||||
@ -1112,7 +1112,7 @@ procedure TSynGutterLOvProviderModifiedLines.BufferChanged(Sender: TObject);
|
||||
begin
|
||||
TSynEditStringList(Sender).RemoveHanlders(self);
|
||||
TSynEditStringList(TextBuffer).AddModifiedHandler(senrLinesModified, @LineModified);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
end;
|
||||
|
||||
procedure TSynGutterLOvProviderModifiedLines.LineModified(Sender: TSynEditStrings; aIndex,
|
||||
@ -1145,7 +1145,7 @@ constructor TSynGutterLOvProviderModifiedLines.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
TSynEditStringList(TextBuffer).AddModifiedHandler(senrLinesModified, @LineModified);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
TCustomSynEdit(SynEdit).RegisterStatusChangedHandler(@SynStatusChanged, [scModified]);
|
||||
FFirstTextLineChanged := -1;
|
||||
FLastTextLineChanged := -1;
|
||||
@ -1257,8 +1257,8 @@ var
|
||||
i: Integer;
|
||||
begin
|
||||
TSynEditStringList(Sender).RemoveHanlders(self);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanging, TMethod(@BufferChanging));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanging, @BufferChanging);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
TCustomSynEdit(SynEdit).Marks.RegisterChangeHandler(@DoMarkChange,
|
||||
[smcrAdded, smcrRemoved, smcrLine, smcrVisible, smcrChanged]);
|
||||
|
||||
@ -1278,8 +1278,8 @@ var
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
Color := clBlue;
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanging, TMethod(@BufferChanging));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanging, @BufferChanging);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
|
||||
TCustomSynEdit(SynEdit).Marks.RegisterChangeHandler(@DoMarkChange,
|
||||
[smcrAdded, smcrRemoved, smcrLine, smcrVisible, smcrChanged]);
|
||||
@ -1316,8 +1316,8 @@ end;
|
||||
procedure TSynGutterLineOverview.Init;
|
||||
begin
|
||||
inherited Init;
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrLineCount, TMethod(@LineCountChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrLineCount, @LineCountChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
FWinControl := TSynChildWinControl.Create(Self);
|
||||
FWinControl.Parent := SynEdit;
|
||||
FWinControl.DoubleBuffered := SynEdit.DoubleBuffered;
|
||||
@ -1353,8 +1353,8 @@ end;
|
||||
procedure TSynGutterLineOverview.BufferChanged(Sender: TObject);
|
||||
begin
|
||||
TSynEditStringList(Sender).RemoveHanlders(self);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrLineCount, TMethod(@LineCountChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged, TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrLineCount, @LineCountChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged, @BufferChanged);
|
||||
LineCountChanged(nil, 0, 0);
|
||||
end;
|
||||
|
||||
|
||||
@ -1692,14 +1692,14 @@ begin
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrAfterDecPaintLock, @DoAfterDecPaintLock);
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrBeforeIncPaintLock, @DoBeforeIncPaintLock);
|
||||
ViewedTextBuffer.RemoveEditHandler(@DoLinesEdited);
|
||||
ViewedTextBuffer.RemoveGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSynPluginMultiCaretBase.DoEditorAdded(AValue: TCustomSynEdit);
|
||||
begin
|
||||
if Editor <> nil then begin
|
||||
ViewedTextBuffer.AddGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
ViewedTextBuffer.AddNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
ViewedTextBuffer.AddEditHandler(@DoLinesEdited);
|
||||
ViewedTextBuffer.AddNotifyHandler(senrBeforeIncPaintLock, @DoBeforeIncPaintLock);
|
||||
ViewedTextBuffer.AddNotifyHandler(senrAfterDecPaintLock, @DoAfterDecPaintLock);
|
||||
|
||||
@ -774,8 +774,8 @@ begin
|
||||
Active := False;
|
||||
if Editor <> nil then begin
|
||||
if not FTextBufferChanging then begin
|
||||
ViewedTextBuffer.RemoveGenericHandler(senrTextBufferChanging, TMethod(@DoBufferChanging));
|
||||
ViewedTextBuffer.RemoveGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrTextBufferChanging, @DoBufferChanging);
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
end;
|
||||
ViewedTextBuffer.RemoveEditHandler(@DoLinesEdited);
|
||||
ViewedTextBuffer.RemoveNotifyHandler(senrAfterIncPaintLock, @DoIncPaintLock);
|
||||
@ -810,8 +810,8 @@ begin
|
||||
ViewedTextBuffer.AddNotifyHandler(senrAfterIncPaintLock, @DoIncPaintLock);
|
||||
ViewedTextBuffer.AddNotifyHandler(senrBeforeDecPaintLock, @DoDecPaintLock);
|
||||
if not FTextBufferChanging then begin
|
||||
ViewedTextBuffer.AddGenericHandler(senrTextBufferChanging, TMethod(@DoBufferChanging));
|
||||
ViewedTextBuffer.AddGenericHandler(senrTextBufferChanged, TMethod(@DoBufferChanged));
|
||||
ViewedTextBuffer.AddNotifyHandler(senrTextBufferChanging, @DoBufferChanging);
|
||||
ViewedTextBuffer.AddNotifyHandler(senrTextBufferChanged, @DoBufferChanged);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1858,10 +1858,10 @@ end;
|
||||
procedure TIDESynGutterLOvProviderPascal.BufferChanged(Sender: TObject);
|
||||
begin
|
||||
TSynEditStringList(Sender).RemoveHanlders(self);
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrHighlightChanged,
|
||||
TMethod(@HighlightChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged,
|
||||
TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrHighlightChanged,
|
||||
@HighlightChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged,
|
||||
@BufferChanged);
|
||||
//LineCountChanged(nil, 0, 0);
|
||||
HighlightChanged(nil,-1,-1);
|
||||
end;
|
||||
@ -2038,10 +2038,10 @@ begin
|
||||
SingleLine := False;
|
||||
Color := $D4D4D4;
|
||||
Color2 := $E8E8E8;
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrHighlightChanged,
|
||||
TMethod(@HighlightChanged));
|
||||
TSynEditStringList(TextBuffer).AddGenericHandler(senrTextBufferChanged,
|
||||
TMethod(@BufferChanged));
|
||||
TSynEditStringList(TextBuffer).AddChangeHandler(senrHighlightChanged,
|
||||
@HighlightChanged);
|
||||
TSynEditStringList(TextBuffer).AddNotifyHandler(senrTextBufferChanged,
|
||||
@BufferChanged);
|
||||
end;
|
||||
|
||||
destructor TIDESynGutterLOvProviderPascal.Destroy;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user