aboutsummaryrefslogtreecommitdiff
path: root/doc/manual
diff options
context:
space:
mode:
authorAlois Wohlschlager <alois1@gmx-topmail.de>2024-07-18 19:08:20 +0200
committerAlois Wohlschlager <alois1@gmx-topmail.de>2024-07-18 19:08:20 +0200
commit768d1f29a2dcd9ed9552fafb4ab836ea2e400738 (patch)
tree63e4ccfb3c74b3a8b9fafcdb975329fddf80f9d1 /doc/manual
parent40c39aa5d2e8ff64c88d293744a3b7ba643a2274 (diff)
doc/release-notes: add for pretty printing improvements
Change-Id: I829581a3f5b8b742e6c866dcdbbc635f91afceb5
Diffstat (limited to 'doc/manual')
-rw-r--r--doc/manual/rl-next/pretty-printing.md58
1 files changed, 58 insertions, 0 deletions
diff --git a/doc/manual/rl-next/pretty-printing.md b/doc/manual/rl-next/pretty-printing.md
new file mode 100644
index 000000000..f7953f9ff
--- /dev/null
+++ b/doc/manual/rl-next/pretty-printing.md
@@ -0,0 +1,58 @@
+---
+synopsis: "Eliminate some pretty-printing surprises"
+cls: [1616, 1617, 1618]
+prs: [11100]
+credits: [alois31, roberth]
+category: Improvements
+---
+
+Some inconsistent and surprising behaviours have been eliminated from the pretty-printing used by the REPL and `nix eval`:
+* Lists and attribute sets that contain only a single item without nested structures are no longer sometimes inappropriately indented in the REPL, depending on internal state of the evaluator.
+* Empty attribute sets and derivations are no longer shown as `«repeated»`, since they are always cheap to print.
+ This matches the existing behaviour of `nix-instantiate` on empty attribute sets.
+ Empty lists were never printed as `«repeated»` already.
+* The REPL by default does not print nested attribute sets and lists, and indicates elided items with an ellipsis.
+ Previously, the ellipsis was printed even when the structure was empty, so that such items do not in fact exist.
+ Since this behaviour was confusing, it does not happen any more.
+
+Before:
+```
+nix-repl> :p let x = 1 + 2; in [ [ x ] [ x ] ]
+[
+ [
+ 3
+ ]
+ [ 3 ]
+]
+
+nix-repl> let inherit (import <nixpkgs> { }) hello; in [ hello hello ]
+[
+ «derivation /nix/store/fqs92lzychkm6p37j7fnj4d65nq9fzla-hello-2.12.1.drv»
+ «repeated»
+]
+
+nix-repl> let x = {}; in [ x ]
+[
+ { ... }
+]
+```
+
+After:
+```
+nix-repl> :p let x = 1 + 2; in [ [ x ] [ x ] ]
+[
+ [ 3 ]
+ [ 3 ]
+]
+
+nix-repl> let inherit (import <nixpkgs> { }) hello; in [ hello hello ]
+[
+ «derivation /nix/store/fqs92lzychkm6p37j7fnj4d65nq9fzla-hello-2.12.1.drv»
+ «derivation /nix/store/fqs92lzychkm6p37j7fnj4d65nq9fzla-hello-2.12.1.drv»
+]
+
+nix-repl> let x = {}; in [ x ]
+[
+ { }
+]
+```