mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 12:01:27 +01:00 
			
		
		
		
	IDE: further migration external tools
git-svn-id: trunk@42335 -
This commit is contained in:
		
							parent
							
								
									0fbb1e90df
								
							
						
					
					
						commit
						ddd03e966d
					
				| @ -79,8 +79,7 @@ type | ||||
|     ); | ||||
|   TMessageLineFlags = set of TMessageLineFlag; | ||||
| 
 | ||||
|   { TMessageLine | ||||
|     Access needs Lines.Tool.Enter/LeaveCriticalSection } | ||||
|   { TMessageLine } | ||||
| 
 | ||||
|   TMessageLine = packed class | ||||
|   private | ||||
| @ -176,8 +175,7 @@ type | ||||
|     property MaxLine: integer read FMaxLine; | ||||
|   end; | ||||
| 
 | ||||
|   { TMessageLines | ||||
|     Access needs Tool.Enter/LeaveCriticalSection } | ||||
|   { TMessageLines } | ||||
| 
 | ||||
|   TETMarksFixedEvent = procedure(ListOfTMessageLine: TFPList) of object; | ||||
| 
 | ||||
| @ -235,7 +233,7 @@ type | ||||
|   { TExtToolParser | ||||
|     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. | ||||
|     Usage: Tool.AddParser('fpc'); | ||||
|     Usage: Tool.AddParsers('fpc'); | ||||
|     } | ||||
|   TExtToolParser = class(TComponent) | ||||
|   private | ||||
| @ -270,7 +268,7 @@ type | ||||
|   TMakeParser = class(TExtToolParser) | ||||
|   end; | ||||
| 
 | ||||
|   { TDefaultParser - simple parser for simple text output, no filter at all } | ||||
|   { TDefaultParser - simple parser for simple text output, no filtering } | ||||
| 
 | ||||
|   TDefaultParser = class(TExtToolParser) | ||||
|   public | ||||
| @ -283,8 +281,7 @@ type | ||||
| const | ||||
|   DefaultETViewMinUrgency = mluHint; | ||||
| type | ||||
|   { TExtToolView | ||||
|     Access needs Enter/LeaveCriticalSection } | ||||
|   { TExtToolView } | ||||
| 
 | ||||
|   TExtToolView = class(TComponent) | ||||
|   private | ||||
| @ -1985,7 +1982,7 @@ begin | ||||
| end; | ||||
| 
 | ||||
| end. | ||||
| {$ELSE} | ||||
| {$ELSE EnableNewExtTools} | ||||
| interface | ||||
| 
 | ||||
| uses | ||||
|  | ||||
| @ -285,7 +285,12 @@ type | ||||
|     // progress and error messages | ||||
|     function ShowProgress(const SomeText: string; | ||||
|                           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; | ||||
|     procedure DoJumpToNextError(DirectionDown: boolean); virtual; abstract; | ||||
|     procedure DoShowMessagesView(BringToFront: boolean = true); virtual; abstract; | ||||
|  | ||||
| @ -694,7 +694,7 @@ begin | ||||
|       LfmFixer.RootMustBeClassInIntf:=true; | ||||
|       LfmFixer.ObjectsMustExist:=true; | ||||
|       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 ' | ||||
|                                   +ChangeFileExt(fOrigUnitFilename, '.lfm'); | ||||
|         exit(mrAbort); | ||||
|  | ||||
| @ -53,8 +53,25 @@ type | ||||
|     ImgIDFatal: integer; | ||||
|     function GetDblClickJumps: boolean; | ||||
|     procedure SetDblClickJumps(AValue: boolean); | ||||
|   protected | ||||
|     function GetViews(Index: integer): TExtToolView; override; | ||||
|   public | ||||
|     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; | ||||
|   end; | ||||
| 
 | ||||
| @ -137,6 +154,71 @@ begin | ||||
|       MessagesFrame1.MessagesCtrl.Options+[mcoSingleClickOpensFile] | ||||
| 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; | ||||
| begin | ||||
|   Result:=not (mcoSingleClickOpensFile in MessagesFrame1.MessagesCtrl.Options); | ||||
|  | ||||
| @ -603,9 +603,13 @@ end; | ||||
| 
 | ||||
| function TExternalToolDialog.ToolDescription(Index: integer): string; | ||||
| begin | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   Result:=fExtToolList[Index].Title; | ||||
|   {$ELSE} | ||||
|   Result:=fExtToolList[Index].ShortDescription; | ||||
|   if Result='' then | ||||
|     Result:=fExtToolList[Index].Title; | ||||
|   {$ENDIF} | ||||
|   if Result='' then | ||||
|     Result:=ExtractFilename(fExtToolList[Index].Filename); | ||||
|   //DebugLn(['TExternalToolDialog.ToolDescription Index=',Index,' Result=',Result,' Cmd="',fExtToolList[Index].Filename,' ',fExtToolList[Index].CmdLineParams,'"']); | ||||
| @ -638,7 +642,7 @@ begin | ||||
|     exit; | ||||
|   end; | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   NewTool:=TExternalToolMenuItem.Create; | ||||
|   NewTool:=TExternalToolMenuItem.Create(nil); | ||||
|   {$ELSE} | ||||
|   NewTool:=TExternalToolOptions.Create; | ||||
|   {$ENDIF} | ||||
| @ -668,7 +672,7 @@ begin | ||||
|     OldTool := fExtToolList.Items[Listbox.ItemIndex]; | ||||
|     If Assigned(OldTool) Then Begin | ||||
|       {$IFDEF EnableNewExtTools} | ||||
|       NewTool:=TExternalToolMenuItem.Create; | ||||
|       NewTool:=TExternalToolMenuItem.Create(nil); | ||||
|       {$ELSE} | ||||
|       NewTool:=TExternalToolOptions.Create; | ||||
|       {$ENDIF} | ||||
| @ -783,7 +787,9 @@ begin | ||||
|   EnableButtons; | ||||
| end; | ||||
| 
 | ||||
| {$IFNDEF EnableNewExtTools} | ||||
| initialization | ||||
|   ExternalToolListClass:=TExternalToolList; | ||||
| {$ENDIF} | ||||
| 
 | ||||
| end. | ||||
|  | ||||
| @ -126,6 +126,7 @@ type | ||||
|     procedure Assign(Src: TExternalToolMenuItems); | ||||
|     procedure Add(Item: TExternalToolMenuItem); | ||||
|     procedure Insert(Index: integer; Item: TExternalToolMenuItem); | ||||
|     procedure Delete(Index: integer); | ||||
|     procedure Move(CurIndex, NewIndex: integer); | ||||
|     function Load(Config: TConfigStorage): TModalResult; | ||||
|     function Load(Config: TConfigStorage; const Path: string): TModalResult; | ||||
| @ -138,6 +139,9 @@ type | ||||
|     function Count: integer; inline; | ||||
|     property Items[Index: integer]: TExternalToolMenuItem read GetItems; default; | ||||
|   end; | ||||
| 
 | ||||
| var | ||||
|   ExternalToolMenuItems: TExternalToolMenuItems = nil; | ||||
| {$ELSE} | ||||
| type | ||||
|   { TExternalToolOptions } | ||||
| @ -472,6 +476,8 @@ end; | ||||
| 
 | ||||
| destructor TExternalToolMenuItems.Destroy; | ||||
| begin | ||||
|   if ExternalToolMenuItems=Self then | ||||
|     ExternalToolMenuItems:=nil; | ||||
|   Clear; | ||||
|   FreeAndNil(fItems); | ||||
|   inherited Destroy; | ||||
| @ -519,6 +525,11 @@ begin | ||||
|   fItems.Insert(Index,Item); | ||||
| end; | ||||
| 
 | ||||
| procedure TExternalToolMenuItems.Delete(Index: integer); | ||||
| begin | ||||
|   fItems.Delete(Index); | ||||
| end; | ||||
| 
 | ||||
| procedure TExternalToolMenuItems.Move(CurIndex, NewIndex: integer); | ||||
| begin | ||||
|   fItems.Move(CurIndex,NewIndex); | ||||
|  | ||||
							
								
								
									
										64
									
								
								ide/main.pp
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								ide/main.pp
									
									
									
									
									
								
							| @ -625,7 +625,9 @@ type | ||||
|       Scanner: TLinkScanner); | ||||
| 
 | ||||
|     // MessagesView events | ||||
|     {$IFNDEF EnableNewExtTools} | ||||
|     procedure MessagesViewSelectionChanged(sender: TObject); | ||||
|     {$ENDIF} | ||||
| 
 | ||||
|     // SearchResultsView events | ||||
|     procedure SearchResultsViewSelectionChanged(sender: TObject); | ||||
| @ -693,7 +695,9 @@ type | ||||
|     procedure SetupDialogs; | ||||
|     procedure SetupComponentPalette; | ||||
|     procedure SetupHints; | ||||
|     {$IFNDEF EnableNewExtTools} | ||||
|     procedure SetupOutputFilter; | ||||
|     {$ENDIF} | ||||
|     procedure SetupObjectInspector; | ||||
|     procedure SetupFormEditor; | ||||
|     procedure SetupSourceNotebook; | ||||
| @ -839,7 +843,9 @@ type | ||||
| 
 | ||||
|     // external tools | ||||
|     function PrepareForCompile: TModalResult; override; | ||||
|     {$IFNDEF EnableNewExtTools} | ||||
|     function OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult; | ||||
|     {$ENDIF} | ||||
|     function DoRunExternalTool(Index: integer; ShowAbort: Boolean): TModalResult; | ||||
|     function DoSaveBuildIDEConfigs(Flags: TBuildLazarusFlags): TModalResult; override; | ||||
|     function DoExampleManager: TModalResult; override; | ||||
| @ -964,7 +970,12 @@ type | ||||
|     function DoConvertDelphiPackage(const DelphiFilename: string): TModalResult; | ||||
| 
 | ||||
|     // message view | ||||
|     function DoJumpToCompilerMessage(Index:integer; | ||||
|     function DoJumpToCompilerMessage( | ||||
|       {$IFDEF EnableNewExtTools} | ||||
|       Msg: TMessageLine; | ||||
|       {$ELSE} | ||||
|       Index:integer; | ||||
|       {$ENDIF} | ||||
|       FocusEditor: boolean): boolean; override; | ||||
|     procedure DoJumpToNextError(DirectionDown: boolean); override; | ||||
|     procedure DoShowMessagesView(BringToFront: boolean = true); override; | ||||
| @ -1289,7 +1300,12 @@ begin | ||||
|   SetupIDEMsgQuickFixItems; | ||||
|   EditorOpts.Load; | ||||
| 
 | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   ExternalToolMenuItems:=TExternalToolMenuItems(EnvironmentOptions.ExternalToolMenuItems); | ||||
|   ExternalToolMenuItems.LoadShortCuts(EditorOpts.KeyMap); | ||||
|   {$ELSE} | ||||
|   ExternalTools.LoadShortCuts(EditorOpts.KeyMap); | ||||
|   {$ENDIF} | ||||
| 
 | ||||
|   MiscellaneousOptions := TMiscellaneousOptions.Create; | ||||
|   MiscellaneousOptions.Load; | ||||
| @ -1327,6 +1343,7 @@ begin | ||||
|   FWaitForClose := False; | ||||
| 
 | ||||
|   SetupDialogs; | ||||
|   {$IFNDEF EnableNewExtTools} | ||||
|   RunExternalTool:=@OnRunExternalTool; | ||||
|   {$IFDEF UseAsyncProcess} | ||||
|   if Widgetset.GetLCLCapability(lcAsyncProcess) = 1 then | ||||
| @ -1336,6 +1353,7 @@ begin | ||||
|   {$ELSE} | ||||
|   TOutputFilterProcess := TProcessUTF8; | ||||
|   {$ENDIF} | ||||
|   {$ENDIF} | ||||
| 
 | ||||
|   MainBuildBoss:=TBuildManager.Create(nil); | ||||
|   MainBuildBoss.HasGUI:=true; | ||||
| @ -1431,7 +1449,9 @@ begin | ||||
|   HelpBoss.ConnectMainBarEvents; | ||||
|   {$IFDEF IDE_MEM_CHECK}CheckHeapWrtMemCnt('TMainIDE.Create MANAGERS');{$ENDIF} | ||||
|   // setup the IDE components | ||||
|   {$IFNDEF EnableNewExtTools} | ||||
|   SetupOutputFilter; | ||||
|   {$ENDIF} | ||||
|   MainBuildBoss.SetupCompilerInterface; | ||||
|   SetupObjectInspector; | ||||
|   SetupFormEditor; | ||||
| @ -1532,7 +1552,13 @@ begin | ||||
|   // free IDE parts | ||||
|   FreeFormEditor; | ||||
|   FreeTextConverters; | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   FreeThenNil(IDEQuickFixes); | ||||
|   {$ELSE} | ||||
|   FreeStandardIDEQuickFixItems; | ||||
|   FreeThenNil(IDEMsgScanners); | ||||
|   FreeThenNil(TheOutputFilter); | ||||
|   {$ENDIF} | ||||
|   FreeThenNil(GlobalDesignHook); | ||||
|   FreeThenNil(LPKInfoCache); | ||||
|   FreeThenNil(PkgBoss); | ||||
| @ -1541,8 +1567,6 @@ begin | ||||
|   FreeThenNil(TheCompiler); | ||||
|   FreeThenNil(HiddenWindowsOnRun); | ||||
|   FreeThenNil(LastActivatedWindows); | ||||
|   FreeThenNil(IDEMsgScanners); | ||||
|   FreeThenNil(TheOutputFilter); | ||||
|   FreeThenNil(GlobalMacroList); | ||||
|   FreeThenNil(IDEMacros); | ||||
|   FreeThenNil(IDECodeMacros); | ||||
| @ -1577,7 +1601,9 @@ end; | ||||
| procedure TMainIDE.CreateOftenUsedForms; | ||||
| begin | ||||
|   MessagesView:=TMessagesView.Create(nil); | ||||
|   {$IFNDEF EnableNewExtTools} | ||||
|   MessagesView.OnSelectionChanged := @MessagesViewSelectionChanged; | ||||
|   {$ENDIF} | ||||
| 
 | ||||
|   LazFindReplaceDialog:=TLazFindReplaceDialog.Create(nil); | ||||
| end; | ||||
| @ -2030,12 +2056,14 @@ begin | ||||
|   end; | ||||
| end; | ||||
| 
 | ||||
| {$IFNDEF EnableNewExtTools} | ||||
| procedure TMainIDE.SetupOutputFilter; | ||||
| begin | ||||
|   TheOutputFilter:=TOutputFilter.Create; | ||||
|   TheOutputFilter.OnGetIncludePath:=@CodeToolBoss.GetIncludePathForDirectory; | ||||
|   IDEMsgScanners:=TMessageScanners.Create; | ||||
| end; | ||||
| {$ENDIF} | ||||
| 
 | ||||
| procedure TMainIDE.SetupObjectInspector; | ||||
| begin | ||||
| @ -3136,7 +3164,7 @@ begin | ||||
| 
 | ||||
|   ecContextHelp: | ||||
|     if Sender=MessagesView then | ||||
|       HelpBoss.ShowHelpForMessage(-1) | ||||
|       HelpBoss.ShowHelpForMessage{$IFDEF EnableNewExtTools}(){$ELSE}(-1){$ENDIF} | ||||
|     else if Sender is TObjectInspectorDlg then | ||||
|       HelpBoss.ShowHelpForObjectInspector(Sender); | ||||
|   ecEditContextHelp: | ||||
| @ -4374,12 +4402,14 @@ end; | ||||
| 
 | ||||
| procedure TMainIDE.mnuToolConfigureClicked(Sender: TObject); | ||||
| begin | ||||
|   if ShowExtToolDialog(ExternalTools,GlobalMacroList)=mrOk then | ||||
|   if ShowExtToolDialog( | ||||
|     {$IFDEF EnableNewExtTools}ExternalToolMenuItems{$ELSE}ExternalTools{$ENDIF}, | ||||
|     GlobalMacroList)=mrOk then | ||||
|   begin | ||||
|     // save to environment options | ||||
|     SaveEnvironment(true); | ||||
|     // save shortcuts to editor options | ||||
|     ExternalTools.SaveShortCuts(EditorOpts.KeyMap); | ||||
|     {$IFDEF EnableNewExtTools}ExternalToolMenuItems{$ELSE}ExternalTools{$ENDIF}.SaveShortCuts(EditorOpts.KeyMap); | ||||
|     EditorOpts.Save; | ||||
|     UpdateHighlighters(True); | ||||
|     SourceEditorManager.ReloadEditorOptions; | ||||
| @ -6866,7 +6896,7 @@ var | ||||
|   NeedBuildAllFlag: Boolean; | ||||
|   UnitOutputDirectory: String; | ||||
|   TargetExeName: String; | ||||
|   err : TFPCErrorType; | ||||
|   err: TFPCErrorType; | ||||
|   TargetExeDirectory: String; | ||||
|   FPCVersion, FPCRelease, FPCPatch: integer; | ||||
|   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 | ||||
|         ToolStatus:=itBuilder; | ||||
| 
 | ||||
|         {$IFDEF EnableNewExtTools} | ||||
|         {$ELSE} | ||||
|         ConnectOutputFilter; | ||||
|         for err := Low(TFPCErrorType) to High(TFPCErrorType) do | ||||
|           with Project1.CompilerOptions.CompilerMessages do  | ||||
|             TheOutputFilter.ErrorTypeName[err] := ErrorNames[err]; | ||||
|         {$ENDIF} | ||||
| 
 | ||||
|         // compile | ||||
|         CompilerFilename:=Project1.GetCompilerFilename; | ||||
| @ -7180,7 +7213,7 @@ function TMainIDE.DoAbortBuild: TModalResult; | ||||
| begin | ||||
|   Result:=mrOk; | ||||
|   if ToolStatus<>itBuilder then exit; | ||||
|   TheOutputFilter.StopExecute:=true; | ||||
|   AbortBuild; | ||||
| end; | ||||
| 
 | ||||
| procedure TMainIDE.DoQuickCompile; | ||||
| @ -8080,12 +8113,14 @@ begin | ||||
|     MainBuildBoss.RescanCompilerDefines(false,false,false,false); | ||||
| end; | ||||
| 
 | ||||
| {$IFNDEF EnableNewExtTools} | ||||
| function TMainIDE.OnRunExternalTool(Tool: TIDEExternalToolOptions): TModalResult; | ||||
| begin | ||||
|   SourceEditorManager.ClearErrorLines; | ||||
|   Result:=ExternalTools.Run(Tool,GlobalMacroList,false); | ||||
|   DoCheckFilesOnDisk; | ||||
| end; | ||||
| {$ENDIF} | ||||
| 
 | ||||
| function TMainIDE.DoCheckSyntax: TModalResult; | ||||
| var | ||||
| @ -8521,8 +8556,12 @@ end; | ||||
| 
 | ||||
| procedure TMainIDE.AbortBuild; | ||||
| begin | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   ExternalTools.TerminateAll; | ||||
|   {$ELSE} | ||||
|   if TheOutputFilter<>nil then | ||||
|     TheOutputFilter.StopExecute:=true; | ||||
|   {$ENDIF} | ||||
| end; | ||||
| 
 | ||||
| procedure TMainIDE.UpdateCaption; | ||||
| @ -8841,7 +8880,12 @@ begin | ||||
|   ErrType:=FPCErrorTypeNameToType(ALine.Parts.Values['Type']); | ||||
| end; | ||||
| 
 | ||||
| function TMainIDE.DoJumpToCompilerMessage(Index:integer; | ||||
| function TMainIDE.DoJumpToCompilerMessage( | ||||
|   {$IFDEF EnableNewExtTools} | ||||
|   Msg: TMessageLine; | ||||
|   {$ELSE} | ||||
|   Index:integer; | ||||
|   {$ENDIF} | ||||
|   FocusEditor: boolean): boolean; | ||||
| var | ||||
|   MaxMessages: integer; | ||||
| @ -11141,10 +11185,12 @@ end; | ||||
| 
 | ||||
| //----------------------------------------------------------------------------- | ||||
| 
 | ||||
| {$IFNDEF EnableNewExtTools} | ||||
| procedure TMainIDE.MessagesViewSelectionChanged(sender: TObject); | ||||
| begin | ||||
|   DoJumpToCompilerMessage(TMessagesView(Sender).SelectedMessageIndex,True); | ||||
| end; | ||||
| {$ENDIF} | ||||
| 
 | ||||
| procedure TMainIDE.SearchResultsViewSelectionChanged(sender: TObject); | ||||
| begin | ||||
|  | ||||
| @ -3943,7 +3943,7 @@ begin | ||||
|           mtInformation,[mbOk],''); | ||||
|       end; | ||||
|     end else begin | ||||
|       MainIDE.DoJumpToCompilerMessage(-1,true); | ||||
|       MainIDE.DoJumpToCompilerMessage({$IFDEF EnableNewExtTools}nil{$ELSE}-1{$ENDIF},true); | ||||
|       Result:=mrAbort; | ||||
|       exit; | ||||
|     end; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 mattias
						mattias