forked from lix-project/lix
Merge pull request #9919 from 9999years/reduce-debugger-clutter
Reduce visual clutter in the debugger (cherry picked from commitf388a6148d
) Change-Id:I21bfe3e9f75816484b0f46dbe09e0ff40b22c6d9
This commit is contained in:
parent
9ef32cf3b8
commit
43cedec6c5
37
doc/manual/rl-next/reduce-debugger-clutter.md
Normal file
37
doc/manual/rl-next/reduce-debugger-clutter.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
---
|
||||||
|
synopsis: "Visual clutter in `--debugger` is reduced"
|
||||||
|
prs: 9919
|
||||||
|
---
|
||||||
|
|
||||||
|
Before:
|
||||||
|
```
|
||||||
|
info: breakpoint reached
|
||||||
|
|
||||||
|
|
||||||
|
Starting REPL to allow you to inspect the current state of the evaluator.
|
||||||
|
|
||||||
|
Welcome to Nix 2.20.0pre20231222_dirty. Type :? for help.
|
||||||
|
|
||||||
|
nix-repl> :continue
|
||||||
|
error: uh oh
|
||||||
|
|
||||||
|
|
||||||
|
Starting REPL to allow you to inspect the current state of the evaluator.
|
||||||
|
|
||||||
|
Welcome to Nix 2.20.0pre20231222_dirty. Type :? for help.
|
||||||
|
|
||||||
|
nix-repl>
|
||||||
|
```
|
||||||
|
|
||||||
|
After:
|
||||||
|
|
||||||
|
```
|
||||||
|
info: breakpoint reached
|
||||||
|
|
||||||
|
Nix 2.20.0pre20231222_dirty debugger
|
||||||
|
Type :? for help.
|
||||||
|
nix-repl> :continue
|
||||||
|
error: uh oh
|
||||||
|
|
||||||
|
nix-repl>
|
||||||
|
```
|
|
@ -232,10 +232,19 @@ static std::ostream & showDebugTrace(std::ostream & out, const PosTable & positi
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isFirstRepl = true;
|
||||||
|
|
||||||
void NixRepl::mainLoop()
|
void NixRepl::mainLoop()
|
||||||
{
|
{
|
||||||
std::string error = ANSI_RED "error:" ANSI_NORMAL " ";
|
if (isFirstRepl) {
|
||||||
notice("Welcome to Nix " + nixVersion + ". Type :? for help.\n");
|
std::string_view debuggerNotice = "";
|
||||||
|
if (state->debugRepl) {
|
||||||
|
debuggerNotice = " debugger";
|
||||||
|
}
|
||||||
|
notice("Nix %1%%2%\nType :? for help.", nixVersion, debuggerNotice);
|
||||||
|
}
|
||||||
|
|
||||||
|
isFirstRepl = false;
|
||||||
|
|
||||||
loadFiles();
|
loadFiles();
|
||||||
|
|
||||||
|
|
|
@ -887,12 +887,10 @@ void EvalState::runDebugRepl(const Error * error, const Env & env, const Expr &
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
printError("%s\n\n", error->what());
|
printError("%s\n", error->what());
|
||||||
|
|
||||||
if (trylevel > 0 && error->info().level != lvlInfo)
|
if (trylevel > 0 && error->info().level != lvlInfo)
|
||||||
printError("This exception occurred in a 'tryEval' call. Use " ANSI_GREEN "--ignore-try" ANSI_NORMAL " to skip these.\n");
|
printError("This exception occurred in a 'tryEval' call. Use " ANSI_GREEN "--ignore-try" ANSI_NORMAL " to skip these.\n");
|
||||||
|
|
||||||
printError(ANSI_BOLD "Starting REPL to allow you to inspect the current state of the evaluator.\n" ANSI_NORMAL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto se = getStaticEnv(expr);
|
auto se = getStaticEnv(expr);
|
||||||
|
|
Loading…
Reference in a new issue