mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 23:49:13 +02:00
codetools: TLinkScanner.CleanedPosToCursor: fixed when pos at artifical code, issue #22852
git-svn-id: trunk@38615 -
This commit is contained in:
parent
82fd01ca5c
commit
3ba660c99f
@ -3972,6 +3972,26 @@ function TLinkScanner.CleanedPosToCursor(ACleanedPos: integer;
|
|||||||
'TLinkScanner.CleanedPosToCursor Consistency-Error '+IntToStr(i));
|
'TLinkScanner.CleanedPosToCursor Consistency-Error '+IntToStr(i));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure ConsistencyCheckStart;
|
||||||
|
begin
|
||||||
|
raise Exception.Create(
|
||||||
|
'TLinkScanner.CleanedPosToCursor Consistency-Error no start link with code found');
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Found(LinkID: integer);
|
||||||
|
begin
|
||||||
|
ACode:=FLinks[LinkID].Code;
|
||||||
|
if ACode=nil then begin
|
||||||
|
repeat
|
||||||
|
dec(LinkID);
|
||||||
|
if LinkID<0 then
|
||||||
|
ConsistencyCheckStart;
|
||||||
|
ACode:=FLinks[LinkID].Code;
|
||||||
|
until ACode<>nil;
|
||||||
|
end;
|
||||||
|
ACursorPos:=ACleanedPos-FLinks[LinkID].CleanedPos+FLinks[LinkID].SrcPos;
|
||||||
|
end;
|
||||||
|
|
||||||
var l,r,m: integer;
|
var l,r,m: integer;
|
||||||
begin
|
begin
|
||||||
Result:=(ACleanedPos>=1) and (ACleanedPos<=CleanedLen);
|
Result:=(ACleanedPos>=1) and (ACleanedPos<=CleanedLen);
|
||||||
@ -3987,14 +4007,12 @@ begin
|
|||||||
else if ACleanedPos>=FLinks[m+1].CleanedPos then
|
else if ACleanedPos>=FLinks[m+1].CleanedPos then
|
||||||
l:=m+1
|
l:=m+1
|
||||||
else begin
|
else begin
|
||||||
ACode:=FLinks[m].Code;
|
Found(m);
|
||||||
ACursorPos:=ACleanedPos-FLinks[m].CleanedPos+FLinks[m].SrcPos;
|
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
end else begin
|
end else begin
|
||||||
if ACleanedPos>=FLinks[m].CleanedPos then begin
|
if ACleanedPos>=FLinks[m].CleanedPos then begin
|
||||||
ACode:=FLinks[m].Code;
|
Found(m);
|
||||||
ACursorPos:=ACleanedPos-FLinks[m].CleanedPos+FLinks[m].SrcPos;
|
|
||||||
exit;
|
exit;
|
||||||
end else
|
end else
|
||||||
ConsistencyCheckI(2);
|
ConsistencyCheckI(2);
|
||||||
|
@ -775,10 +775,6 @@ begin
|
|||||||
// clear old items
|
// clear old items
|
||||||
CurFile.Clear;
|
CurFile.Clear;
|
||||||
|
|
||||||
// Display file name being processed
|
|
||||||
//StatusBar.SimpleText := aFileName;
|
|
||||||
//StatusBar.Repaint;
|
|
||||||
|
|
||||||
Src:=Tool.Src;
|
Src:=Tool.Src;
|
||||||
p:=1;
|
p:=1;
|
||||||
NestedComment:=CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename);
|
NestedComment:=CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename);
|
||||||
|
Loading…
Reference in New Issue
Block a user