mirror of
https://github.com/ClementTsang/bottom
synced 2024-11-27 14:40:43 +00:00
Add ctrl-u, update in-program docs
This commit is contained in:
parent
9fcbff99a3
commit
b80259d4d2
3 changed files with 68 additions and 39 deletions
93
src/app.rs
93
src/app.rs
|
@ -410,40 +410,6 @@ impl App {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn on_delete(&mut self) {
|
|
||||||
match self.current_widget_selected {
|
|
||||||
WidgetPosition::Process => self.start_dd(),
|
|
||||||
WidgetPosition::ProcessSearch => {
|
|
||||||
if self.process_search_state.search_state.is_enabled
|
|
||||||
&& self
|
|
||||||
.process_search_state
|
|
||||||
.search_state
|
|
||||||
.current_cursor_position < self
|
|
||||||
.process_search_state
|
|
||||||
.search_state
|
|
||||||
.current_search_query
|
|
||||||
.len()
|
|
||||||
{
|
|
||||||
self.process_search_state
|
|
||||||
.search_state
|
|
||||||
.current_search_query
|
|
||||||
.remove(
|
|
||||||
self.process_search_state
|
|
||||||
.search_state
|
|
||||||
.current_cursor_position,
|
|
||||||
);
|
|
||||||
|
|
||||||
self.update_regex();
|
|
||||||
self.update_process_gui = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Deletes an entire word till the next space or end
|
|
||||||
pub fn on_skip_backspace(&mut self) {}
|
|
||||||
|
|
||||||
pub fn is_searching(&self) -> bool {
|
pub fn is_searching(&self) -> bool {
|
||||||
self.process_search_state.search_state.is_enabled
|
self.process_search_state.search_state.is_enabled
|
||||||
}
|
}
|
||||||
|
@ -567,6 +533,65 @@ impl App {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn on_delete(&mut self) {
|
||||||
|
match self.current_widget_selected {
|
||||||
|
WidgetPosition::Process => self.start_dd(),
|
||||||
|
WidgetPosition::ProcessSearch => {
|
||||||
|
if self.process_search_state.search_state.is_enabled
|
||||||
|
&& self
|
||||||
|
.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_cursor_position < self
|
||||||
|
.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_search_query
|
||||||
|
.len()
|
||||||
|
{
|
||||||
|
self.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_search_query
|
||||||
|
.remove(
|
||||||
|
self.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_cursor_position,
|
||||||
|
);
|
||||||
|
|
||||||
|
self.update_regex();
|
||||||
|
self.update_process_gui = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Deletes an entire word till the next space or end
|
||||||
|
#[allow(unused_variables)]
|
||||||
|
pub fn on_skip_backspace(&mut self) {
|
||||||
|
if let WidgetPosition::ProcessSearch = self.current_widget_selected {
|
||||||
|
if self.process_search_state.search_state.is_enabled {
|
||||||
|
// Starting from the current position, work backwards on each char until we hit whitespace
|
||||||
|
let search_chars = self
|
||||||
|
.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_search_query
|
||||||
|
.chars();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn clear_search(&mut self) {
|
||||||
|
if let WidgetPosition::ProcessSearch = self.current_widget_selected {
|
||||||
|
self.process_search_state
|
||||||
|
.search_state
|
||||||
|
.current_cursor_position = 0;
|
||||||
|
self.process_search_state.search_state.current_search_query = String::default();
|
||||||
|
self.process_search_state
|
||||||
|
.search_state
|
||||||
|
.is_invalid_or_blank_search = true;
|
||||||
|
self.update_process_gui = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn on_backspace(&mut self) {
|
pub fn on_backspace(&mut self) {
|
||||||
if let WidgetPosition::ProcessSearch = self.current_widget_selected {
|
if let WidgetPosition::ProcessSearch = self.current_widget_selected {
|
||||||
if self.process_search_state.search_state.is_enabled
|
if self.process_search_state.search_state.is_enabled
|
||||||
|
|
|
@ -12,7 +12,7 @@ pub const DEFAULT_UNIX_CONFIG_FILE_PATH: &str = "~/.config/btm/btm.toml";
|
||||||
pub const DEFAULT_WINDOWS_CONFIG_FILE_PATH: &str = "";
|
pub const DEFAULT_WINDOWS_CONFIG_FILE_PATH: &str = "";
|
||||||
|
|
||||||
// Help text
|
// Help text
|
||||||
pub const GENERAL_HELP_TEXT: [&str; 17] = [
|
pub const GENERAL_HELP_TEXT: [&str; 15] = [
|
||||||
"General Keybindings\n\n",
|
"General Keybindings\n\n",
|
||||||
"q, Ctrl-c Quit bottom\n",
|
"q, Ctrl-c Quit bottom\n",
|
||||||
"Esc Close filters, dialog boxes, etc.",
|
"Esc Close filters, dialog boxes, etc.",
|
||||||
|
@ -23,8 +23,6 @@ pub const GENERAL_HELP_TEXT: [&str; 17] = [
|
||||||
"H/J/K/L Move currently selected widget up/down/left/right\n",
|
"H/J/K/L Move currently selected widget up/down/left/right\n",
|
||||||
"Up, k Move cursor up\n",
|
"Up, k Move cursor up\n",
|
||||||
"Down, j Move cursor down\n",
|
"Down, j Move cursor down\n",
|
||||||
"Left, h Move cursor left\n",
|
|
||||||
"Right, l Move cursor right\n",
|
|
||||||
"? Open the help screen\n",
|
"? Open the help screen\n",
|
||||||
"gg Skip to the first entry of a list\n",
|
"gg Skip to the first entry of a list\n",
|
||||||
"G Skip to the last entry of a list\n",
|
"G Skip to the last entry of a list\n",
|
||||||
|
@ -43,12 +41,17 @@ pub const PROCESS_HELP_TEXT: [&str; 8] = [
|
||||||
"Ctrl-f, / Open up the search widget\n",
|
"Ctrl-f, / Open up the search widget\n",
|
||||||
];
|
];
|
||||||
|
|
||||||
pub const SEARCH_HELP_TEXT: [&str; 8] = [
|
pub const SEARCH_HELP_TEXT: [&str; 13] = [
|
||||||
"Search Keybindings\n\n",
|
"Search Keybindings\n\n",
|
||||||
"Tab Toggle between searching for PID and name.\n",
|
"Tab Toggle between searching for PID and name.\n",
|
||||||
"Esc Close search widget\n",
|
"Esc Close search widget\n",
|
||||||
"Ctrl-a Skip to the start of search widget\n",
|
"Ctrl-a Skip to the start of search widget\n",
|
||||||
"Ctrl-e Skip to the end of search widget\n",
|
"Ctrl-e Skip to the end of search widget\n",
|
||||||
|
"Ctrl-u Clear the current search query\n",
|
||||||
|
"Backspace Delete the character behind the cursor\n",
|
||||||
|
"Delete Delete the character at the cursor\n",
|
||||||
|
"Left Move cursor left\n",
|
||||||
|
"Right Move cursor right\n",
|
||||||
"Alt-c Toggle whether to ignore case\n",
|
"Alt-c Toggle whether to ignore case\n",
|
||||||
"Alt-m Toggle whether to match the whole word\n",
|
"Alt-m Toggle whether to match the whole word\n",
|
||||||
"Alt-r Toggle whether to use regex\n",
|
"Alt-r Toggle whether to use regex\n",
|
||||||
|
|
|
@ -340,9 +340,10 @@ fn handle_key_event_or_break(
|
||||||
app.reset();
|
app.reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
KeyCode::Char('u') => app.clear_search(),
|
||||||
KeyCode::Char('a') => app.skip_cursor_beginning(),
|
KeyCode::Char('a') => app.skip_cursor_beginning(),
|
||||||
KeyCode::Char('e') => app.skip_cursor_end(),
|
KeyCode::Char('e') => app.skip_cursor_end(),
|
||||||
KeyCode::Backspace => app.on_skip_backspace(),
|
// TODO: [FEATURE] Ctrl-backspace KeyCode::Backspace => app.on_skip_backspace(),
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
} else if let KeyModifiers::SHIFT = event.modifiers {
|
} else if let KeyModifiers::SHIFT = event.modifiers {
|
||||||
|
|
Loading…
Reference in a new issue