Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/macro_def.rs')
| -rw-r--r-- | crates/ide-completion/src/completions/macro_def.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/ide-completion/src/completions/macro_def.rs b/crates/ide-completion/src/completions/macro_def.rs new file mode 100644 index 0000000000..2c8e7a2e62 --- /dev/null +++ b/crates/ide-completion/src/completions/macro_def.rs @@ -0,0 +1,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", +]; |