mirror of https://gitlab.com/basile.b/dexed.git
fix, static explorer broken for runnable module after first execution
This commit is contained in:
parent
8d6cb64fb2
commit
4caebcfa57
|
@ -1298,7 +1298,7 @@ procedure TCEMainForm.compileAndRunFile(const edIndex: NativeInt; const runArgs:
|
||||||
var
|
var
|
||||||
editor: TCESynMemo;
|
editor: TCESynMemo;
|
||||||
dmdproc: TProcess;
|
dmdproc: TProcess;
|
||||||
fname: string;
|
fname, fBasename: string;
|
||||||
begin
|
begin
|
||||||
|
|
||||||
FreeRunnableProc;
|
FreeRunnableProc;
|
||||||
|
@ -1316,9 +1316,14 @@ begin
|
||||||
subjLmFromString(fLogMessager, 'compiling ' + shortenPath(editor.fileName, 25),
|
subjLmFromString(fLogMessager, 'compiling ' + shortenPath(editor.fileName, 25),
|
||||||
editor, amcEdit, amkInf);
|
editor, amcEdit, amkInf);
|
||||||
|
|
||||||
if fileExists(editor.fileName) then editor.save
|
if fileExists(editor.fileName) then begin
|
||||||
else editor.saveToFile(editor.tempFilename);
|
editor.save;
|
||||||
fname := stripFileExt(editor.fileName);
|
fname := editor.fileName;
|
||||||
|
end else begin
|
||||||
|
editor.saveTempFile;
|
||||||
|
fname := editor.tempFilename;
|
||||||
|
end;
|
||||||
|
fBasename := stripFileExt(fname);
|
||||||
|
|
||||||
if fRunnableSw = '' then
|
if fRunnableSw = '' then
|
||||||
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
|
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
|
||||||
|
@ -1327,9 +1332,9 @@ begin
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
dmdproc.Options := [poStdErrToOutput, poUsePipes];
|
dmdproc.Options := [poStdErrToOutput, poUsePipes];
|
||||||
dmdproc.Executable := DCompiler;
|
dmdproc.Executable := DCompiler;
|
||||||
dmdproc.Parameters.Add(editor.fileName);
|
dmdproc.Parameters.Add(fname);
|
||||||
dmdproc.Parameters.AddText(fRunnableSw);
|
dmdproc.Parameters.AddText(fRunnableSw);
|
||||||
dmdproc.Parameters.Add('-of' + fname + exeExt);
|
dmdproc.Parameters.Add('-of' + fBasename + exeExt);
|
||||||
LibMan.getLibFiles(nil, dmdproc.Parameters);
|
LibMan.getLibFiles(nil, dmdproc.Parameters);
|
||||||
LibMan.getLibSources(nil, dmdproc.Parameters);
|
LibMan.getLibSources(nil, dmdproc.Parameters);
|
||||||
dmdproc.Execute;
|
dmdproc.Execute;
|
||||||
|
@ -1343,10 +1348,10 @@ begin
|
||||||
fRunProc.CurrentDirectory := extractFilePath(fRunProc.Executable);
|
fRunProc.CurrentDirectory := extractFilePath(fRunProc.Executable);
|
||||||
if runArgs <> '' then
|
if runArgs <> '' then
|
||||||
fRunProc.Parameters.DelimitedText := symbolExpander.get(runArgs);
|
fRunProc.Parameters.DelimitedText := symbolExpander.get(runArgs);
|
||||||
fRunProc.Executable := fname + exeExt;
|
fRunProc.Executable := fBasename + exeExt;
|
||||||
fPrInpWidg.process := fRunProc;
|
fPrInpWidg.process := fRunProc;
|
||||||
fRunProc.Execute;
|
fRunProc.Execute;
|
||||||
sysutils.DeleteFile(fname + objExt);
|
sysutils.DeleteFile(fBasename + objExt);
|
||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
subjLmFromString(fLogMessager, shortenPath(editor.fileName,25)
|
subjLmFromString(fLogMessager, shortenPath(editor.fileName,25)
|
||||||
|
|
|
@ -391,7 +391,6 @@ end;
|
||||||
procedure TCEStaticExplorerWidget.produceJsonInfo;
|
procedure TCEStaticExplorerWidget.produceJsonInfo;
|
||||||
var
|
var
|
||||||
srcFname, itm: string;
|
srcFname, itm: string;
|
||||||
tempSrc: TStringList;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if fDoc = nil then exit;
|
if fDoc = nil then exit;
|
||||||
|
@ -409,14 +408,8 @@ begin
|
||||||
fJsonFname := fDoc.tempFilename + '.json';
|
fJsonFname := fDoc.tempFilename + '.json';
|
||||||
srcFname := fDoc.fileName;
|
srcFname := fDoc.fileName;
|
||||||
if not fileExists(srcFname) then begin
|
if not fileExists(srcFname) then begin
|
||||||
tempSrc := TStringList.Create;
|
srcFname := fDoc.tempFilename;
|
||||||
try
|
fDoc.saveTempFile;
|
||||||
srcFname := fDoc.tempFilename;
|
|
||||||
tempSrc.Assign(fDoc.Lines);
|
|
||||||
tempSrc.SaveToFile(srcFname);
|
|
||||||
finally
|
|
||||||
tempSrc.Free;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
//else fDoc.save; refreshonChange/autorefresh don't work until existing doc is saved
|
//else fDoc.save; refreshonChange/autorefresh don't work until existing doc is saved
|
||||||
fDmdProc.Parameters.Add(srcFname);
|
fDmdProc.Parameters.Add(srcFname);
|
||||||
|
|
|
@ -98,6 +98,7 @@ type
|
||||||
procedure loadFromFile(const aFilename: string);
|
procedure loadFromFile(const aFilename: string);
|
||||||
procedure saveToFile(const aFilename: string);
|
procedure saveToFile(const aFilename: string);
|
||||||
procedure save;
|
procedure save;
|
||||||
|
procedure saveTempFile;
|
||||||
//
|
//
|
||||||
property Identifier: string read fIdentifier;
|
property Identifier: string read fIdentifier;
|
||||||
property fileName: string read fFilename;
|
property fileName: string read fFilename;
|
||||||
|
@ -430,7 +431,6 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.save;
|
procedure TCESynMemo.save;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Lines.SaveToFile(fFilename);
|
Lines.SaveToFile(fFilename);
|
||||||
FileAge(fFilename, fFileDate);
|
FileAge(fFilename, fFileDate);
|
||||||
|
@ -439,6 +439,12 @@ begin
|
||||||
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCESynMemo.saveTempFile;
|
||||||
|
begin
|
||||||
|
Lines.SaveToFile(fTempFileName);
|
||||||
|
fModified := false;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TCESynMemo.saveCache;
|
procedure TCESynMemo.saveCache;
|
||||||
var
|
var
|
||||||
cache: TCESynMemoCache;
|
cache: TCESynMemoCache;
|
||||||
|
|
Loading…
Reference in New Issue