mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
:print
strings directly in nix repl
Strings are now printed directly when evaluated by `:print`, rather than escaped. This makes it easier to debug multi-line strings or strings containing quotes, like the results of `builtins.readFile`, `lib.toShellArg`, and so on. ``` nix-repl> "cuppy\ndog\ncity" "cuppy\ndog\ncity" nix-repl> :p "cuppy\ndog\ncity" cuppy dog city ```
This commit is contained in:
parent
ac730622e8
commit
d859d6c434
@ -542,6 +542,7 @@ ProcessLineResult NixRepl::processLine(std::string line)
|
||||
<< " :l, :load <path> Load Nix expression and add it to scope\n"
|
||||
<< " :lf, :load-flake <ref> Load Nix flake and add it to scope\n"
|
||||
<< " :p, :print <expr> Evaluate and print expression recursively\n"
|
||||
<< " Strings are printed directly, without escaping.\n"
|
||||
<< " :q, :quit Exit nix-repl\n"
|
||||
<< " :r, :reload Reload all files\n"
|
||||
<< " :sh <expr> Build dependencies of derivation, then start\n"
|
||||
@ -749,7 +750,11 @@ ProcessLineResult NixRepl::processLine(std::string line)
|
||||
else if (command == ":p" || command == ":print") {
|
||||
Value v;
|
||||
evalString(arg, v);
|
||||
printValue(std::cout, v);
|
||||
if (v.type() == nString) {
|
||||
std::cout << v.string_view();
|
||||
} else {
|
||||
printValue(std::cout, v);
|
||||
}
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user