forked from lix-project/lix
print value in break
This commit is contained in:
parent
412d58f0bb
commit
3ddf864e1b
|
@ -77,7 +77,8 @@ ref<EvalState> EvalCommand::getEvalState()
|
|||
searchPath, getEvalStore(), getStore());
|
||||
if (startReplOnEvalErrors)
|
||||
debuggerHook = [evalState{ref<EvalState>(evalState)}](const Error * error, const Env & env, const Expr & expr) {
|
||||
std::cout << "\033[2J\033[1;1H";
|
||||
// clear the screen.
|
||||
// std::cout << "\033[2J\033[1;1H";
|
||||
|
||||
if (error)
|
||||
printError("%s\n\n" ANSI_BOLD "Starting REPL to allow you to inspect the current state of the evaluator.\n" ANSI_NORMAL, error->what());
|
||||
|
|
|
@ -712,12 +712,13 @@ static RegisterPrimOp primop_genericClosure(RegisterPrimOp::Info {
|
|||
|
||||
static RegisterPrimOp primop_break({
|
||||
.name = "break",
|
||||
.args = {},
|
||||
.args = {"v"},
|
||||
.doc = R"(
|
||||
In debug mode, pause Nix expression evaluation and enter the repl.
|
||||
)",
|
||||
.fun = [](EvalState & state, const Pos & pos, Value * * args, Value & v)
|
||||
{
|
||||
std::cout << "primop_break, value: " << *args[0] << std::endl;
|
||||
// PathSet context;
|
||||
// string s = state.coerceToString(pos, *args[0], context);
|
||||
if (debuggerHook && !state.debugTraces.empty())
|
||||
|
@ -728,6 +729,9 @@ static RegisterPrimOp primop_break({
|
|||
// const Env &env;
|
||||
// hintformat hint;
|
||||
debuggerHook(nullptr, dt.env, dt.expr);
|
||||
|
||||
// returning the value we were passed.
|
||||
v = *args[0];
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue