aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/complete_attribute.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-05-04 14:38:55 +0100
committerGitHub <[email protected]>2020-05-04 14:38:55 +0100
commita559459fb0c86ef1eb66dabe6e0c6208ff4a6e42 (patch)
treed064e7f9d185257fffcb769db2ffc8a28c2db2b5 /crates/ra_ide/src/completion/complete_attribute.rs
parentea098fdbd2ac9f93e5501235fa4fa8e0f68b3cc4 (diff)
parent8f4478390e29f34c5530a25bd0338b689218677f (diff)
Merge #4300
4300: Cleanup attribute completion r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_ide/src/completion/complete_attribute.rs')
-rw-r--r--crates/ra_ide/src/completion/complete_attribute.rs19
1 files changed, 10 insertions, 9 deletions
diff --git a/crates/ra_ide/src/completion/complete_attribute.rs b/crates/ra_ide/src/completion/complete_attribute.rs
index 20e6edc17..f17266221 100644
--- a/crates/ra_ide/src/completion/complete_attribute.rs
+++ b/crates/ra_ide/src/completion/complete_attribute.rs
@@ -3,20 +3,21 @@
3//! This module uses a bit of static metadata to provide completions 3//! This module uses a bit of static metadata to provide completions
4//! for built-in attributes. 4//! for built-in attributes.
5 5
6use super::completion_context::CompletionContext; 6use ra_syntax::{ast, AstNode, SyntaxKind};
7use super::completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions};
8use ast::AttrInput;
9use ra_syntax::{
10 ast::{self, AttrKind},
11 AstNode, SyntaxKind,
12};
13use rustc_hash::FxHashSet; 7use rustc_hash::FxHashSet;
14 8
9use crate::completion::{
10 completion_context::CompletionContext,
11 completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions},
12};
13
15pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) -> Option<()> { 14pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) -> Option<()> {
16 let attribute = ctx.attribute_under_caret.as_ref()?; 15 let attribute = ctx.attribute_under_caret.as_ref()?;
17 16
18 match (attribute.path(), attribute.input()) { 17 match (attribute.path(), attribute.input()) {
19 (Some(path), Some(AttrInput::TokenTree(token_tree))) if path.to_string() == "derive" => { 18 (Some(path), Some(ast::AttrInput::TokenTree(token_tree)))
19 if path.to_string() == "derive" =>
20 {
20 complete_derive(acc, ctx, token_tree) 21 complete_derive(acc, ctx, token_tree)
21 } 22 }
22 _ => complete_attribute_start(acc, ctx, attribute), 23 _ => complete_attribute_start(acc, ctx, attribute),
@@ -40,7 +41,7 @@ fn complete_attribute_start(acc: &mut Completions, ctx: &CompletionContext, attr
40 _ => {} 41 _ => {}
41 } 42 }
42 43
43 if attribute.kind() == AttrKind::Inner || !attr_completion.should_be_inner { 44 if attribute.kind() == ast::AttrKind::Inner || !attr_completion.should_be_inner {
44 acc.add(item); 45 acc.add(item);
45 } 46 }
46 } 47 }