From 02cec874b002b6cbd84f316211252a1bdc218eeb Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 24 Jul 2009 21:35:14 +0000 Subject: [PATCH] SynEdit, small optimization for same-word-markup (dont, try to find block, if select-all) git-svn-id: trunk@20939 - --- components/synedit/syneditmarkuphighall.pp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/synedit/syneditmarkuphighall.pp b/components/synedit/syneditmarkuphighall.pp index 9cf6221dce..38fe1c31da 100644 --- a/components/synedit/syneditmarkuphighall.pp +++ b/components/synedit/syneditmarkuphighall.pp @@ -675,19 +675,27 @@ function TSynEditMarkupHighlightAllCaret.GetCurrentText: String; while (i > 0) and (Result[i] in [#1..#32]) do dec(i); Result := copy(Result, 1, i); end; +var + LowBnd, UpBnd: TPoint; + i: integer; begin if Caret = nil then exit(''); if FToggledWord <> '' then exit(FToggledWord); If TSynEdit(SynEdit).SelAvail then begin + LowBnd := TSynEdit(SynEdit).BlockBegin; + UpBnd := TSynEdit(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(TSynEdit(SynEdit).SelText) else Result := TSynEdit(SynEdit).SelText; if TrimS(Result) = '' then Result := ''; - FLowBound := TSynEdit(SynEdit).BlockBegin; - FUpBound := TSynEdit(SynEdit).BlockEnd; + FLowBound := LowBnd; + FUpBound := UpBnd; end else begin Result := TSynEdit(SynEdit).GetWordAtRowCol(Caret.LineBytePos); if FIgnoreKeywords and assigned(FHighlighter)