lowdown 1.4.0 changed the lowdown_opts to include a new and separate
lowdown_opts_term which allows for configuring values specific to
-Tterm (which we're using). This version should have been called 2.0.0
according to semver, hence 2.0.0 was released later without any actual
breaking changes to sort of migitate the problem.
We need to support lowdown >= 1.3 && < 1.4 since the ship has sailed for
updating lowdown in NixOS 25.05 as well as lowdown >= 1.4 or we'll be
stuck in Nixpkgs forever. Support for < 1.4 can be dropped as soon as
NixOS 25.05 is EOL, assuming this change lands before NixOS 25.11
branch-off.
We detect the changed API based on the lowdown version from pkg-config
and define LOWDOWN_SEPARATE_TERM_OPTS based on that. The ifdef is named
according to the specific API change that impacts us, so that it's
hopefully a little simpler to maintain going forward. In the new API,
all newly configurable settings use what would have been the (implicit)
default before. Changing some of these values, especially hpadding,
could be interesting in future changes.
Compared to cl/3081, this change makes sure to initialize all new fields
of lowdown_opts_term explicitly.
It seems that, while making -Tterm more configurable, lowdown's word
wrapping behavior changed slightly which broke basic_repl.test. I've
chosen to work around this by using builtins.add as an example which has
a very short documentation string, so wrapping doesn't matter.
Change-Id: Id73be4c0e43d7eb4f56e10a261b4254402698ff8
(cherry picked from commit 858de5f47a)
60 lines
1.2 KiB
Plaintext
60 lines
1.2 KiB
Plaintext
nix-repl> 1 + 1
|
|
2
|
|
|
|
nix-repl> :doc builtins.add
|
|
Synopsis: builtins.add e1 e2
|
|
|
|
Return the sum of the numbers e1 and e2.
|
|
|
|
|
|
nix-repl> f = a: "" + a
|
|
|
|
Expect the trace to not contain any traceback:
|
|
|
|
nix-repl> f 2
|
|
error:
|
|
… while evaluating a path segment
|
|
at «string»:1:10:
|
|
1| a: "" + a
|
|
| ^
|
|
|
|
error: cannot coerce an integer to a string: 2
|
|
|
|
nix-repl> :te
|
|
showing error traces
|
|
|
|
Expect the trace to have traceback:
|
|
|
|
nix-repl> f 2
|
|
error:
|
|
… from call site
|
|
at «string»:1:1:
|
|
1| f 2
|
|
| ^
|
|
|
|
… while calling anonymous lambda
|
|
at «string»:1:2:
|
|
1| a: "" + a
|
|
| ^
|
|
|
|
… while evaluating a path segment
|
|
at «string»:1:10:
|
|
1| a: "" + a
|
|
| ^
|
|
|
|
error: cannot coerce an integer to a string: 2
|
|
|
|
Turning it off should also work:
|
|
|
|
nix-repl> :te
|
|
not showing error traces
|
|
|
|
nix-repl> f 2
|
|
error:
|
|
… while evaluating a path segment
|
|
at «string»:1:10:
|
|
1| a: "" + a
|
|
| ^
|
|
|
|
error: cannot coerce an integer to a string: 2
|