1 //! Completes macro invocations used in item position.
3 use crate::{CompletionContext, Completions};
5 pub(crate) fn complete_macro_in_item_position(acc: &mut Completions, ctx: &CompletionContext) {
6 // Show only macros in top level.
11 ctx.scope.process_all_names(&mut |name, res| {
12 if let hir::ScopeDef::MacroDef(mac) = res {
13 acc.add_macro(ctx, Some(name.to_string()), mac);
20 use expect_test::{expect, Expect};
22 use crate::{test_utils::completion_list, CompletionKind};
24 fn check(ra_fixture: &str, expect: Expect) {
25 let actual = completion_list(ra_fixture, CompletionKind::Reference);
26 expect.assert_eq(&actual)
30 fn completes_macros_as_item() {
33 macro_rules! foo { () => {} }
39 ma foo!(…) macro_rules! foo