//! 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",
];