From 454ff7cfe47e9885d55198d02a9fbff43bd33cbf Mon Sep 17 00:00:00 2001 From: ondrej Date: Fri, 5 Feb 2021 13:26:18 +0000 Subject: [PATCH] SynEdit: remove circular dependency between SynEdit and SynEditMarkupHighAll git-svn-id: trunk@64483 - --- components/synedit/synedit.pp | 2 +- components/synedit/syneditmarkuphighall.pp | 17 ++++++++--------- components/synedit/syneditmiscclasses.pp | 1 + 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/components/synedit/synedit.pp b/components/synedit/synedit.pp index d492cbb47e..d5aef118c6 100644 --- a/components/synedit/synedit.pp +++ b/components/synedit/synedit.pp @@ -986,7 +986,7 @@ type out Attri: TSynHighlighterAttributes): boolean; //L505 procedure CaretAtIdentOrString(XY: TPoint; out AtIdent, NearString: Boolean); procedure GetWordBoundsAtRowCol(const XY: TPoint; out StartX, EndX: integer); override; - function GetWordAtRowCol(XY: TPoint): string; + function GetWordAtRowCol(XY: TPoint): string; override; function NextTokenPos: TPoint; virtual; deprecated; // use next word pos instead function NextWordPos: TPoint; virtual; function PrevWordPos: TPoint; virtual; diff --git a/components/synedit/syneditmarkuphighall.pp b/components/synedit/syneditmarkuphighall.pp index 573ed46a89..2c63f45042 100644 --- a/components/synedit/syneditmarkuphighall.pp +++ b/components/synedit/syneditmarkuphighall.pp @@ -440,7 +440,6 @@ type end; implementation -uses SynEdit; const SEARCH_START_OFFS = 100; // Search n lises before/after visible area. (Before applies only, if no exact offset can not be calculated from searchtext) @@ -2726,27 +2725,27 @@ begin exit(''); if FToggledWord <> '' then exit(FToggledWord); - If TCustomSynEdit(SynEdit).SelAvail then begin - LowBnd := TCustomSynEdit(SynEdit).BlockBegin; - UpBnd := TCustomSynEdit(SynEdit).BlockEnd; + If SynEdit.SelAvail then begin + LowBnd := SynEdit.BlockBegin; + UpBnd := SynEdit.BlockEnd; i := UpBnd.y - LowBnd.y + 1; if (i > LowBnd.y) and (i > Lines.Count - UpBnd.y) then exit(''); if FTrim then - Result := TrimS(TCustomSynEdit(SynEdit).SelText) + Result := TrimS(SynEdit.SelText) else - Result := TCustomSynEdit(SynEdit).SelText; + Result := SynEdit.SelText; if TrimS(Result) = '' then Result := ''; FLowBound := LowBnd; FUpBound := UpBnd; end else begin - Result := TCustomSynEdit(SynEdit).GetWordAtRowCol(Caret.LineBytePos); + Result := SynEdit.GetWordAtRowCol(Caret.LineBytePos); if FIgnoreKeywords and assigned(FHighlighter) and FHighlighter.IsKeyword(Result) then Result := ''; FLowBound.Y := Caret.LinePos; FUpBound.Y := Caret.LinePos; - TCustomSynEdit(SynEdit).GetWordBoundsAtRowCol(Caret.LineBytePos, FLowBound.X, FUpBound.X); + SynEdit.GetWordBoundsAtRowCol(Caret.LineBytePos, FLowBound.X, FUpBound.X); end; end; @@ -2762,7 +2761,7 @@ function TSynEditMarkupHighlightAllCaret.GetCurrentOption: TSynSearchOptions; begin if FToggledWord <> '' then exit(FToggledOption); - If TCustomSynEdit(SynEdit).SelAvail or not(FFullWord) then + If SynEdit.SelAvail or not(FFullWord) then Result := [] else if (FFullWordMaxLen >0) and (UTF8Length(GetCurrentText) > FFullWordMaxLen) then diff --git a/components/synedit/syneditmiscclasses.pp b/components/synedit/syneditmiscclasses.pp index ab44f97921..4d0c673f55 100644 --- a/components/synedit/syneditmiscclasses.pp +++ b/components/synedit/syneditmiscclasses.pp @@ -217,6 +217,7 @@ type function TextXYToScreenXY(APhysTextXY: TPhysPoint): TPhysPoint; virtual; abstract; procedure GetWordBoundsAtRowCol(const XY: TPoint; out StartX, EndX: integer); virtual; abstract; + function GetWordAtRowCol(XY: TPoint): string; virtual; abstract; // Cursor procedure UpdateCursorOverride; virtual; abstract;