Merge #4300
4300: Cleanup attribute completion r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
This commit is contained in:
commit
a559459fb0
@ -65,23 +65,20 @@ pub(crate) fn completions(
|
||||
let ctx = CompletionContext::new(db, position, config)?;
|
||||
|
||||
let mut acc = Completions::default();
|
||||
if ctx.attribute_under_caret.is_some() {
|
||||
complete_attribute::complete_attribute(&mut acc, &ctx);
|
||||
} else {
|
||||
complete_fn_param::complete_fn_param(&mut acc, &ctx);
|
||||
complete_keyword::complete_expr_keyword(&mut acc, &ctx);
|
||||
complete_keyword::complete_use_tree_keyword(&mut acc, &ctx);
|
||||
complete_snippet::complete_expr_snippet(&mut acc, &ctx);
|
||||
complete_snippet::complete_item_snippet(&mut acc, &ctx);
|
||||
complete_qualified_path::complete_qualified_path(&mut acc, &ctx);
|
||||
complete_unqualified_path::complete_unqualified_path(&mut acc, &ctx);
|
||||
complete_dot::complete_dot(&mut acc, &ctx);
|
||||
complete_record::complete_record(&mut acc, &ctx);
|
||||
complete_pattern::complete_pattern(&mut acc, &ctx);
|
||||
complete_postfix::complete_postfix(&mut acc, &ctx);
|
||||
complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx);
|
||||
complete_trait_impl::complete_trait_impl(&mut acc, &ctx);
|
||||
}
|
||||
complete_attribute::complete_attribute(&mut acc, &ctx);
|
||||
complete_fn_param::complete_fn_param(&mut acc, &ctx);
|
||||
complete_keyword::complete_expr_keyword(&mut acc, &ctx);
|
||||
complete_keyword::complete_use_tree_keyword(&mut acc, &ctx);
|
||||
complete_snippet::complete_expr_snippet(&mut acc, &ctx);
|
||||
complete_snippet::complete_item_snippet(&mut acc, &ctx);
|
||||
complete_qualified_path::complete_qualified_path(&mut acc, &ctx);
|
||||
complete_unqualified_path::complete_unqualified_path(&mut acc, &ctx);
|
||||
complete_dot::complete_dot(&mut acc, &ctx);
|
||||
complete_record::complete_record(&mut acc, &ctx);
|
||||
complete_pattern::complete_pattern(&mut acc, &ctx);
|
||||
complete_postfix::complete_postfix(&mut acc, &ctx);
|
||||
complete_macro_in_item_position::complete_macro_in_item_position(&mut acc, &ctx);
|
||||
complete_trait_impl::complete_trait_impl(&mut acc, &ctx);
|
||||
|
||||
Some(acc)
|
||||
}
|
||||
|
@ -3,20 +3,21 @@
|
||||
//! This module uses a bit of static metadata to provide completions
|
||||
//! for built-in attributes.
|
||||
|
||||
use super::completion_context::CompletionContext;
|
||||
use super::completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions};
|
||||
use ast::AttrInput;
|
||||
use ra_syntax::{
|
||||
ast::{self, AttrKind},
|
||||
AstNode, SyntaxKind,
|
||||
};
|
||||
use ra_syntax::{ast, AstNode, SyntaxKind};
|
||||
use rustc_hash::FxHashSet;
|
||||
|
||||
use crate::completion::{
|
||||
completion_context::CompletionContext,
|
||||
completion_item::{CompletionItem, CompletionItemKind, CompletionKind, Completions},
|
||||
};
|
||||
|
||||
pub(super) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext) -> Option<()> {
|
||||
let attribute = ctx.attribute_under_caret.as_ref()?;
|
||||
|
||||
match (attribute.path(), attribute.input()) {
|
||||
(Some(path), Some(AttrInput::TokenTree(token_tree))) if path.to_string() == "derive" => {
|
||||
(Some(path), Some(ast::AttrInput::TokenTree(token_tree)))
|
||||
if path.to_string() == "derive" =>
|
||||
{
|
||||
complete_derive(acc, ctx, token_tree)
|
||||
}
|
||||
_ => complete_attribute_start(acc, ctx, attribute),
|
||||
@ -40,7 +41,7 @@ fn complete_attribute_start(acc: &mut Completions, ctx: &CompletionContext, attr
|
||||
_ => {}
|
||||
}
|
||||
|
||||
if attribute.kind() == AttrKind::Inner || !attr_completion.should_be_inner {
|
||||
if attribute.kind() == ast::AttrKind::Inner || !attr_completion.should_be_inner {
|
||||
acc.add(item);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user