diff --git a/crates/picker/src/picker.rs b/crates/picker/src/picker.rs index 6ff9f62e0f..8d6437c5dc 100644 --- a/crates/picker/src/picker.rs +++ b/crates/picker/src/picker.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use editor::Editor; +use editor::{scroll::Autoscroll, Editor}; use gpui::{ div, list, prelude::*, uniform_list, AnyElement, AppContext, ClickEvent, DismissEvent, EventEmitter, FocusHandle, FocusableView, Length, ListState, Render, Task, @@ -334,8 +334,13 @@ impl Picker { } pub fn set_query(&self, query: impl Into>, cx: &mut ViewContext) { - self.editor - .update(cx, |editor, cx| editor.set_text(query, cx)); + self.editor.update(cx, |editor, cx| { + editor.set_text(query, cx); + let editor_offset = editor.buffer().read(cx).len(cx); + editor.change_selections(Some(Autoscroll::Next), cx, |s| { + s.select_ranges(Some(editor_offset..editor_offset)) + }); + }); } fn scroll_to_item_index(&mut self, ix: usize) { diff --git a/crates/terminal/src/terminal.rs b/crates/terminal/src/terminal.rs index 342d4c6cc2..a84b02350e 100644 --- a/crates/terminal/src/terminal.rs +++ b/crates/terminal/src/terminal.rs @@ -1365,7 +1365,13 @@ impl Terminal { pub fn title(&self, truncate: bool) -> String { const MAX_CHARS: usize = 25; match &self.task { - Some(task_state) => truncate_and_trailoff(&task_state.label, MAX_CHARS), + Some(task_state) => { + if truncate { + truncate_and_trailoff(&task_state.label, MAX_CHARS) + } else { + task_state.label.clone() + } + } None => self .foreground_process_info .as_ref()