Fix ctrl-l breaking UI

Also improve the filter mode key bindings

Fixes: https://github.com/sayanarijit/xplr/issues/88
pull/90/head
Arijit Basu 3 years ago committed by Arijit Basu
parent ca13ebb193
commit 1783834a2e

@ -530,6 +530,12 @@ pub struct BuiltinModesConfig {
#[serde(default)]
pub filter: Mode,
#[serde(default)]
pub relative_path_does_contain: Mode,
#[serde(default)]
pub relative_path_does_not_contain: Mode,
#[serde(default)]
pub sort: Mode,
}
@ -548,6 +554,12 @@ impl BuiltinModesConfig {
self.action = self.action.extend(other.action);
self.search = self.search.extend(other.search);
self.filter = self.filter.extend(other.filter);
self.relative_path_does_contain = self
.relative_path_does_contain
.extend(other.relative_path_does_contain);
self.relative_path_does_not_contain = self
.relative_path_does_not_contain
.extend(other.relative_path_does_not_contain);
self.sort = self.sort.extend(other.sort);
self
}
@ -571,6 +583,10 @@ impl BuiltinModesConfig {
"search" => Some(&self.search),
"sort" => Some(&self.sort),
"filter" => Some(&self.filter),
"relative_path_does_contain" => Some(&self.relative_path_does_contain),
"relative path does contain" => Some(&self.relative_path_does_contain),
"relative_path_does_not_contain" => Some(&self.relative_path_does_not_contain),
"relative path does not contain" => Some(&self.relative_path_does_not_contain),
_ => None,
}
}

@ -516,16 +516,56 @@ modes:
messages:
- BufferInputFromKey
filter:
name: filter
relative_path_does_not_contain:
name: relative path does not contain
key_bindings:
on_key:
ctrl-x:
help: remove last filter
backspace:
help: remove last character
messages:
- RemoveLastNodeFilter
- RemoveNodeFilterFromInput: IRelativePathDoesNotContain
- RemoveInputBufferLastCharacter
- AddNodeFilterFromInput: IRelativePathDoesNotContain
- Explore
ctrl-w:
help: remove last word
messages:
- RemoveNodeFilterFromInput: IRelativePathDoesNotContain
- RemoveInputBufferLastWord
- AddNodeFilterFromInput: IRelativePathDoesNotContain
- Explore
ctrl-u:
help: remove line
messages:
- RemoveNodeFilterFromInput: IRelativePathDoesNotContain
- SetInputBuffer: ""
- AddNodeFilterFromInput: IRelativePathDoesNotContain
- Explore
enter:
help: apply filter
messages:
- SwitchMode: default
esc:
help: cancel
messages:
- RemoveNodeFilterFromInput: IRelativePathDoesNotContain
- SwitchMode: default
- Explore
ctrl-c:
help: terminate
messages:
- Terminate
default:
messages:
- RemoveNodeFilterFromInput: IRelativePathDoesNotContain
- BufferInputFromKey
- AddNodeFilterFromInput: IRelativePathDoesNotContain
- Explore
relative_path_does_contain:
name: relative path does contain
key_bindings:
on_key:
backspace:
help: remove last character
messages:
@ -547,18 +587,6 @@ modes:
- SetInputBuffer: ""
- AddNodeFilterFromInput: IRelativePathDoesContain
- Explore
ctrl-r:
help: reset filters
messages:
- SetInputBuffer: ""
- ResetNodeFilters
- Explore
ctrl-l:
help: clear filters
messages:
- SetInputBuffer: ""
- ClearNodeFilters
- Explore
enter:
help: apply filter
messages:
@ -581,6 +609,47 @@ modes:
- AddNodeFilterFromInput: IRelativePathDoesContain
- Explore
filter:
name: filter
key_bindings:
on_key:
backspace:
help: remove last filter
messages:
- RemoveLastNodeFilter
- Explore
r:
help: relative does contain
messages:
- SwitchMode: relative_path_does_contain
- SetInputBuffer: ""
- AddNodeFilterFromInput: IRelativePathDoesContain
- Explore
R:
help: relative does not contain
messages:
- SwitchMode: relative_path_does_not_contain
- SetInputBuffer: ""
- AddNodeFilterFromInput: IRelativePathDoesNotContain
- Explore
ctrl-r:
help: reset filters
messages:
- ResetNodeFilters
- Explore
ctrl-u:
help: clear filters
messages:
- ClearNodeFilters
- Explore
ctrl-c:
help: terminate
messages:
- Terminate
default:
messages:
- SwitchMode: default
sort:
name: sort
help: null
@ -603,7 +672,7 @@ modes:
messages:
- ResetNodeSorters
- Explore
ctrl-l:
ctrl-u:
help: clear sorters
messages:
- ClearNodeSorters
@ -719,8 +788,6 @@ modes:
help: filter
messages:
- SwitchMode: filter
- SetInputBuffer: ''
- Explore
.:
help: show hidden
messages:
@ -808,7 +875,7 @@ modes:
help: next visited path
messages:
- NextVisitedPath
ctrl-l:
ctrl-u:
help: clear selection
messages:
- ClearSelection

Loading…
Cancel
Save