Skip to main content

marco_core/intelligence/editor/
completion.rs

1//! Markdown completion helpers.
2
3#[derive(Debug, Clone, PartialEq, Eq)]
4pub struct CompletionItem {
5    pub label: String,
6    pub insert_text: String,
7    pub detail: String,
8}
9
10/// Return markdown completions for the given query.
11///
12/// Current implementation provides emoji shortcode completion and is designed
13/// to be extended with markdown-structural completions.
14pub fn get_markdown_completions(query: &str) -> Vec<CompletionItem> {
15    crate::logic::text_completion::emoji_completion_items()
16        .iter()
17        .filter(|item| {
18            crate::logic::text_completion::emoji_shortcode_matches_query(&item.shortcode, query)
19        })
20        .map(|item| CompletionItem {
21            label: item.display.clone(),
22            insert_text: item.shortcode.clone(),
23            detail: "Emoji shortcode".to_string(),
24        })
25        .collect()
26}