mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 10:39:18 +02:00
IDE: todo list, adding files only once
git-svn-id: trunk@16547 -
This commit is contained in:
parent
8ae737a76d
commit
781f6e7a6c
@ -275,7 +275,7 @@ const
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
//DebugLn(['TfrmTodo.CreateToDoItem aFileName=',aFileName,' LineNumber=',LineNumber]);
|
||||||
Result := nil;
|
Result := nil;
|
||||||
|
|
||||||
ParsingString:= Trim(TokenString);
|
ParsingString:= Trim(TokenString);
|
||||||
@ -527,6 +527,8 @@ var
|
|||||||
CurPackage: TLazPackage;
|
CurPackage: TLazPackage;
|
||||||
CurProjFile: TLazProjectFile;
|
CurProjFile: TLazProjectFile;
|
||||||
CurPkgFile: TPkgFile;
|
CurPkgFile: TPkgFile;
|
||||||
|
Node: TAvgLvlTreeNode;
|
||||||
|
CurFile: TTLScannedFile;
|
||||||
begin
|
begin
|
||||||
if fBuild then Exit;
|
if fBuild then Exit;
|
||||||
|
|
||||||
@ -536,6 +538,7 @@ begin
|
|||||||
Owners:=nil;
|
Owners:=nil;
|
||||||
try
|
try
|
||||||
fBuild:=True;
|
fBuild:=True;
|
||||||
|
CodeToolBoss.ActivateWriteLock;
|
||||||
lvTodo.Items.Clear;
|
lvTodo.Items.Clear;
|
||||||
|
|
||||||
if MainSourceFilename='' then exit;
|
if MainSourceFilename='' then exit;
|
||||||
@ -603,7 +606,16 @@ begin
|
|||||||
ScanFile(CurPkgFile.Filename);
|
ScanFile(CurPkgFile.Filename);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Node:=fScannedFiles.FindLowest;
|
||||||
|
while Node<>nil do begin
|
||||||
|
CurFile:=TTLScannedFile(Node.Data);
|
||||||
|
for i:=0 to CurFile.Count-1 do
|
||||||
|
AddListItem(CurFile[i]);
|
||||||
|
Node:=fScannedFiles.FindSuccessor(Node);
|
||||||
|
end;
|
||||||
finally
|
finally
|
||||||
|
CodeToolBoss.DeactivateWriteLock;
|
||||||
Owners.Free;
|
Owners.Free;
|
||||||
Screen.Cursor:=crDefault;
|
Screen.Cursor:=crDefault;
|
||||||
fBuild:=False;
|
fBuild:=False;
|
||||||
@ -616,6 +628,7 @@ var
|
|||||||
begin
|
begin
|
||||||
if Assigned(aTodoItem) then
|
if Assigned(aTodoItem) then
|
||||||
begin
|
begin
|
||||||
|
//DebugLn(['TfrmTodo.AddListItem ',aTodoItem.Filename,' ',aTodoItem.LineNumber]);
|
||||||
aListitem := lvTodo.Items.Add;
|
aListitem := lvTodo.Items.Add;
|
||||||
aListitem.Data := aTodoItem;
|
aListitem.Data := aTodoItem;
|
||||||
if aTodoItem.Done then
|
if aTodoItem.Done then
|
||||||
@ -644,9 +657,8 @@ var
|
|||||||
CommentEnd: LongInt;
|
CommentEnd: LongInt;
|
||||||
CommentStr: String;
|
CommentStr: String;
|
||||||
CodeXYPosition: TCodeXYPosition;
|
CodeXYPosition: TCodeXYPosition;
|
||||||
i: Integer;
|
|
||||||
begin
|
begin
|
||||||
DebugLn(['TfrmTodo.ScanFile ',aFileName]);
|
//DebugLn(['TfrmTodo.ScanFile ',aFileName]);
|
||||||
ExpandedFilename:=TrimFilename(aFileName);
|
ExpandedFilename:=TrimFilename(aFileName);
|
||||||
|
|
||||||
Code:=CodeToolBoss.LoadFile(ExpandedFilename,true,false);
|
Code:=CodeToolBoss.LoadFile(ExpandedFilename,true,false);
|
||||||
@ -657,12 +669,13 @@ begin
|
|||||||
AVLNode:=fScannedFiles.FindKey(Pointer(Tool.MainFilename),
|
AVLNode:=fScannedFiles.FindKey(Pointer(Tool.MainFilename),
|
||||||
@CompareAnsiStringWithTLScannedFile);
|
@CompareAnsiStringWithTLScannedFile);
|
||||||
CurFile:=nil;
|
CurFile:=nil;
|
||||||
try
|
//DebugLn(['TfrmTodo.ScanFile ',Tool.MainFilename,' AVLNode=',AVLNode<>nil]);
|
||||||
if AVLNode<>nil then begin
|
if AVLNode<>nil then begin
|
||||||
CurFile:=TTLScannedFile(AVLNode.Data);
|
CurFile:=TTLScannedFile(AVLNode.Data);
|
||||||
// Abort if this file has already been scanned and has not changed
|
// Abort if this file has already been scanned and has not changed
|
||||||
if CurFile.CodeChangeStep=Tool.Scanner.ChangeStep then exit;
|
if CurFile.CodeChangeStep=Tool.Scanner.ChangeStep then exit;
|
||||||
end;
|
end;
|
||||||
|
//DebugLn(['TfrmTodo.ScanFile SCANNING ... ']);
|
||||||
|
|
||||||
// Add file name to list of scanned files
|
// Add file name to list of scanned files
|
||||||
if CurFile=nil then begin
|
if CurFile=nil then begin
|
||||||
@ -672,6 +685,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
// save ChangeStep
|
// save ChangeStep
|
||||||
CurFile.CodeChangeStep:=Tool.Scanner.ChangeStep;
|
CurFile.CodeChangeStep:=Tool.Scanner.ChangeStep;
|
||||||
|
//DebugLn(['TfrmTodo.ScanFile saved ChangeStep ',CurFile.CodeChangeStep,' ',Tool.Scanner.ChangeStep]);
|
||||||
// clear old items
|
// clear old items
|
||||||
CurFile.Clear;
|
CurFile.Clear;
|
||||||
|
|
||||||
@ -688,7 +702,7 @@ begin
|
|||||||
CommentEnd:=FindCommentEnd(Src,p,NestedComment);
|
CommentEnd:=FindCommentEnd(Src,p,NestedComment);
|
||||||
Tool.CleanPosToCaret(p,CodeXYPosition);
|
Tool.CleanPosToCaret(p,CodeXYPosition);
|
||||||
CommentStr:=copy(Src,p,CommentEnd-p);
|
CommentStr:=copy(Src,p,CommentEnd-p);
|
||||||
//DebugLn(['TfrmTodo.LoadFile CommentStr="',CommentStr,'"']);
|
//DebugLn(['TfrmTodo.ScanFile CommentStr="',CommentStr,'"']);
|
||||||
if Src[p]='/' then
|
if Src[p]='/' then
|
||||||
CreateToDoItem(CurFile,CodeXYPosition.Code.Filename, '//', '', CommentStr, CodeXYPosition.Y)
|
CreateToDoItem(CurFile,CodeXYPosition.Code.Filename, '//', '', CommentStr, CodeXYPosition.Y)
|
||||||
else if Src[p]='{' then
|
else if Src[p]='{' then
|
||||||
@ -697,12 +711,6 @@ begin
|
|||||||
CreateToDoItem(CurFile,CodeXYPosition.Code.Filename, '(*', '*)', CommentStr, CodeXYPosition.Y);
|
CreateToDoItem(CurFile,CodeXYPosition.Code.Filename, '(*', '*)', CommentStr, CodeXYPosition.Y);
|
||||||
p:=CommentEnd;
|
p:=CommentEnd;
|
||||||
until false;
|
until false;
|
||||||
finally
|
|
||||||
if (CurFile<>nil) then begin
|
|
||||||
for i:=0 to CurFile.Count-1 do
|
|
||||||
AddListItem(CurFile[i]);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TTodoItem }
|
{ TTodoItem }
|
||||||
|
Loading…
Reference in New Issue
Block a user