T23c round 1 fix

- suggestions: arrows step past disabled rows and scroll the cursor into view;
  the cursor starts on an enabled row; Enter refuses a disabled one
- active_trigger takes the query's word test: one word for mentions, any
  non-space for the composer, so a file name keeps its dot
- DragDropOverlay takes the drop itself, which gives it the hitbox gpui needs
  to style a drag-over
- ParameterPanel shows the places of the step, value and both ends
- gallery: the prompt menu fills the draft; Reset restores the system prompt
- AGENTS: drag-over styles need a hitbox; debug_bounds never clear
This commit is contained in:
ZacharyZhang-NY committed 2026-09-26 06:59:37 -04:00
1 parent d362f08d41
commit eb4e9422c9
10 files changed
+347 -100

No files matched your search

+2 -2
View File
@@ -3,7 +3,7 @@ use std::rc::Rc;
use gpui::{App, ElementId, Entity, SharedString, Window};
use crate::forms::{
Choice, Pick, Suggestions, TextInput, active_trigger, emoji_found, handles_matching,
Choice, Pick, Suggestions, TextInput, active_trigger, emoji_found, handles_matching, one_word,
replace_trigger,
};
@@ -36,7 +36,7 @@ pub(crate) fn offers(
let (text, caret) = (input.text().to_string(), input.cursor());
let mut marks = vec!['@', ':'];
marks.extend(extra.as_ref().map(|(mark, _)| *mark));
let active = active_trigger(&text, caret, &marks);
let active = active_trigger(&text, caret, &marks, one_word);
let query = active.map_or("", |(at, mark)| &text[at + mark.len_utf8()..caret]);
let (rows, pick): (Vec<Choice>, Pick) = match active {
Some((at, '@')) => {