Fix support for readline keys

pull/508/head v0.19.2
Arijit Basu 2 years ago
parent 12264722ef
commit f2713d9549
No known key found for this signature in database
GPG Key ID: 0F8EF5258DC38077

2
Cargo.lock generated

@ -1203,7 +1203,7 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
[[package]] [[package]]
name = "xplr" name = "xplr"
version = "0.19.1" version = "0.19.2"
dependencies = [ dependencies = [
"ansi-to-tui", "ansi-to-tui",
"anyhow", "anyhow",

@ -8,7 +8,7 @@ path = './benches/criterion.rs'
[package] [package]
name = 'xplr' name = 'xplr'
version = '0.19.1' version = '0.19.2'
authors = ['Arijit Basu <hi@arijitbasu.in>'] authors = ['Arijit Basu <hi@arijitbasu.in>']
edition = '2021' edition = '2021'
description = 'A hackable, minimal, fast TUI file explorer' description = 'A hackable, minimal, fast TUI file explorer'

@ -45,7 +45,7 @@ compatibility.
### Instructions ### Instructions
#### [v0.18.0][46] -> [v0.19.1][47] #### [v0.18.0][46] -> [v0.19.2][47]
- BREAKING: The builtin modes cannot be accessed using space separated names - BREAKING: The builtin modes cannot be accessed using space separated names
anymore. Use underscore separated mode names. For e.g. anymore. Use underscore separated mode names. For e.g.
@ -387,4 +387,4 @@ Else do the following:
[44]: https://github.com/sayanarijit/xplr/releases/tag/v0.16.4 [44]: https://github.com/sayanarijit/xplr/releases/tag/v0.16.4
[45]: https://github.com/sayanarijit/xplr/releases/tag/v0.17.6 [45]: https://github.com/sayanarijit/xplr/releases/tag/v0.17.6
[46]: https://github.com/sayanarijit/xplr/releases/tag/v0.18.0 [46]: https://github.com/sayanarijit/xplr/releases/tag/v0.18.0
[47]: https://github.com/sayanarijit/xplr/releases/tag/v0.19.1 [47]: https://github.com/sayanarijit/xplr/releases/tag/v0.19.2

@ -213,19 +213,20 @@ impl Key {
use Key::*; use Key::*;
match self { match self {
Backspace => Some(DeletePreviousCharacter), Backspace | CtrlH => Some(DeletePreviousCharacter),
Delete => Some(DeleteNextCharacter), Delete => Some(DeleteNextCharacter),
Tab => Some(InsertCharacter('\t')), Tab => Some(InsertCharacter('\t')),
Space => Some(InsertCharacter(' ')), Space => Some(InsertCharacter(' ')),
Left => Some(GoToPreviousCharacter), Left | CtrlB => Some(GoToPreviousCharacter),
CtrlLeft => Some(GoToPreviousWord), CtrlLeft => Some(GoToPreviousWord),
Right => Some(GoToNextCharacter), Right | CtrlF => Some(GoToNextCharacter),
CtrlRight => Some(GoToNextWord), CtrlRight => Some(GoToNextWord),
CtrlU => Some(DeleteLine), CtrlU => Some(DeleteLine),
CtrlW => Some(DeletePreviousWord), CtrlW => Some(DeletePreviousWord),
CtrlDelete => Some(DeleteNextWord), CtrlDelete => Some(DeleteNextWord),
CtrlA => Some(GoToStart), CtrlA | Home => Some(GoToStart),
CtrlE => Some(GoToEnd), CtrlE | End => Some(GoToEnd),
CtrlK => Some(DeleteTillEnd),
key => key.to_char().map(InsertCharacter), key => key.to_char().map(InsertCharacter),
} }
} }

@ -146,24 +146,24 @@ mod tests {
assert!(check_version(VERSION, "foo path").is_ok()); assert!(check_version(VERSION, "foo path").is_ok());
// Current release if OK // Current release if OK
assert!(check_version("0.19.1", "foo path").is_ok()); assert!(check_version("0.19.2", "foo path").is_ok());
// Prev major release is ERR // Prev major release is ERR
// - Not yet // - Not yet
// Prev minor release is ERR (Change when we get to v1) // Prev minor release is ERR (Change when we get to v1)
assert!(check_version("0.18.1", "foo path").is_err()); assert!(check_version("0.18.2", "foo path").is_err());
// Prev bugfix release is OK // Prev bugfix release is OK
assert!(check_version("0.19.0", "foo path").is_ok()); assert!(check_version("0.19.1", "foo path").is_ok());
// Next major release is ERR // Next major release is ERR
assert!(check_version("1.19.1", "foo path").is_err()); assert!(check_version("1.19.2", "foo path").is_err());
// Next minor release is ERR // Next minor release is ERR
assert!(check_version("0.20.1", "foo path").is_err()); assert!(check_version("0.20.2", "foo path").is_err());
// Next bugfix release is ERR (Change when we get to v1) // Next bugfix release is ERR (Change when we get to v1)
assert!(check_version("0.19.2", "foo path").is_err()); assert!(check_version("0.19.3", "foo path").is_err());
} }
} }

Loading…
Cancel
Save