ide_completion/completions/
macro_def.rs

1//! Completion for macro meta-variable segments
2
3use ide_db::SymbolKind;
4
5use crate::{CompletionItem, Completions, context::CompletionContext};
6
7pub(crate) fn complete_macro_segment(acc: &mut Completions, ctx: &CompletionContext<'_>) {
8    for &label in MACRO_SEGMENTS {
9        let item =
10            CompletionItem::new(SymbolKind::BuiltinAttr, ctx.source_range(), label, ctx.edition);
11        item.add_to(acc, ctx.db);
12    }
13}
14
15const MACRO_SEGMENTS: &[&str] = &[
16    "ident",
17    "block",
18    "stmt",
19    "expr",
20    "pat",
21    "ty",
22    "lifetime",
23    "literal",
24    "path",
25    "meta",
26    "tt",
27    "item",
28    "vis",
29    "expr_2021",
30    "pat_param",
31];