Skip to content

Commit 4faefe9

Browse files
committed
fix: don't use fallback in dotId context
1 parent c5aed08 commit 4faefe9

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/Lean/Server/Completion.lean

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -725,10 +725,17 @@ private def findCompletionInfoAt?
725725
| none
726726
let some stack := info.stx.findStack? (·.getRange?.any (·.contains hoverPos (includeStop := true)))
727727
| none
728-
let some (stx, id, danglingDot) := stack.findSome? fun (stx, _) =>
728+
let stack := stack.dropWhile fun (stx, _) => !(stx matches `($_:ident) || stx matches `($_:ident.))
729+
let some (stx, _) := stack.head?
730+
| none
731+
let isDotIdCompletion := stack.any fun (stx, _) => stx matches `(.$_:ident)
732+
if isDotIdCompletion then
733+
-- An identifier completion is never useful in a dotId completion context.
734+
none
735+
let some (id, danglingDot) :=
729736
match stx with
730-
| `($id:ident) => some (stx, id.getId, false)
731-
| `($id:ident.) => some (stx, id.getId, true)
737+
| `($id:ident) => some (id.getId, false)
738+
| `($id:ident.) => some (id.getId, true)
732739
| _ => none
733740
| none
734741
let tailPos := stx.getTailPos?.get!

0 commit comments

Comments
 (0)