1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +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
{
None,
NoLines
NoLines,
NoWait
}
public class QueuedCmd
@ -212,6 +213,9 @@ namespace IDE
queuedCmd.mSrcFile = new String(filePath);
queuedCmd.mLineNum = lineNum;
if (flags.HasFlag(.NoWait))
queuedCmd.mNoWait = true;
if (line.StartsWith("nowait "))
{
queuedCmd.mNoWait = true;
@ -257,7 +261,7 @@ namespace IDE
{
StringStream strStream = scope .(cmds, .Reference);
StreamReader reader = scope .(strStream);
QueueCommands(reader, filePath, flags);
QueueCommands(reader, filePath, flags);
}
public void QueueCommandFile(StringView filePath)
@ -904,7 +908,7 @@ namespace IDE
return false;
if (sourceViewPanel.[Friend]mWantsFullClassify)
return false;
if (sourceViewPanel.[Friend]mWantsFullRefresh)
if (sourceViewPanel.[Friend]mWantsFullRefresh)
return false;
}
}
@ -2112,9 +2116,9 @@ namespace IDE
if (hasError != expectedError)
{
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
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;
}
}
@ -2153,16 +2157,18 @@ namespace IDE
int crPos = dbgContent.IndexOf('\n');
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 .();
File.ReadAllText(srcPath, srcContent, false);
let srcHash = MD5.Hash(.((uint8*)srcContent.Ptr, srcContent.Length));
if (dbgHash != srcHash)
//if (dbgHash != srcHash)
{
String bkuPath = scope .();
bkuPath.Append(gApp.mInstallDir, "/bku/");
Directory.CreateDirectory(bkuPath).IgnoreError();
Path.GetFileNameWithoutExtension(dbgFilePath, bkuPath);
bkuPath.Append("_");
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]
public void WaitDialog()
{

View file

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