mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 18:19:34 +02:00
IDE: check smart hint word: simplified
git-svn-id: trunk@49873 -
This commit is contained in:
parent
d5bd14f7ac
commit
df23bf086e
33
ide/main.pp
33
ide/main.pp
@ -69,7 +69,7 @@ uses
|
||||
// CodeTools
|
||||
FileProcs, FindDeclarationTool, LinkScanner, BasicCodeTools, CodeToolsStructs,
|
||||
CodeToolManager, CodeCache, DefineTemplates, KeywordFuncLists, CodeTree,
|
||||
StdCodeTools, CodeAtom,
|
||||
StdCodeTools,
|
||||
// LazUtils
|
||||
// use lazutf8, lazfileutils and lazfilecache after FileProcs and FileUtil
|
||||
FileUtil, LazFileUtils, LazFileCache, LazUTF8, LazUTF8Classes, UTF8Process,
|
||||
@ -10361,7 +10361,7 @@ var
|
||||
HasHint: Boolean;
|
||||
p: SizeInt;
|
||||
Opts: TDBGEvaluateFlags;
|
||||
AbsPos: integer;
|
||||
AtomStartPos, AtomEndPos: integer;
|
||||
AtomRect: TRect;
|
||||
begin
|
||||
//DebugLn(['TMainIDE.OnSrcNotebookShowHintForSource START']);
|
||||
@ -10448,31 +10448,10 @@ begin
|
||||
begin
|
||||
//Find start of identifier
|
||||
AtomRect := Rect(-1,-1,-1,-1);
|
||||
SrcEdit.CodeBuffer.LineColToPosition(CaretPos.y, CaretPos.x, AbsPos);
|
||||
if (AbsPos > 0) and (AbsPos <= SrcEdit.CodeBuffer.SourceLength) and
|
||||
CodeToolBoss.InitCurCodeTool(SrcEdit.CodeBuffer)
|
||||
then
|
||||
begin
|
||||
CodeToolBoss.CurCodeTool.BuildTree(lsrInit);
|
||||
CodeToolBoss.CurCodeTool.MoveCursorToCleanPos(AbsPos);
|
||||
CodeToolBoss.CurCodeTool.ReadPriorAtom;
|
||||
CodeToolBoss.CurCodeTool.MoveCursorToCleanPos(CodeToolBoss.CurCodeTool.CurPos.StartPos);
|
||||
repeat
|
||||
CodeToolBoss.CurCodeTool.ReadNextAtom;
|
||||
until CodeToolBoss.CurCodeTool.CurPos.Flag = cafWord;
|
||||
SrcEdit.CodeBuffer.AbsoluteToLineCol(CodeToolBoss.CurCodeTool.CurPos.StartPos,
|
||||
AtomRect.Top, AtomRect.Left);
|
||||
SrcEdit.CodeBuffer.AbsoluteToLineCol(CodeToolBoss.CurCodeTool.CurPos.EndPos,
|
||||
AtomRect.Bottom, AtomRect.Right);
|
||||
AtomRect.TopLeft := SrcEdit.EditorComponent.RowColumnToPixels(AtomRect.TopLeft);
|
||||
AtomRect.BottomRight := SrcEdit.EditorComponent.RowColumnToPixels(AtomRect.BottomRight);
|
||||
Inc(AtomRect.Bottom, SrcEdit.EditorComponent.LineHeight);
|
||||
end;
|
||||
if (AtomRect.Left = -1) then//something went wrong, use position of caret
|
||||
begin
|
||||
AtomRect.TopLeft:=SrcEdit.EditorComponent.RowColumnToPixels(CaretPos);
|
||||
AtomRect.BottomRight:=AtomRect.TopLeft;
|
||||
end;
|
||||
SrcEdit.EditorComponent.GetWordBoundsAtRowCol(CaretPos, AtomStartPos, AtomEndPos);
|
||||
AtomRect.TopLeft := SrcEdit.EditorComponent.RowColumnToPixels(Point(AtomStartPos, CaretPos.y));
|
||||
AtomRect.BottomRight := SrcEdit.EditorComponent.RowColumnToPixels(Point(AtomEndPos, CaretPos.y));
|
||||
Inc(AtomRect.Bottom, SrcEdit.EditorComponent.LineHeight);
|
||||
|
||||
SrcEdit.ActivateHint(AtomRect, BaseURL, SmartHintStr, AutoShown);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user