forked from lix-project/lix
repl: Patch editline to recognize Meta-Left & Meta-Right
This applies https://github.com/troglobit/editline/pull/70 to our build
of editline, which translates `meta-left` and `meta-right` into
`fd_word` and `bk_word`. This makes `nix repl` soooo much nicer to use!
Note: My terminal renders `meta-left` as `\e\e[C` and `meta-right` as
`\e\e[D`.
Closes lix-project/lix#501
Change-Id: I048b10cf17231bbf4e6bf38e1d1d8572cedaa194
This commit is contained in:
parent
e9505dcc5a
commit
6de6cae3e7
10
doc/manual/rl-next/alt-left-and-alt-right-in-repl.md
Normal file
10
doc/manual/rl-next/alt-left-and-alt-right-in-repl.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
synopsis: "`Alt+Left` and `Alt+Right` go back/forwards by words in `nix repl`"
|
||||||
|
issues: [fj#501]
|
||||||
|
cls: [1883]
|
||||||
|
category: Fixes
|
||||||
|
credits: 9999years
|
||||||
|
---
|
||||||
|
|
||||||
|
`nix repl` now recognizes `Alt+Left` and `Alt+Right` for navigating by words
|
||||||
|
when entering input in `nix repl` on more terminals/platforms.
|
29
package.nix
29
package.nix
|
@ -22,6 +22,7 @@
|
||||||
doxygen,
|
doxygen,
|
||||||
editline-lix ? __forDefaults.editline-lix,
|
editline-lix ? __forDefaults.editline-lix,
|
||||||
editline,
|
editline,
|
||||||
|
fetchpatch,
|
||||||
git,
|
git,
|
||||||
gtest,
|
gtest,
|
||||||
jq,
|
jq,
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
mercurial,
|
mercurial,
|
||||||
meson,
|
meson,
|
||||||
ninja,
|
ninja,
|
||||||
|
ncurses,
|
||||||
openssl,
|
openssl,
|
||||||
pegtl,
|
pegtl,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
|
@ -81,7 +83,32 @@
|
||||||
boehmgc-nix = boehmgc.override { enableLargeConfig = true; };
|
boehmgc-nix = boehmgc.override { enableLargeConfig = true; };
|
||||||
|
|
||||||
editline-lix = editline.overrideAttrs (prev: {
|
editline-lix = editline.overrideAttrs (prev: {
|
||||||
configureFlags = prev.configureFlags or [ ] ++ [ (lib.enableFeature true "sigstop") ];
|
patches = (prev.patches or [ ]) ++ [
|
||||||
|
# Recognize `Alt-Left` and `Alt-Right` for navigating by words in more
|
||||||
|
# terminals/shells/platforms.
|
||||||
|
#
|
||||||
|
# See: https://github.com/troglobit/editline/pull/70/commits
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/troglobit/editline/pull/70/commits/d0f2a5bc2300b96b2434c7838184c1dfd6a639f5.diff";
|
||||||
|
hash = "sha256-0bbtYDUlk1wA0kpTtlaNI6KaCjLmAesZjcWBJZ+DpyQ=";
|
||||||
|
})
|
||||||
|
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://github.com/troglobit/editline/pull/70/commits/4c4455353a0a88bee09d5f27c28f81f747682fed.diff";
|
||||||
|
hash = "sha256-nVezspwVzeB/8zENeKgwPVum0W1MLv4dOW0967WbX5w=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
configureFlags = (prev.configureFlags or [ ]) ++ [
|
||||||
|
# Enable SIGSTOP (Ctrl-Z) behavior.
|
||||||
|
(lib.enableFeature true "sigstop")
|
||||||
|
# Enable ANSI arrow keys.
|
||||||
|
(lib.enableFeature true "arrow-keys")
|
||||||
|
# Use termcap library to query terminal size.
|
||||||
|
(lib.enableFeature (ncurses != null) "termcap")
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = (prev.nativeBuildInputs or [ ]) ++ [ ncurses ];
|
||||||
});
|
});
|
||||||
|
|
||||||
build-release-notes = callPackage ./maintainers/build-release-notes.nix { };
|
build-release-notes = callPackage ./maintainers/build-release-notes.nix { };
|
||||||
|
|
Loading…
Reference in a new issue