From 0729913525a55cad3ffe9876c1eb05f7b880d22d Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Mon, 21 Jun 2021 15:14:28 +0200 Subject: Various keyword completion fixes --- crates/ide_completion/src/patterns.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'crates/ide_completion/src/patterns.rs') diff --git a/crates/ide_completion/src/patterns.rs b/crates/ide_completion/src/patterns.rs index 271409c38..757c9a3da 100644 --- a/crates/ide_completion/src/patterns.rs +++ b/crates/ide_completion/src/patterns.rs @@ -31,6 +31,7 @@ pub(crate) enum ImmediateLocation { Impl, Trait, RecordField, + TupleField, RefExpr, IdentPat, BlockExpr, @@ -187,7 +188,13 @@ pub(crate) fn determine_location( ast::SourceFile(_it) => ImmediateLocation::ItemList, ast::ItemList(_it) => ImmediateLocation::ItemList, ast::RefExpr(_it) => ImmediateLocation::RefExpr, - ast::RecordField(_it) => ImmediateLocation::RecordField, + ast::RecordField(it) => if it.ty().map_or(false, |it| it.syntax().text_range().contains(offset)) { + return None; + } else { + ImmediateLocation::RecordField + }, + ast::TupleField(_it) => ImmediateLocation::TupleField, + ast::TupleFieldList(_it) => ImmediateLocation::TupleField, ast::AssocItemList(it) => match it.syntax().parent().map(|it| it.kind()) { Some(IMPL) => ImmediateLocation::Impl, Some(TRAIT) => ImmediateLocation::Trait, -- cgit v1.2.3