IDEIntf: FindUnitsOfOwner: added AddTabs parameter, issue #31006, from Silvio Clécio

git-svn-id: trunk@53450 -
This commit is contained in:
mattias 2016-11-25 11:53:51 +00:00
parent 733394319b
commit 534385f4eb
5 changed files with 18 additions and 14 deletions

View File

@ -383,7 +383,7 @@ type
procedure DoJumpToCodeToolBossError; virtual; abstract;
function NeedSaveSourceEditorChangesToCodeCache(AEditor: TSourceEditorInterface): boolean; virtual; abstract;
function SaveSourceEditorChangesToCodeCache(AEditor: TSourceEditorInterface): boolean; virtual; abstract; // true if something was saved
function FindUnitsOfOwner(TheOwner: TObject; AddListed, AddUsed, AddPackages: boolean): TStrings; virtual; abstract;
function FindUnitsOfOwner(TheOwner: TObject; AddListed, AddUsed, AddPackages, AddTabs: boolean): TStrings; virtual; abstract;
property OpenEditorsOnCodeToolChange: boolean read FOpenEditorsOnCodeToolChange
write FOpenEditorsOnCodeToolChange;
property SaveClosedSourcesOnCodeToolChange: boolean read FSaveClosedSourcesOnCodeToolChange

View File

@ -29,7 +29,7 @@ unit ToDoDlg;
interface
uses
Classes, SysUtils, LCLProc, Forms, Controls, Graphics, Dialogs, StdCtrls,
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Buttons, ButtonPanel, Menus, Spin,
TodoList, ToDoListStrConsts, IDECommands, LCLType,
MenuIntf, PackageIntf, SrcEditorIntf, IDEWindowIntf, LazIDEIntf;
@ -49,10 +49,6 @@ type
TodoLabel: TLabel;
TodoMemo: TMemo;
procedure FormCreate(Sender: TObject);
private
public
end;
var

View File

@ -281,7 +281,7 @@ begin
end;
ResolveIDEItem(CurOwner,CurProject,CurPkg);
Units:=LazarusIDE.FindUnitsOfOwner(CurOwner,true,true,false);
Units:=LazarusIDE.FindUnitsOfOwner(CurOwner,true,true,false,false);
for i:=0 to Units.Count-1 do
ScanFile(Units[i]);
@ -311,6 +311,7 @@ end;
procedure TIDETodoWindow.FormShow(Sender: TObject);
begin
IdleConnected:=true;
UpdateTodos(true);
end;
procedure TIDETodoWindow.HelpButtonClick(Sender: TObject);

View File

@ -894,7 +894,7 @@ type
function NeedSaveSourceEditorChangesToCodeCache(AEditor: TSourceEditorInterface): boolean; override;
function SaveSourceEditorChangesToCodeCache(AEditor: TSourceEditorInterface): boolean; override;
function FindUnitsOfOwner(TheOwner: TObject; AddListed, AddUsed,
AddPackages: boolean): TStrings; override;
AddPackages, AddTabs: boolean): TStrings; override;
procedure ApplyCodeToolChanges;
procedure DoJumpToOtherProcedureSection;
procedure DoFindDeclarationAtCursor;
@ -9476,9 +9476,9 @@ begin
end;
function TMainIDE.FindUnitsOfOwner(TheOwner: TObject; AddListed, AddUsed,
AddPackages: boolean): TStrings;
AddPackages, AddTabs: boolean): TStrings;
begin
Result:=SourceFileMgr.FindUnitsOfOwner(TheOwner,AddListed,AddUsed,AddPackages);
Result:=SourceFileMgr.FindUnitsOfOwner(TheOwner,AddListed,AddUsed,AddPackages,AddTabs);
end;
function TMainIDE.DoJumpToSourcePosition(const Filename: string; NewX, NewY,

View File

@ -212,7 +212,7 @@ type
function FindSourceFile(const AFilename, BaseDirectory: string;
Flags: TFindSourceFlags): string;
function FindUnitsOfOwner(TheOwner: TObject; AddListed, AddUsed,
AddPackages: boolean): TStrings;
AddPackages, AddTabs: boolean): TStrings;
function AddUnitToProject(const AEditor: TSourceEditorInterface): TModalResult;
function AddActiveUnitToProject: TModalResult;
@ -3045,13 +3045,13 @@ begin
end;
function TLazSourceFileManager.FindUnitsOfOwner(TheOwner: TObject; AddListed,
AddUsed, AddPackages: boolean): TStrings;
AddUsed, AddPackages, AddTabs: boolean): TStrings;
var
Files: TFilenameToStringTree;
UnitPath: string; // only if not AddPackages:
// owner unitpath without unitpaths of required packages
function Add(aFilename: string): boolean;
function Add(const aFilename: string): boolean;
begin
if Files.Contains(aFilename) then exit(false);
//debugln([' Add ',aFilename]);
@ -3075,7 +3075,7 @@ var
end;
end;
procedure AddUsedUnit(aFilename: string);
procedure AddUsedUnit(const aFilename: string);
// add recursively all units
procedure AddUses(UsesSection: TStrings);
@ -3237,6 +3237,13 @@ begin
AddUsedUnit(TCodeBuffer(NormalUnits.Objects[i]).Filename);
end;
end;
if AddTabs then
for i := 0 to pred(SourceEditorManager.SourceEditorCount) do
begin
CurFilename := SourceEditorManager.SourceEditors[i].FileName;
if FilenameIsPascalUnit(CurFilename) then
Add(CurFilename);
end;
finally
FoundInUnits.Free;
MissingUnits.Free;