IDE: ide internals: show list of external tools

git-svn-id: trunk@52116 -
This commit is contained in:
mattias 2016-04-06 15:39:30 +00:00
parent 9e0eaa8431
commit 24ec659920
2 changed files with 87 additions and 13 deletions

View File

@ -10,20 +10,20 @@ object IDEInfoDialog: TIDEInfoDialog
OnClose = FormClose
OnCreate = FormCreate
Position = poScreenCenter
LCLVersion = '1.5'
LCLVersion = '1.7'
object PageControl1: TPageControl
Left = 6
Height = 403
Height = 404
Top = 6
Width = 688
ActivePage = HelpTabSheet
ActivePage = ExtToolTabSheet
Align = alClient
BorderSpacing.Around = 6
TabIndex = 2
TabIndex = 3
TabOrder = 0
object GeneralTabSheet: TTabSheet
Caption = 'General'
ClientHeight = 372
ClientHeight = 375
ClientWidth = 684
object GeneralMemo: TMemo
Left = 0
@ -41,7 +41,7 @@ object IDEInfoDialog: TIDEInfoDialog
end
object ModifiedTabSheet: TTabSheet
Caption = 'Modified'
ClientHeight = 372
ClientHeight = 375
ClientWidth = 684
object ModifiedMemo: TMemo
Left = 0
@ -58,11 +58,11 @@ object IDEInfoDialog: TIDEInfoDialog
end
object HelpTabSheet: TTabSheet
Caption = 'Help'
ClientHeight = 372
ClientHeight = 375
ClientWidth = 684
object HelpMemo: TMemo
Left = 0
Height = 372
Height = 375
Top = 0
Width = 684
Align = alClient
@ -73,11 +73,27 @@ object IDEInfoDialog: TIDEInfoDialog
TabOrder = 0
end
end
object ExtToolTabSheet: TTabSheet
Caption = 'External Tools'
ClientHeight = 375
ClientWidth = 684
object ExtToolMemo: TMemo
Left = 0
Height = 375
Top = 0
Width = 684
Align = alClient
Lines.Strings = (
'ExtToolMemo'
)
TabOrder = 0
end
end
end
object ButtonPanel1: TButtonPanel
Left = 6
Height = 29
Top = 415
Height = 28
Top = 416
Width = 688
OKButton.Name = 'OKButton'
OKButton.DefaultCaption = True

View File

@ -30,9 +30,11 @@ unit IDEInfoDlg;
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
LCLProc, LazFileUtils, LazUTF8, IDEHelpIntf, IDEWindowIntf, LazIDEIntf,
LazHelpIntf, LazHelpHTML, ButtonPanel, DefineTemplates, CodeToolManager,
Classes, SysUtils, LazFileUtils, LazUTF8,
CodeToolManager, DefineTemplates,
Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
LCLProc, ButtonPanel, LazHelpHTML, LazHelpIntf,
IDEHelpIntf, IDEWindowIntf, LazIDEIntf, IDEExternToolIntf,
EnvironmentOpts, AboutFrm, LazConf, LazarusIDEStrConsts, Project,
SourceEditor, InitialSetupProc, PackageSystem, PackageDefs;
@ -42,6 +44,7 @@ type
TIDEInfoDialog = class(TForm)
ButtonPanel1: TButtonPanel;
ExtToolMemo: TMemo;
GeneralMemo: TMemo;
HelpMemo: TMemo;
ModifiedMemo: TMemo;
@ -49,6 +52,7 @@ type
GeneralTabSheet: TTabSheet;
ModifiedTabSheet: TTabSheet;
HelpTabSheet: TTabSheet;
ExtToolTabSheet: TTabSheet;
procedure FormClose(Sender: TObject; var {%H-}CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
private
@ -66,10 +70,13 @@ type
procedure GatherHelpViewers(sl: TStrings);
procedure GatherHelpDB(Prefix: string; const HelpDB: THelpDatabase; const sl: TStrings);
procedure GatherHelpViewer(Prefix: string; const Viewer: THelpViewer; const sl: TStrings);
// external tools
procedure GatherExternalTools(sl: TStrings);
public
procedure UpdateGeneralMemo;
procedure UpdateModifiedMemo;
procedure UpdateHelpMemo;
procedure UpdateExternalTools;
end;
var
@ -103,6 +110,7 @@ begin
UpdateGeneralMemo;
UpdateModifiedMemo;
UpdateHelpMemo;
UpdateExternalTools;
PageControl1.PageIndex:=0;
IDEDialogLayoutList.ApplyLayout(Self);
end;
@ -192,6 +200,43 @@ begin
sl.Add('');
end;
procedure TIDEInfoDialog.GatherExternalTools(sl: TStrings);
var
i, j: Integer;
Tool: TAbstractExternalTool;
View: TExtToolView;
Parser: TExtToolParser;
begin
sl.Add('External Tools: '+IntToStr(ExternalToolList.Count));
for i:=0 to ExternalToolList.Count-1 do begin
Tool:=ExternalToolList[i];
sl.Add('Tool '+IntToStr(i)+'/'+IntToStr(ExternalToolList.Count)
+' ParserCount='+IntToStr(Tool.ParserCount)+' ViewCount='+IntToStr(Tool.ViewCount));
sl.Add(' Stage='+dbgs(Tool.Stage));
sl.Add(' Process.Active='+dbgs(Tool.Process.Active));
sl.Add(' Process.Executable='+AnsiQuotedStr(Tool.Process.Executable,'"'));
sl.Add(' Process.CurrentDirectory='+AnsiQuotedStr(Tool.Process.CurrentDirectory,'"'));
sl.Add(' Process.Running='+dbgs(Tool.Process.Running));
sl.Add(' CmdLineParams='+AnsiQuotedStr(Tool.CmdLineParams,'"'));
sl.Add(' ErrorMessage='+AnsiQuotedStr(Tool.ErrorMessage,'"'));
sl.Add(' ExitStatus='+IntToStr(Tool.ExitStatus));
sl.Add(' Terminated='+dbgs(Tool.Terminated));
sl.Add(' ReadStdOutBeforeErr='+dbgs(Tool.ReadStdOutBeforeErr));
sl.Add(' WorkerDirectory='+AnsiQuotedStr(Tool.WorkerDirectory,'"'));
for j:=0 to Tool.ViewCount-1 do begin
Parser:=Tool.Parsers[j];
sl.Add(' Parser '+IntToStr(j)+'/'+IntToStr(Tool.ParserCount)+' '+Parser.ClassName);
end;
for j:=0 to Tool.ViewCount-1 do begin
View:=Tool.Views[j];
sl.Add(' View '+IntToStr(j)+'/'+IntToStr(Tool.ViewCount)+' '+AnsiQuotedStr(View.Caption,'"'));
end;
sl.Add('');
end;
end;
procedure TIDEInfoDialog.GatherIDEVersion(sl: TStrings);
begin
sl.Add('Lazarus version: '+GetLazarusVersionString);
@ -439,5 +484,18 @@ begin
end;
end;
procedure TIDEInfoDialog.UpdateExternalTools;
var
sl: TStringList;
begin
sl:=TStringList.Create;
try
GatherExternalTools(sl);
ExtToolMemo.Lines.Assign(sl);
finally
sl.Free;
end;
end;
end.