-
Notifications
You must be signed in to change notification settings - Fork 0
Debugging and Analysis
Mick edited this page Jun 30, 2026
·
8 revisions
engine.AddBreakpoint("main.rules", 3);
engine.AddBreakpoint("main.rules", 5, "score > 80");
var session = new RuleScriptDebugSession(engine);
var runTask = session.RunFileAsync("main.rules");
var pause = await session.WaitForPauseAsync();
session.StepOver();
pause = await session.WaitForPauseAsync();
session.Continue();
var context = await runTask;Use Stop() to cancel a running or paused debug session.
At a pause point, RuleScriptDebugSession.CurrentSnapshot exposes the current source location, global variables, function locals, and active call stack.
var symbols = engine.Analyze(script);
var variables = symbols.VariableNames;
var functions = symbols.FunctionNames;
var imports = symbols.ImportAliases;
var typedVariables = symbols.Variables;
var userFunctions = symbols.UserFunctions;
var hostFunctions = symbols.HostFunctions;Analyze does not execute the script. It returns script variables, inferred types, User Function signatures, registered Host Function signatures, built-ins, and import aliases.
For cursor-aware completion, call Analyze(script, line, column) and read VisibleVariables or VisibleVariableNames.
For incomplete editor input:
var attempt = engine.TryAnalyze(script);
if (!attempt.Success)
{
foreach (var diagnostic in attempt.Diagnostics)
{
Console.WriteLine(diagnostic.Message);
}
}Best-effort analysis collects recoverable syntax errors while preserving partial symbols when possible.