feat(keyup): Configure SearchMode for KeyUp invocation #1216 (#1224)

* feat(keyup): Configure SearchMode for KeyUp invocation #1216

* docs: adjusted search mode documentation

* feat: setting search mode on engine

* chore: cargo fmt

* chore: removed redundant field name
This commit is contained in:
Dieter Eickstaedt 2023-09-17 20:30:13 +02:00 committed by GitHub
parent 15abf42984
commit ebef5cdaf0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 4 deletions

View file

@ -47,6 +47,11 @@
## leave unspecified to use same mode set in "filter_mode"
# filter_mode_shell_up_key_binding = "global"
## which search mode to use when atuin is invoked from a shell up-key binding
## the accepted values are identical to those of "search_mode"
## leave unspecified to use same mode set in "search_mode"
# search_mode_shell_up_key_binding = "fuzzy"
## which style to use
## possible values: auto, full, compact
# style = "auto"

View file

@ -157,6 +157,7 @@ pub struct Settings {
pub search_mode: SearchMode,
pub filter_mode: FilterMode,
pub filter_mode_shell_up_key_binding: Option<FilterMode>,
pub search_mode_shell_up_key_binding: Option<SearchMode>,
pub shell_up_key_binding: bool,
pub inline_height: u16,
pub invert: bool,

View file

@ -614,13 +614,19 @@ pub async fn history(
let context = current_context();
let history_count = db.history_count().await?;
let search_mode = if settings.shell_up_key_binding {
settings
.search_mode_shell_up_key_binding
.unwrap_or(settings.search_mode)
} else {
settings.search_mode
};
let mut app = State {
history_count,
results_state: ListState::default(),
update_needed: None,
switched_search_mode: false,
search_mode: settings.search_mode,
search_mode,
search: SearchState {
input,
filter_mode: if settings.workspaces && context.git_root.is_some() {
@ -634,7 +640,7 @@ pub async fn history(
},
context,
},
engine: engines::engine(settings.search_mode),
engine: engines::engine(search_mode),
results_len: 0,
};

View file

@ -154,6 +154,18 @@ Filter modes can still be toggled via ctrl-r
filter_mode = "host"
```
### `search_mode_shell_up_key_binding`
The default searchmode to use when searching and being invoked from a shell up-key binding.
Accepts exactly the same options as `search_mode` above
```
search_mode_shell_up_key_binding = "fuzzy"
```
Defaults to the value specified for search_mode.
### `filter_mode_shell_up_key_binding`
The default filter to use when searching and being invoked from a shell up-key binding.

View file

@ -8,7 +8,7 @@ Atuin does not yet have full key binding customization, though we do allow some
## Custom up arrow filter mode
It can be useful to use a different filter mode on the up arrow. For example, you could use ctrl-r for searching globally, but the up arrow for searching history from the current directory only.
It can be useful to use a different filter or search mode on the up arrow. For example, you could use ctrl-r for searching globally, but the up arrow for searching history from the current directory only.
Set your config like this: