Unnamed repository; edit this file 'description' to name the repository.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//! Completion for macro meta-variable segments

use ide_db::SymbolKind;

use crate::{CompletionItem, Completions, context::CompletionContext};

pub(crate) fn complete_macro_segment(acc: &mut Completions, ctx: &CompletionContext<'_>) {
    for &label in MACRO_SEGMENTS {
        let item =
            CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), label, ctx.edition);
        item.add_to(acc, ctx.db);
    }
}

const MACRO_SEGMENTS: &[&str] = &[
    "ident",
    "block",
    "stmt",
    "expr",
    "pat",
    "ty",
    "lifetime",
    "literal",
    "path",
    "meta",
    "tt",
    "item",
    "vis",
    "expr_2021",
    "pat_param",
];