IDE: run file: added RunFlag Messages to show output in Messages window

git-svn-id: trunk@50446 -
This commit is contained in:
mattias 2015-11-20 15:02:04 +00:00
parent be79f48411
commit e20508a446
3 changed files with 12 additions and 7 deletions

View File

@ -28,7 +28,7 @@ const
SubToolMake = 'make'; SubToolMake = 'make';
SubToolMakePriority = 1000; // higher than FPC SubToolMakePriority = 1000; // higher than FPC
SubToolDefault = 'External Tool'; SubToolDefault = 'External Tool'; // this parser simply writes all output to Messages window
SubToolDefaultPriority = 0; SubToolDefaultPriority = 0;
AbortedExitCode = 12321; AbortedExitCode = 12321;

View File

@ -46,7 +46,8 @@ type
TIDEDirRunFlag = ( TIDEDirRunFlag = (
idedrfNone, idedrfNone,
idedrfBuildBeforeRun // BUILD+ means on (default), BUILD- means off idedrfBuildBeforeRun, // BUILD+ means on (default for non script), BUILD- means off
idedrfMessages // show output in Messages window
); );
TIDEDirRunFlags = set of TIDEDirRunFlag; TIDEDirRunFlags = set of TIDEDirRunFlag;
const const
@ -66,7 +67,8 @@ const
); );
IDEDirRunFlagNames: array[TIDEDirRunFlag] of string = ( IDEDirRunFlagNames: array[TIDEDirRunFlag] of string = (
'', '',
'BUILD' 'BUILD',
'MESSAGES'
); );
type type

View File

@ -7419,13 +7419,14 @@ begin
FirstLine:=''; FirstLine:='';
HasShebang:=copy(FirstLine,1,2)='#!'; HasShebang:=copy(FirstLine,1,2)='#!';
DefRunFlags:=IDEDirRunFlagDefValues; DefRunFlags:=IDEDirRunFlagDefValues;
if HasShebang then Exclude(DefRunFlags,idedrfBuildBeforeRun); if HasShebang then
Exclude(DefRunFlags,idedrfBuildBeforeRun);
RunFlags:=GetIDEDirRunFlagFromString( RunFlags:=GetIDEDirRunFlagFromString(
GetIDEStringDirective(DirectiveList,IDEDirectiveNames[idedRunFlags],''), GetIDEStringDirective(DirectiveList,IDEDirectiveNames[idedRunFlags],''),
DefRunFlags); DefRunFlags);
AlwaysBuildBeforeRun:=idedrfBuildBeforeRun in RunFlags; AlwaysBuildBeforeRun:=idedrfBuildBeforeRun in RunFlags;
if AlwaysBuildBeforeRun then begin if AlwaysBuildBeforeRun then begin
Result:=DoBuildFile(true); Result:=DoBuildFile(true,Filename);
if Result<>mrOk then exit; if Result<>mrOk then exit;
end; end;
RunWorkingDir:=GetIDEStringDirective(DirectiveList, RunWorkingDir:=GetIDEStringDirective(DirectiveList,
@ -7437,7 +7438,7 @@ begin
exit; exit;
end; end;
if HasShebang then if HasShebang then
DefRunCommand:='instantfpc'+ExeExt+' '+ActiveUnitInfo.Filename DefRunCommand:='instantfpc'+ExeExt+' '+Filename
else else
DefRunCommand:=IDEDirDefaultRunCommand; DefRunCommand:=IDEDirDefaultRunCommand;
RunCommand:=GetIDEStringDirective(DirectiveList, RunCommand:=GetIDEStringDirective(DirectiveList,
@ -7454,10 +7455,12 @@ begin
ExtTool:=TIDEExternalToolOptions.Create; ExtTool:=TIDEExternalToolOptions.Create;
try try
ExtTool.Title:='Run File '+ActiveUnitInfo.Filename; ExtTool.Title:='Run File '+Filename;
ExtTool.WorkingDirectory:=RunWorkingDir; ExtTool.WorkingDirectory:=RunWorkingDir;
ExtTool.CmdLineParams:=Params; ExtTool.CmdLineParams:=Params;
ExtTool.Executable:=ProgramFilename; ExtTool.Executable:=ProgramFilename;
if idedrfMessages in RunFlags then
ExtTool.Scanners.Add(SubToolDefault);
if RunExternalTool(ExtTool) then if RunExternalTool(ExtTool) then
Result:=mrOk Result:=mrOk
else else