forked from lix-project/lix
doc/release-notes: add for pretty printing improvements
Change-Id: I829581a3f5b8b742e6c866dcdbbc635f91afceb5
This commit is contained in:
parent
40c39aa5d2
commit
768d1f29a2
58
doc/manual/rl-next/pretty-printing.md
Normal file
58
doc/manual/rl-next/pretty-printing.md
Normal file
|
@ -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 ]
|
||||||
|
[
|
||||||
|
{ }
|
||||||
|
]
|
||||||
|
```
|
Loading…
Reference in a new issue