mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-07 21:38:00 +02:00
IDE: Support running external tool with parsers, needed when used through IDE interface. Reported by Anton.
git-svn-id: trunk@59248 -
This commit is contained in:
parent
a9e858cf2a
commit
7c1bbdaa10
@ -135,12 +135,13 @@ type
|
||||
function GetRunningTools(Index: integer): TExternalTool;
|
||||
procedure AddRunningTool(Tool: TExternalTool); // (worker thread)
|
||||
procedure RemoveRunningTool(Tool: TExternalTool); // (worker thread)
|
||||
function RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
function RunToolAndDetach(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
function RunToolWithParsers(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
protected
|
||||
FToolClass: TExternalToolClass;
|
||||
function GetParsers(Index: integer): TExtToolParserClass; override;
|
||||
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
|
||||
function RunToolAndDetach(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
function RunToolWithParsers(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
public
|
||||
constructor Create(aOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -890,6 +891,18 @@ end;
|
||||
|
||||
{ TExternalTools }
|
||||
|
||||
function TExternalTools.RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
begin
|
||||
{$IFDEF VerboseExtToolThread}
|
||||
debugln(['TExternalTools.RunExtToolHandler ',ToolOptions.Title,
|
||||
' exe="',ToolOptions.Executable,'" params="',ToolOptions.CmdLineParams,'"']);
|
||||
{$ENDIF}
|
||||
if ToolOptions.Parsers.Count=0 then
|
||||
Result := RunToolAndDetach(ToolOptions)
|
||||
else
|
||||
Result := RunToolWithParsers(ToolOptions)
|
||||
end;
|
||||
|
||||
function TExternalTools.RunToolAndDetach(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
// simply run and detach
|
||||
var
|
||||
@ -1122,6 +1135,7 @@ begin
|
||||
ExternalToolList:=Self;
|
||||
if ExternalTools=nil then
|
||||
ExternalTools:=Self;
|
||||
RunExternalTool := @RunExtToolHandler;
|
||||
end;
|
||||
|
||||
destructor TExternalTools.Destroy;
|
||||
|
@ -60,9 +60,6 @@ type
|
||||
{ TExternalToolsConsole }
|
||||
|
||||
TExternalToolsConsole = class(TExternalTools)
|
||||
private
|
||||
function RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
protected
|
||||
public
|
||||
constructor Create(aOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -219,7 +216,6 @@ constructor TExternalToolsConsole.Create(aOwner: TComponent);
|
||||
begin
|
||||
inherited Create(aOwner);
|
||||
FToolClass := TExternalToolConsole;
|
||||
RunExternalTool := @RunExtToolHandler;
|
||||
end;
|
||||
|
||||
destructor TExternalToolsConsole.Destroy;
|
||||
@ -227,15 +223,6 @@ begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TExternalToolsConsole.RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
begin
|
||||
{$IFDEF VerboseExtToolThread}
|
||||
debugln(['TExternalToolsConsole.RunExtToolHandler ',ToolOptions.Title,' exe="',ToolOptions.Executable,'" params="',ToolOptions.CmdLineParams,'"']);
|
||||
{$ENDIF}
|
||||
Assert(ToolOptions.Parsers.Count=0, 'TExternalToolsConsole.RunExtToolHandler: Parsers.Count>0.');
|
||||
Result := RunToolWithParsers(ToolOptions);
|
||||
end;
|
||||
|
||||
function TExternalToolsConsole.GetIDEObject(ToolData: TIDEExternalToolData): TObject;
|
||||
begin
|
||||
raise Exception.Create('TExternalToolsConsole.GetIDEObject: Should not happen!');
|
||||
|
@ -32,9 +32,6 @@ type
|
||||
{ TExternalToolsIDE }
|
||||
|
||||
TExternalToolsIDE = class(TExternalTools)
|
||||
private
|
||||
function RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
protected
|
||||
public
|
||||
constructor Create(aOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
@ -87,7 +84,6 @@ constructor TExternalToolsIDE.Create(aOwner: TComponent);
|
||||
begin
|
||||
inherited Create(aOwner);
|
||||
FToolClass := TExternalToolIDE;
|
||||
RunExternalTool := @RunExtToolHandler;
|
||||
end;
|
||||
|
||||
destructor TExternalToolsIDE.Destroy;
|
||||
@ -113,14 +109,5 @@ begin
|
||||
Application.ProcessMessages;
|
||||
end;
|
||||
|
||||
function TExternalToolsIDE.RunExtToolHandler(ToolOptions: TIDEExternalToolOptions): boolean;
|
||||
begin
|
||||
{$IFDEF VerboseExtToolThread}
|
||||
debugln(['TExternalToolsIDE.RunExtToolHandler ',ToolOptions.Title,' exe="',ToolOptions.Executable,'" params="',ToolOptions.CmdLineParams,'"']);
|
||||
{$ENDIF}
|
||||
//if ToolOptions.Parsers.Count=0 then
|
||||
Result := RunToolAndDetach(ToolOptions)
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user