diff --git a/codex-rs/tui/src/bottom_pane/skills_toggle_view.rs b/codex-rs/tui/src/bottom_pane/skills_toggle_view.rs index c63a75b5d5..dbffb7592c 100644 --- a/codex-rs/tui/src/bottom_pane/skills_toggle_view.rs +++ b/codex-rs/tui/src/bottom_pane/skills_toggle_view.rs @@ -14,6 +14,7 @@ use ratatui::widgets::Wrap; use crate::app_event::AppEvent; use crate::app_event_sender::AppEventSender; +use crate::clipboard_paste::normalize_pasted_search_query; use crate::key_hint; use crate::key_hint::KeyBindingListExt; use crate::key_hint::ShortcutHint; @@ -243,6 +244,15 @@ impl BottomPaneView for SkillsToggleView { } } + fn handle_paste(&mut self, pasted: String) -> bool { + let Some(pasted) = normalize_pasted_search_query(&pasted) else { + return false; + }; + self.search_query.push_str(&pasted); + self.apply_filter(); + true + } + fn is_complete(&self) -> bool { self.complete } @@ -468,8 +478,14 @@ mod tests { tx, crate::keymap::RuntimeKeymap::defaults().list, ); - view.search_query = "completion".to_string(); - view.apply_filter(); + view.handle_key_event(KeyEvent::new(KeyCode::Char('c'), KeyModifiers::NONE)); + assert!(view.handle_paste(" ompletion\r\n\t ".to_string())); + assert_eq!(view.search_query, "completion"); + + let rendered = render_lines(&view, /*width*/ 96); + assert_snapshot!("skills_toggle_pasted_search", rendered); + assert!(!view.handle_paste(" \r\n\t ".to_string())); + assert_eq!(render_lines(&view, /*width*/ 96), rendered); let row_names = view .build_rows() diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__skills_toggle_view__tests__skills_toggle_pasted_search.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__skills_toggle_view__tests__skills_toggle_pasted_search.snap new file mode 100644 index 0000000000..b9db915f29 --- /dev/null +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__skills_toggle_view__tests__skills_toggle_pasted_search.snap @@ -0,0 +1,15 @@ +--- +source: tui/src/bottom_pane/skills_toggle_view.rs +expression: "render_lines(&view, 96)" +--- + + Enable/Disable Skills + Turn skills on or off. Your changes are saved automatically. + + completion + +› [ ] superpowers-verification-before-completion (polish) Verify completion before claiming su… + + + + space/enter toggle · esc close