This commit is contained in:
2026-01-27 15:23:04 +01:00
parent 4dfb81af89
commit a9ce70d292
7 changed files with 378 additions and 110 deletions

View File

@@ -939,18 +939,45 @@ impl App {
// Help navigation
AppCommand::HelpNextTopic => {
self.ui.help_topic = (self.ui.help_topic + 1) % help_view::topic_count();
self.ui.help_scroll = 0;
}
AppCommand::HelpPrevTopic => {
let count = help_view::topic_count();
self.ui.help_topic = (self.ui.help_topic + count - 1) % count;
self.ui.help_scroll = 0;
}
AppCommand::HelpScrollDown(n) => {
self.ui.help_scroll = self.ui.help_scroll.saturating_add(n);
let s = self.ui.help_scroll_mut();
*s = s.saturating_add(n);
}
AppCommand::HelpScrollUp(n) => {
self.ui.help_scroll = self.ui.help_scroll.saturating_sub(n);
let s = self.ui.help_scroll_mut();
*s = s.saturating_sub(n);
}
AppCommand::HelpActivateSearch => {
self.ui.help_search_active = true;
}
AppCommand::HelpClearSearch => {
self.ui.help_search_query.clear();
self.ui.help_search_active = false;
}
AppCommand::HelpSearchInput(c) => {
self.ui.help_search_query.push(c);
if let Some((topic, line)) = help_view::find_match(&self.ui.help_search_query) {
self.ui.help_topic = topic;
self.ui.help_scrolls[topic] = line;
}
}
AppCommand::HelpSearchBackspace => {
self.ui.help_search_query.pop();
if self.ui.help_search_query.is_empty() {
return;
}
if let Some((topic, line)) = help_view::find_match(&self.ui.help_search_query) {
self.ui.help_topic = topic;
self.ui.help_scrolls[topic] = line;
}
}
AppCommand::HelpSearchConfirm => {
self.ui.help_search_active = false;
}
// Dictionary navigation