mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-15 09:27:27 +00:00
simplify
This commit is contained in:
parent
e5e6c363dc
commit
5b247780d4
1 changed files with 10 additions and 12 deletions
|
@ -9,22 +9,21 @@ use crate::{CompletionContext, CompletionItem, CompletionItemKind, CompletionKin
|
|||
pub(crate) fn complete_use_tree_keyword(acc: &mut Completions, ctx: &CompletionContext) {
|
||||
// complete keyword "crate" in use stmt
|
||||
let source_range = ctx.source_range();
|
||||
let kw_completion = move |text: &str| {
|
||||
let mut item = CompletionItem::new(CompletionKind::Keyword, source_range, text);
|
||||
item.kind(CompletionItemKind::Keyword).insert_text(text);
|
||||
item
|
||||
};
|
||||
|
||||
if ctx.use_item_syntax.is_some() {
|
||||
if ctx.path_qual.is_none() {
|
||||
let mut item = CompletionItem::new(CompletionKind::Keyword, source_range, "crate::");
|
||||
item.kind(CompletionItemKind::Keyword).insert_text("crate::");
|
||||
item.add_to(acc);
|
||||
kw_completion("crate::").add_to(acc);
|
||||
}
|
||||
let mut item = CompletionItem::new(CompletionKind::Keyword, source_range, "self");
|
||||
item.kind(CompletionItemKind::Keyword);
|
||||
item.add_to(acc);
|
||||
kw_completion("self").add_to(acc);
|
||||
if iter::successors(ctx.path_qual.clone(), |p| p.qualifier())
|
||||
.all(|p| p.segment().and_then(|s| s.super_token()).is_some())
|
||||
{
|
||||
let mut item = CompletionItem::new(CompletionKind::Keyword, source_range, "super::");
|
||||
item.kind(CompletionItemKind::Keyword).insert_text("super::");
|
||||
item.add_to(acc);
|
||||
kw_completion("super::").add_to(acc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,9 +31,8 @@ pub(crate) fn complete_use_tree_keyword(acc: &mut Completions, ctx: &CompletionC
|
|||
if let Some(receiver) = &ctx.dot_receiver {
|
||||
if let Some(ty) = ctx.sema.type_of_expr(receiver) {
|
||||
if ty.impls_future(ctx.db) {
|
||||
let mut item =
|
||||
CompletionItem::new(CompletionKind::Keyword, ctx.source_range(), "await");
|
||||
item.kind(CompletionItemKind::Keyword).detail("expr.await").insert_text("await");
|
||||
let mut item = kw_completion("await");
|
||||
item.detail("expr.await");
|
||||
item.add_to(acc);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue