IDE: further migration external tools

git-svn-id: trunk@42335 -
This commit is contained in:
mattias 2013-08-04 20:34:00 +00:00
parent 0fbb1e90df
commit ddd03e966d
8 changed files with 171 additions and 24 deletions

View File

@ -79,8 +79,7 @@ type
); );
TMessageLineFlags = set of TMessageLineFlag; TMessageLineFlags = set of TMessageLineFlag;
{ TMessageLine { TMessageLine }
Access needs Lines.Tool.Enter/LeaveCriticalSection }
TMessageLine = packed class TMessageLine = packed class
private private
@ -176,8 +175,7 @@ type
property MaxLine: integer read FMaxLine; property MaxLine: integer read FMaxLine;
end; end;
{ TMessageLines { TMessageLines }
Access needs Tool.Enter/LeaveCriticalSection }
TETMarksFixedEvent = procedure(ListOfTMessageLine: TFPList) of object; TETMarksFixedEvent = procedure(ListOfTMessageLine: TFPList) of object;
@ -235,7 +233,7 @@ type
{ TExtToolParser { TExtToolParser
Read the output of a tool, for example the output of the Free Pascal compiler. Read the output of a tool, for example the output of the Free Pascal compiler.
It does not filter. Some parsers can work together, for example make and fpc. It does not filter. Some parsers can work together, for example make and fpc.
Usage: Tool.AddParser('fpc'); Usage: Tool.AddParsers('fpc');
} }
TExtToolParser = class(TComponent) TExtToolParser = class(TComponent)
private private
@ -270,7 +268,7 @@ type
TMakeParser = class(TExtToolParser) TMakeParser = class(TExtToolParser)
end; end;
{ TDefaultParser - simple parser for simple text output, no filter at all } { TDefaultParser - simple parser for simple text output, no filtering }
TDefaultParser = class(TExtToolParser) TDefaultParser = class(TExtToolParser)
public public
@ -283,8 +281,7 @@ type
const const
DefaultETViewMinUrgency = mluHint; DefaultETViewMinUrgency = mluHint;
type type
{ TExtToolView { TExtToolView }
Access needs Enter/LeaveCriticalSection }
TExtToolView = class(TComponent) TExtToolView = class(TComponent)
private private
@ -1985,7 +1982,7 @@ begin
end; end;
end. end.
{$ELSE} {$ELSE EnableNewExtTools}
interface interface
uses uses

View File

@ -285,7 +285,12 @@ type
// progress and error messages // progress and error messages
function ShowProgress(const SomeText: string; function ShowProgress(const SomeText: string;
Step, MaxStep: integer): boolean; virtual; abstract; // False if canceled by user Step, MaxStep: integer): boolean; virtual; abstract; // False if canceled by user
function DoJumpToCompilerMessage(Index:integer; function DoJumpToCompilerMessage(
{$IFDEF EnableNewExtTools}
Msg: TMessageLine; // if nil then it jumps to first message
{$ELSE}
Index:integer;
{$ENDIF}
FocusEditor: boolean): boolean; virtual; abstract; FocusEditor: boolean): boolean; virtual; abstract;
procedure DoJumpToNextError(DirectionDown: boolean); virtual; abstract; procedure DoJumpToNextError(DirectionDown: boolean); virtual; abstract;
procedure DoShowMessagesView(BringToFront: boolean = true); virtual; abstract; procedure DoShowMessagesView(BringToFront: boolean = true); virtual; abstract;

View File

@ -694,7 +694,7 @@ begin
LfmFixer.RootMustBeClassInIntf:=true; LfmFixer.RootMustBeClassInIntf:=true;
LfmFixer.ObjectsMustExist:=true; LfmFixer.ObjectsMustExist:=true;
if LfmFixer.ConvertAndRepair<>mrOK then begin if LfmFixer.ConvertAndRepair<>mrOK then begin
LazarusIDE.DoJumpToCompilerMessage(-1,true); LazarusIDE.DoJumpToCompilerMessage({$IFDEF EnableNewExtTools}nil{$ELSE}-1{$ENDIF},true);
fOwnerConverter.fErrorMsg:='Problems when repairing form file ' fOwnerConverter.fErrorMsg:='Problems when repairing form file '
+ChangeFileExt(fOrigUnitFilename, '.lfm'); +ChangeFileExt(fOrigUnitFilename, '.lfm');
exit(mrAbort); exit(mrAbort);

View File

@ -53,8 +53,25 @@ type
ImgIDFatal: integer; ImgIDFatal: integer;
function GetDblClickJumps: boolean; function GetDblClickJumps: boolean;
procedure SetDblClickJumps(AValue: boolean); procedure SetDblClickJumps(AValue: boolean);
protected
function GetViews(Index: integer): TExtToolView; override;
public public
SourceMarks: TETMarks; SourceMarks: TETMarks;
function AddCustomMessage(TheUrgency: TMessageLineUrgency; Msg: string;
aSrcFilename: string=''; LineNumber: integer=0; Column: integer=0;
const ViewCaption: string=''): TMessageLine; override;
procedure Clear; override;
procedure DeleteView(View: TExtToolView); override;
function FindUnfinishedView: TExtToolView; override;
function GetSelectedLine: TMessageLine; override;
function GetView(aCaption: string; CreateIfNotExist: boolean
): TExtToolView; override;
function IndexOfView(View: TExtToolView): integer; override;
function SelectFirstUrgentMessage(aMinUrgency: TMessageLineUrgency;
WithSrcPos: boolean): boolean; override;
function SelectNextUrgentMessage(aMinUrgency: TMessageLineUrgency;
WithSrcPos, Downwards: boolean): boolean; override;
function ViewCount: integer; override;
property DblClickJumps: boolean read GetDblClickJumps write SetDblClickJumps; property DblClickJumps: boolean read GetDblClickJumps write SetDblClickJumps;
end; end;
@ -137,6 +154,71 @@ begin
MessagesFrame1.MessagesCtrl.Options+[mcoSingleClickOpensFile] MessagesFrame1.MessagesCtrl.Options+[mcoSingleClickOpensFile]
end; end;
function TMessagesView.GetViews(Index: integer): TExtToolView;
begin
Result:=MessagesFrame1.Views[Index];
end;
function TMessagesView.AddCustomMessage(TheUrgency: TMessageLineUrgency;
Msg: string; aSrcFilename: string; LineNumber: integer; Column: integer;
const ViewCaption: string): TMessageLine;
begin
Result:=MessagesFrame1.AddCustomMessage(TheUrgency,Msg,aSrcFilename,
LineNumber,Column,ViewCaption);
end;
procedure TMessagesView.Clear;
begin
MessagesFrame1.ClearViews;
end;
procedure TMessagesView.DeleteView(View: TExtToolView);
begin
if View is TLMsgWndView then
MessagesFrame1.DeleteView(TLMsgWndView(View));
end;
function TMessagesView.FindUnfinishedView: TExtToolView;
begin
Result:=MessagesFrame1.FindUnfinishedView;
end;
function TMessagesView.GetSelectedLine: TMessageLine;
begin
Result:=MessagesFrame1.MessagesCtrl.GetSelectedMsg;
end;
function TMessagesView.GetView(aCaption: string; CreateIfNotExist: boolean
): TExtToolView;
begin
Result:=MessagesFrame1.GetView(aCaption,CreateIfNotExist);
end;
function TMessagesView.IndexOfView(View: TExtToolView): integer;
begin
if View is TLMsgWndView then
Result:=MessagesFrame1.IndexOfView(TLMsgWndView(View))
else
Result:=-1;
end;
function TMessagesView.SelectFirstUrgentMessage(
aMinUrgency: TMessageLineUrgency; WithSrcPos: boolean): boolean;
begin
Result:=MessagesFrame1.SelectFirstUrgentMessage(aMinUrgency,WithSrcPos);
end;
function TMessagesView.SelectNextUrgentMessage(
aMinUrgency: TMessageLineUrgency; WithSrcPos, Downwards: boolean): boolean;
begin
Result:=MessagesFrame1.SelectNextUrgentMessage(aMinUrgency,WithSrcPos,Downwards);
end;
function TMessagesView.ViewCount: integer;
begin
Result:=MessagesFrame1.ViewCount;
end;
function TMessagesView.GetDblClickJumps: boolean; function TMessagesView.GetDblClickJumps: boolean;
begin begin
Result:=not (mcoSingleClickOpensFile in MessagesFrame1.MessagesCtrl.Options); Result:=not (mcoSingleClickOpensFile in MessagesFrame1.MessagesCtrl.Options);

View File

@ -603,9 +603,13 @@ end;
function TExternalToolDialog.ToolDescription(Index: integer): string; function TExternalToolDialog.ToolDescription(Index: integer): string;
begin begin
{$IFDEF EnableNewExtTools}
Result:=fExtToolList[Index].Title;
{$ELSE}
Result:=fExtToolList[Index].ShortDescription; Result:=fExtToolList[Index].ShortDescription;
if Result='' then if Result='' then
Result:=fExtToolList[Index].Title; Result:=fExtToolList[Index].Title;
{$ENDIF}
if Result='' then if Result='' then
Result:=ExtractFilename(fExtToolList[Index].Filename); Result:=ExtractFilename(fExtToolList[Index].Filename);
//DebugLn(['TExternalToolDialog.ToolDescription Index=',Index,' Result=',Result,' Cmd="',fExtToolList[Index].Filename,' ',fExtToolList[Index].CmdLineParams,'"']); //DebugLn(['TExternalToolDialog.ToolDescription Index=',Index,' Result=',Result,' Cmd="',fExtToolList[Index].Filename,' ',fExtToolList[Index].CmdLineParams,'"']);
@ -638,7 +642,7 @@ begin
exit; exit;
end; end;
{$IFDEF EnableNewExtTools} {$IFDEF EnableNewExtTools}
NewTool:=TExternalToolMenuItem.Create; NewTool:=TExternalToolMenuItem.Create(nil);
{$ELSE} {$ELSE}
NewTool:=TExternalToolOptions.Create; NewTool:=TExternalToolOptions.Create;
{$ENDIF} {$ENDIF}
@ -668,7 +672,7 @@ begin
OldTool := fExtToolList.Items[Listbox.ItemIndex]; OldTool := fExtToolList.Items[Listbox.ItemIndex];
If Assigned(OldTool) Then Begin If Assigned(OldTool) Then Begin
{$IFDEF EnableNewExtTools} {$IFDEF EnableNewExtTools}
NewTool:=TExternalToolMenuItem.Create; NewTool:=TExternalToolMenuItem.Create(nil);
{$ELSE} {$ELSE}
NewTool:=TExternalToolOptions.Create; NewTool:=TExternalToolOptions.Create;
{$ENDIF} {$ENDIF}
@ -783,7 +787,9 @@ begin
EnableButtons; EnableButtons;
end; end;
{$IFNDEF EnableNewExtTools}
initialization initialization
ExternalToolListClass:=TExternalToolList; ExternalToolListClass:=TExternalToolList;
{$ENDIF}
end. end.

View File

@ -126,6 +126,7 @@ type
procedure Assign(Src: TExternalToolMenuItems); procedure Assign(Src: TExternalToolMenuItems);
procedure Add(Item: TExternalToolMenuItem); procedure Add(Item: TExternalToolMenuItem);
procedure Insert(Index: integer; Item: TExternalToolMenuItem); procedure Insert(Index: integer; Item: TExternalToolMenuItem);
procedure Delete(Index: integer);
procedure Move(CurIndex, NewIndex: integer); procedure Move(CurIndex, NewIndex: integer);
function Load(Config: TConfigStorage): TModalResult; function Load(Config: TConfigStorage): TModalResult;
function Load(Config: TConfigStorage; const Path: string): TModalResult; function Load(Config: TConfigStorage; const Path: string): TModalResult;
@ -138,6 +139,9 @@ type
function Count: integer; inline; function Count: integer; inline;
property Items[Index: integer]: TExternalToolMenuItem read GetItems; default; property Items[Index: integer]: TExternalToolMenuItem read GetItems; default;
end; end;
var
ExternalToolMenuItems: TExternalToolMenuItems = nil;
{$ELSE} {$ELSE}
type type
{ TExternalToolOptions } { TExternalToolOptions }
@ -472,6 +476,8 @@ end;
destructor TExternalToolMenuItems.Destroy; destructor TExternalToolMenuItems.Destroy;
begin begin
if ExternalToolMenuItems=Self then
ExternalToolMenuItems:=nil;
Clear; Clear;
FreeAndNil(fItems); FreeAndNil(fItems);
inherited Destroy; inherited Destroy;
@ -519,6 +525,11 @@ begin
fItems.Insert(Index,Item); fItems.Insert(Index,Item);
end; end;
procedure TExternalToolMenuItems.Delete(Index: integer);
begin
fItems.Delete(Index);
end;
procedure TExternalToolMenuItems.Move(CurIndex, NewIndex: integer); procedure TExternalToolMenuItems.Move(CurIndex, NewIndex: integer);
begin begin
fItems.Move(CurIndex,NewIndex); fItems.Move(CurIndex,NewIndex);

View File

@ -625,7 +625,9 @@ type
Scanner: TLinkScanner); Scanner: TLinkScanner);
// MessagesView events // MessagesView events
{$IFNDEF EnableNewExtTools}
procedure MessagesViewSelectionChanged(sender: TObject); procedure MessagesViewSelectionChanged(sender: TObject);
{$ENDIF}
// SearchResultsView events // SearchResultsView events
procedure SearchResultsViewSelectionChanged(sender: TObject); procedure SearchResultsViewSelectionChanged(sender: TObject);
@ -693,7 +695,9 @@ type
procedure SetupDialogs; procedure SetupDialogs;
procedure SetupComponentPalette; procedure SetupComponentPalette;
procedure SetupHints; procedure SetupHints;
{$IFNDEF EnableNewExtTools}
procedure SetupOutputFilter; procedure SetupOutputFilter;
{$ENDIF}
procedure SetupObjectInspector; procedure SetupObjectInspector;
procedure SetupFormEditor; procedure SetupFormEditor;
procedure SetupSourceNotebook; procedure SetupSourceNotebook;
@ -839,7 +843,9 @@ type
// external tools // external tools
function PrepareForCompile: TModalResult; override; function PrepareForCompile: TModalResult; override;
{$IFNDEF EnableNewExtTools}
function OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult; function OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult;
{$ENDIF}
function DoRunExternalTool(Index: integer; ShowAbort: Boolean): TModalResult; function DoRunExternalTool(Index: integer; ShowAbort: Boolean): TModalResult;
function DoSaveBuildIDEConfigs(Flags: TBuildLazarusFlags): TModalResult; override; function DoSaveBuildIDEConfigs(Flags: TBuildLazarusFlags): TModalResult; override;
function DoExampleManager: TModalResult; override; function DoExampleManager: TModalResult; override;
@ -964,8 +970,13 @@ type
function DoConvertDelphiPackage(const DelphiFilename: string): TModalResult; function DoConvertDelphiPackage(const DelphiFilename: string): TModalResult;
// message view // message view
function DoJumpToCompilerMessage(Index:integer; function DoJumpToCompilerMessage(
FocusEditor: boolean): boolean; override; {$IFDEF EnableNewExtTools}
Msg: TMessageLine;
{$ELSE}
Index:integer;
{$ENDIF}
FocusEditor: boolean): boolean; override;
procedure DoJumpToNextError(DirectionDown: boolean); override; procedure DoJumpToNextError(DirectionDown: boolean); override;
procedure DoShowMessagesView(BringToFront: boolean = true); override; procedure DoShowMessagesView(BringToFront: boolean = true); override;
@ -1289,7 +1300,12 @@ begin
SetupIDEMsgQuickFixItems; SetupIDEMsgQuickFixItems;
EditorOpts.Load; EditorOpts.Load;
{$IFDEF EnableNewExtTools}
ExternalToolMenuItems:=TExternalToolMenuItems(EnvironmentOptions.ExternalToolMenuItems);
ExternalToolMenuItems.LoadShortCuts(EditorOpts.KeyMap);
{$ELSE}
ExternalTools.LoadShortCuts(EditorOpts.KeyMap); ExternalTools.LoadShortCuts(EditorOpts.KeyMap);
{$ENDIF}
MiscellaneousOptions := TMiscellaneousOptions.Create; MiscellaneousOptions := TMiscellaneousOptions.Create;
MiscellaneousOptions.Load; MiscellaneousOptions.Load;
@ -1327,6 +1343,7 @@ begin
FWaitForClose := False; FWaitForClose := False;
SetupDialogs; SetupDialogs;
{$IFNDEF EnableNewExtTools}
RunExternalTool:=@OnRunExternalTool; RunExternalTool:=@OnRunExternalTool;
{$IFDEF UseAsyncProcess} {$IFDEF UseAsyncProcess}
if Widgetset.GetLCLCapability(lcAsyncProcess) = 1 then if Widgetset.GetLCLCapability(lcAsyncProcess) = 1 then
@ -1336,6 +1353,7 @@ begin
{$ELSE} {$ELSE}
TOutputFilterProcess := TProcessUTF8; TOutputFilterProcess := TProcessUTF8;
{$ENDIF} {$ENDIF}
{$ENDIF}
MainBuildBoss:=TBuildManager.Create(nil); MainBuildBoss:=TBuildManager.Create(nil);
MainBuildBoss.HasGUI:=true; MainBuildBoss.HasGUI:=true;
@ -1431,7 +1449,9 @@ begin
HelpBoss.ConnectMainBarEvents; HelpBoss.ConnectMainBarEvents;
{$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create MANAGERS');{$ENDIF} {$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create MANAGERS');{$ENDIF}
// setup the IDE components // setup the IDE components
{$IFNDEF EnableNewExtTools}
SetupOutputFilter; SetupOutputFilter;
{$ENDIF}
MainBuildBoss.SetupCompilerInterface; MainBuildBoss.SetupCompilerInterface;
SetupObjectInspector; SetupObjectInspector;
SetupFormEditor; SetupFormEditor;
@ -1532,7 +1552,13 @@ begin
// free IDE parts // free IDE parts
FreeFormEditor; FreeFormEditor;
FreeTextConverters; FreeTextConverters;
{$IFDEF EnableNewExtTools}
FreeThenNil(IDEQuickFixes);
{$ELSE}
FreeStandardIDEQuickFixItems; FreeStandardIDEQuickFixItems;
FreeThenNil(IDEMsgScanners);
FreeThenNil(TheOutputFilter);
{$ENDIF}
FreeThenNil(GlobalDesignHook); FreeThenNil(GlobalDesignHook);
FreeThenNil(LPKInfoCache); FreeThenNil(LPKInfoCache);
FreeThenNil(PkgBoss); FreeThenNil(PkgBoss);
@ -1541,8 +1567,6 @@ begin
FreeThenNil(TheCompiler); FreeThenNil(TheCompiler);
FreeThenNil(HiddenWindowsOnRun); FreeThenNil(HiddenWindowsOnRun);
FreeThenNil(LastActivatedWindows); FreeThenNil(LastActivatedWindows);
FreeThenNil(IDEMsgScanners);
FreeThenNil(TheOutputFilter);
FreeThenNil(GlobalMacroList); FreeThenNil(GlobalMacroList);
FreeThenNil(IDEMacros); FreeThenNil(IDEMacros);
FreeThenNil(IDECodeMacros); FreeThenNil(IDECodeMacros);
@ -1577,7 +1601,9 @@ end;
procedure TMainIDE.CreateOftenUsedForms; procedure TMainIDE.CreateOftenUsedForms;
begin begin
MessagesView:=TMessagesView.Create(nil); MessagesView:=TMessagesView.Create(nil);
{$IFNDEF EnableNewExtTools}
MessagesView.OnSelectionChanged := @MessagesViewSelectionChanged; MessagesView.OnSelectionChanged := @MessagesViewSelectionChanged;
{$ENDIF}
LazFindReplaceDialog:=TLazFindReplaceDialog.Create(nil); LazFindReplaceDialog:=TLazFindReplaceDialog.Create(nil);
end; end;
@ -2030,12 +2056,14 @@ begin
end; end;
end; end;
{$IFNDEF EnableNewExtTools}
procedure TMainIDE.SetupOutputFilter; procedure TMainIDE.SetupOutputFilter;
begin begin
TheOutputFilter:=TOutputFilter.Create; TheOutputFilter:=TOutputFilter.Create;
TheOutputFilter.OnGetIncludePath:=@CodeToolBoss.GetIncludePathForDirectory; TheOutputFilter.OnGetIncludePath:=@CodeToolBoss.GetIncludePathForDirectory;
IDEMsgScanners:=TMessageScanners.Create; IDEMsgScanners:=TMessageScanners.Create;
end; end;
{$ENDIF}
procedure TMainIDE.SetupObjectInspector; procedure TMainIDE.SetupObjectInspector;
begin begin
@ -3136,7 +3164,7 @@ begin
ecContextHelp: ecContextHelp:
if Sender=MessagesView then if Sender=MessagesView then
HelpBoss.ShowHelpForMessage(-1) HelpBoss.ShowHelpForMessage{$IFDEF EnableNewExtTools}(){$ELSE}(-1){$ENDIF}
else if Sender is TObjectInspectorDlg then else if Sender is TObjectInspectorDlg then
HelpBoss.ShowHelpForObjectInspector(Sender); HelpBoss.ShowHelpForObjectInspector(Sender);
ecEditContextHelp: ecEditContextHelp:
@ -4374,12 +4402,14 @@ end;
procedure TMainIDE.mnuToolConfigureClicked(Sender: TObject); procedure TMainIDE.mnuToolConfigureClicked(Sender: TObject);
begin begin
if ShowExtToolDialog(ExternalTools,GlobalMacroList)=mrOk then if ShowExtToolDialog(
{$IFDEF EnableNewExtTools}ExternalToolMenuItems{$ELSE}ExternalTools{$ENDIF},
GlobalMacroList)=mrOk then
begin begin
// save to environment options // save to environment options
SaveEnvironment(true); SaveEnvironment(true);
// save shortcuts to editor options // save shortcuts to editor options
ExternalTools.SaveShortCuts(EditorOpts.KeyMap); {$IFDEF EnableNewExtTools}ExternalToolMenuItems{$ELSE}ExternalTools{$ENDIF}.SaveShortCuts(EditorOpts.KeyMap);
EditorOpts.Save; EditorOpts.Save;
UpdateHighlighters(True); UpdateHighlighters(True);
SourceEditorManager.ReloadEditorOptions; SourceEditorManager.ReloadEditorOptions;
@ -6866,7 +6896,7 @@ var
NeedBuildAllFlag: Boolean; NeedBuildAllFlag: Boolean;
UnitOutputDirectory: String; UnitOutputDirectory: String;
TargetExeName: String; TargetExeName: String;
err : TFPCErrorType; err: TFPCErrorType;
TargetExeDirectory: String; TargetExeDirectory: String;
FPCVersion, FPCRelease, FPCPatch: integer; FPCVersion, FPCRelease, FPCPatch: integer;
Note: String; Note: String;
@ -7083,10 +7113,13 @@ begin
OldToolStatus := ToolStatus; // It can still be itDebugger, if the debugger is still stopping. Prevent any "Run" command after building, until the debugger is clear OldToolStatus := ToolStatus; // It can still be itDebugger, if the debugger is still stopping. Prevent any "Run" command after building, until the debugger is clear
ToolStatus:=itBuilder; ToolStatus:=itBuilder;
{$IFDEF EnableNewExtTools}
{$ELSE}
ConnectOutputFilter; ConnectOutputFilter;
for err := Low(TFPCErrorType) to High(TFPCErrorType) do for err := Low(TFPCErrorType) to High(TFPCErrorType) do
with Project1.CompilerOptions.CompilerMessages do with Project1.CompilerOptions.CompilerMessages do
TheOutputFilter.ErrorTypeName[err] := ErrorNames[err]; TheOutputFilter.ErrorTypeName[err] := ErrorNames[err];
{$ENDIF}
// compile // compile
CompilerFilename:=Project1.GetCompilerFilename; CompilerFilename:=Project1.GetCompilerFilename;
@ -7180,7 +7213,7 @@ function TMainIDE.DoAbortBuild: TModalResult;
begin begin
Result:=mrOk; Result:=mrOk;
if ToolStatus<>itBuilder then exit; if ToolStatus<>itBuilder then exit;
TheOutputFilter.StopExecute:=true; AbortBuild;
end; end;
procedure TMainIDE.DoQuickCompile; procedure TMainIDE.DoQuickCompile;
@ -8080,12 +8113,14 @@ begin
MainBuildBoss.RescanCompilerDefines(false,false,false,false); MainBuildBoss.RescanCompilerDefines(false,false,false,false);
end; end;
{$IFNDEF EnableNewExtTools}
function TMainIDE.OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult; function TMainIDE.OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult;
begin begin
SourceEditorManager.ClearErrorLines; SourceEditorManager.ClearErrorLines;
Result:=ExternalTools.Run(Tool,GlobalMacroList,false); Result:=ExternalTools.Run(Tool,GlobalMacroList,false);
DoCheckFilesOnDisk; DoCheckFilesOnDisk;
end; end;
{$ENDIF}
function TMainIDE.DoCheckSyntax: TModalResult; function TMainIDE.DoCheckSyntax: TModalResult;
var var
@ -8521,8 +8556,12 @@ end;
procedure TMainIDE.AbortBuild; procedure TMainIDE.AbortBuild;
begin begin
{$IFDEF EnableNewExtTools}
ExternalTools.TerminateAll;
{$ELSE}
if TheOutputFilter<>nil then if TheOutputFilter<>nil then
TheOutputFilter.StopExecute:=true; TheOutputFilter.StopExecute:=true;
{$ENDIF}
end; end;
procedure TMainIDE.UpdateCaption; procedure TMainIDE.UpdateCaption;
@ -8841,7 +8880,12 @@ begin
ErrType:=FPCErrorTypeNameToType(ALine.Parts.Values['Type']); ErrType:=FPCErrorTypeNameToType(ALine.Parts.Values['Type']);
end; end;
function TMainIDE.DoJumpToCompilerMessage(Index:integer; function TMainIDE.DoJumpToCompilerMessage(
{$IFDEF EnableNewExtTools}
Msg: TMessageLine;
{$ELSE}
Index:integer;
{$ENDIF}
FocusEditor: boolean): boolean; FocusEditor: boolean): boolean;
var var
MaxMessages: integer; MaxMessages: integer;
@ -11141,10 +11185,12 @@ end;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
{$IFNDEF EnableNewExtTools}
procedure TMainIDE.MessagesViewSelectionChanged(sender: TObject); procedure TMainIDE.MessagesViewSelectionChanged(sender: TObject);
begin begin
DoJumpToCompilerMessage(TMessagesView(Sender).SelectedMessageIndex,True); DoJumpToCompilerMessage(TMessagesView(Sender).SelectedMessageIndex,True);
end; end;
{$ENDIF}
procedure TMainIDE.SearchResultsViewSelectionChanged(sender: TObject); procedure TMainIDE.SearchResultsViewSelectionChanged(sender: TObject);
begin begin

View File

@ -3943,7 +3943,7 @@ begin
mtInformation,[mbOk],''); mtInformation,[mbOk],'');
end; end;
end else begin end else begin
MainIDE.DoJumpToCompilerMessage(-1,true); MainIDE.DoJumpToCompilerMessage({$IFDEF EnableNewExtTools}nil{$ELSE}-1{$ENDIF},true);
Result:=mrAbort; Result:=mrAbort;
exit; exit;
end; end;