mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-07 10:01:14 -03:00
On enter, insert any failed search into the command line
This might help with use cases such as https://github.com/fish-shell/fish-shell/pull/11450. Not sure.
This commit is contained in:
@@ -3945,9 +3945,9 @@ fn handle_execute(&mut self) -> bool {
|
|||||||
// using a backslash, insert a newline.
|
// using a backslash, insert a newline.
|
||||||
// If the user hits return while navigating the pager, it only clears the pager.
|
// If the user hits return while navigating the pager, it only clears the pager.
|
||||||
if self.is_navigating_pager_contents() {
|
if self.is_navigating_pager_contents() {
|
||||||
|
let search_field = &self.data.pager.search_field_line;
|
||||||
if self.history_pager.is_some() && self.pager.selected_completion_idx.is_none() {
|
if self.history_pager.is_some() && self.pager.selected_completion_idx.is_none() {
|
||||||
let range = 0..self.command_line.len();
|
let range = 0..self.command_line.len();
|
||||||
let search_field = &self.data.pager.search_field_line;
|
|
||||||
let offset_from_end = search_field.len() - search_field.position();
|
let offset_from_end = search_field.len() - search_field.position();
|
||||||
let mut cursor = self.command_line.position();
|
let mut cursor = self.command_line.position();
|
||||||
let updated = replace_line_at_cursor(
|
let updated = replace_line_at_cursor(
|
||||||
@@ -3957,6 +3957,13 @@ fn handle_execute(&mut self) -> bool {
|
|||||||
);
|
);
|
||||||
self.replace_substring(EditableLineTag::Commandline, range, updated);
|
self.replace_substring(EditableLineTag::Commandline, range, updated);
|
||||||
self.command_line.set_position(cursor - offset_from_end);
|
self.command_line.set_position(cursor - offset_from_end);
|
||||||
|
} else if self
|
||||||
|
.pager
|
||||||
|
.selected_completion(&self.data.current_page_rendering)
|
||||||
|
.is_none()
|
||||||
|
{
|
||||||
|
let failed_search = search_field.text().to_owned();
|
||||||
|
self.insert_string(EditableLineTag::Commandline, &failed_search);
|
||||||
}
|
}
|
||||||
self.clear_pager();
|
self.clear_pager();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user