ide_completion/completions/
macro_def.rs1use 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];