diff options
Diffstat (limited to 'crates/atuin-ai/src/tui/slash.rs')
| -rw-r--r-- | crates/atuin-ai/src/tui/slash.rs | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/crates/atuin-ai/src/tui/slash.rs b/crates/atuin-ai/src/tui/slash.rs deleted file mode 100644 index 7d5e6fa8..00000000 --- a/crates/atuin-ai/src/tui/slash.rs +++ /dev/null @@ -1,79 +0,0 @@ -#[derive(Debug, Clone)] -pub(crate) struct SlashCommand { - pub name: String, - pub description: String, -} - -impl SlashCommand { - pub fn new(name: &str, description: &str) -> Self { - Self { - name: name.to_string(), - description: description.to_string(), - } - } -} - -#[derive(Debug)] -pub(crate) struct SlashCommandRegistry { - commands: Vec<SlashCommand>, -} - -#[derive(Debug, Clone)] -pub(crate) struct SlashCommandSearchResult { - pub command: SlashCommand, - pub relevance: f32, - pub span: (usize, usize), -} - -impl SlashCommandRegistry { - pub fn new() -> Self { - Self { - commands: Vec::new(), - } - } - - pub fn register(&mut self, command: SlashCommand) { - self.commands.push(command); - } - - pub fn get_commands(&self) -> &[SlashCommand] { - &self.commands - } - - pub fn search_fuzzy(&self, query: &str) -> Vec<SlashCommandSearchResult> { - let query_lower = query.to_lowercase(); - - self.commands - .iter() - .filter_map(|command| { - let name_lower = command.name.to_lowercase(); - if let Some(start) = name_lower.find(&query_lower as &str) { - let end = start + query_lower.len(); - Some((command, start, end)) - } else { - None - } - }) - .map(|(command, start, end)| { - SlashCommandSearchResult { - command: command.clone(), - relevance: 1.0, // Simple relevance score for now - span: (start, end), - } - }) - .collect() - } -} - -impl Default for SlashCommandRegistry { - fn default() -> Self { - let mut registry = Self::new(); - registry.register(SlashCommand::new("help", "Show help information")); - registry.register(SlashCommand::new( - "new", - "Start a new conversation, archiving the current one", - )); - - registry - } -} |
