1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 06:14:10 +02:00

Immediate commands no longer wait for paused

This commit is contained in:
Brian Fiete 2019-10-16 13:06:50 -07:00
parent 67ee302451
commit 3c153d27d2
2 changed files with 46 additions and 8 deletions

View file

@ -32,7 +32,8 @@ namespace IDE
public enum CmdFlags public enum CmdFlags
{ {
None, None,
NoLines NoLines,
NoWait
} }
public class QueuedCmd public class QueuedCmd
@ -212,6 +213,9 @@ namespace IDE
queuedCmd.mSrcFile = new String(filePath); queuedCmd.mSrcFile = new String(filePath);
queuedCmd.mLineNum = lineNum; queuedCmd.mLineNum = lineNum;
if (flags.HasFlag(.NoWait))
queuedCmd.mNoWait = true;
if (line.StartsWith("nowait ")) if (line.StartsWith("nowait "))
{ {
queuedCmd.mNoWait = true; queuedCmd.mNoWait = true;
@ -257,7 +261,7 @@ namespace IDE
{ {
StringStream strStream = scope .(cmds, .Reference); StringStream strStream = scope .(cmds, .Reference);
StreamReader reader = scope .(strStream); StreamReader reader = scope .(strStream);
QueueCommands(reader, filePath, flags); QueueCommands(reader, filePath, flags);
} }
public void QueueCommandFile(StringView filePath) public void QueueCommandFile(StringView filePath)
@ -904,7 +908,7 @@ namespace IDE
return false; return false;
if (sourceViewPanel.[Friend]mWantsFullClassify) if (sourceViewPanel.[Friend]mWantsFullClassify)
return false; return false;
if (sourceViewPanel.[Friend]mWantsFullRefresh) if (sourceViewPanel.[Friend]mWantsFullRefresh)
return false; return false;
} }
} }
@ -2112,9 +2116,9 @@ namespace IDE
if (hasError != expectedError) if (hasError != expectedError)
{ {
if (hasError) if (hasError)
ScriptManager.sActiveManager.Fail("Unexpected error at line {0} in {1}\n\t", lineIdx + 1, textPanel.mFilePath); mScriptManager.Fail("Unexpected error at line {0} in {1}\n\t", lineIdx + 1, textPanel.mFilePath);
else else
ScriptManager.sActiveManager.Fail("Expected error at line {0} in {1} but didn't encounter one\n\t", lineIdx + 1, textPanel.mFilePath); mScriptManager.Fail("Expected error at line {0} in {1} but didn't encounter one\n\t", lineIdx + 1, textPanel.mFilePath);
return; return;
} }
} }
@ -2153,16 +2157,18 @@ namespace IDE
int crPos = dbgContent.IndexOf('\n'); int crPos = dbgContent.IndexOf('\n');
StringView dbgText = .(dbgContent.Ptr + crPos + 1, dbgContent.Length - crPos - 1); StringView dbgText = .(dbgContent.Ptr + crPos + 1, dbgContent.Length - crPos - 1);
let dbgHash = MD5.Hash(.((uint8*)dbgText.Ptr, dbgText.Length)); //let dbgHash = MD5.Hash(.((uint8*)dbgText.Ptr, dbgText.Length));
String srcContent = scope .(); String srcContent = scope .();
File.ReadAllText(srcPath, srcContent, false); File.ReadAllText(srcPath, srcContent, false);
let srcHash = MD5.Hash(.((uint8*)srcContent.Ptr, srcContent.Length)); let srcHash = MD5.Hash(.((uint8*)srcContent.Ptr, srcContent.Length));
if (dbgHash != srcHash) //if (dbgHash != srcHash)
{ {
String bkuPath = scope .(); String bkuPath = scope .();
bkuPath.Append(gApp.mInstallDir, "/bku/"); bkuPath.Append(gApp.mInstallDir, "/bku/");
Directory.CreateDirectory(bkuPath).IgnoreError();
Path.GetFileNameWithoutExtension(dbgFilePath, bkuPath); Path.GetFileNameWithoutExtension(dbgFilePath, bkuPath);
bkuPath.Append("_"); bkuPath.Append("_");
srcHash.ToString(bkuPath); srcHash.ToString(bkuPath);
@ -2185,6 +2191,38 @@ namespace IDE
} }
} }
class DbgFileCtx
{
public String mFile ~ delete _;
public int mIdx;
}
DbgFileCtx mDbgFileCtx ~ delete _;
[IDECommand]
public void StartDebugFiles(String dbgPath)
{
DeleteAndNullify!(mDbgFileCtx);
mDbgFileCtx = new DbgFileCtx();
mDbgFileCtx.mFile = new String(dbgPath);
ContinueDebugFiles();
}
[IDECommand]
public void ContinueDebugFiles()
{
if (mDbgFileCtx == null)
{
mScriptManager.Fail("StartDebugFiles required");
return;
}
gApp.OutputLine("Compiling debug files {0}", mDbgFileCtx.mIdx);
gApp.ShowOutput();
RestoreDebugFilesSpan(mDbgFileCtx.mFile, mDbgFileCtx.mIdx, mDbgFileCtx.mIdx);
mDbgFileCtx.mIdx++;
}
[IDECommand] [IDECommand]
public void WaitDialog() public void WaitDialog()
{ {

View file

@ -338,7 +338,7 @@ namespace IDE.ui
if (cmdText.StartsWith("%")) if (cmdText.StartsWith("%"))
{ {
gApp.mScriptManager.Clear(); gApp.mScriptManager.Clear();
gApp.mScriptManager.QueueCommands(StringView(cmdText, 1), "Immediate", .NoLines); gApp.mScriptManager.QueueCommands(StringView(cmdText, 1), "Immediate", .NoLines | .NoWait);
} }
else else
result = mResultHoverWatch.Eval(cmdText, false); result = mResultHoverWatch.Eval(cmdText, false);