Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/keyword.rs')
-rw-r--r--crates/ide-completion/src/completions/keyword.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/crates/ide-completion/src/completions/keyword.rs b/crates/ide-completion/src/completions/keyword.rs
index 2e266b7714..57d545ab8f 100644
--- a/crates/ide-completion/src/completions/keyword.rs
+++ b/crates/ide-completion/src/completions/keyword.rs
@@ -1,23 +1,17 @@
-//! Completes keywords, except:
-//! - `self`, `super` and `crate`, as these are considered part of path completions.
-//! - `await`, as this is a postfix completion we handle this in the postfix completions.
+//! Completes `where` and `for` keywords.
-use syntax::ast::Item;
+use syntax::ast::{self, Item};
-use crate::{
- context::{NameRefContext, NameRefKind},
- CompletionContext, Completions,
-};
-
-pub(crate) fn complete_expr_keyword(acc: &mut Completions, ctx: &CompletionContext) {
- let item = match ctx.nameref_ctx() {
- Some(NameRefContext { kind: Some(NameRefKind::Keyword(item)), .. }) => item,
- _ => return,
- };
+use crate::{CompletionContext, Completions};
+pub(crate) fn complete_special_keywords(
+ acc: &mut Completions,
+ ctx: &CompletionContext,
+ keyword_item: &ast::Item,
+) {
let mut add_keyword = |kw, snippet| acc.add_keyword_snippet(ctx, kw, snippet);
- match item {
+ match keyword_item {
Item::Impl(it) => {
if it.for_token().is_none() && it.trait_().is_none() && it.self_ty().is_some() {
add_keyword("for", "for");