File tree Expand file tree Collapse file tree 1 file changed +9
-6
lines changed
src/Lean/Server/Completion Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -24,15 +24,18 @@ def AvailableImports.toImportTrie (imports : AvailableImports) : ImportTrie := I
2424 importTrie := importTrie.insert i i
2525 return importTrie
2626
27- /-- Checks whether `completionPos` points at the position after an incomplete `import` statement. -/
2827def isImportNameCompletionRequest (headerStx : TSyntax ``Parser.Module.header) (completionPos : String.Pos) : Bool := Id.run do
2928 let `(Parser.Module.header| $[module]? $[prelude ]? $importsStx*) := headerStx
3029 | return false
31- importsStx.anyM fun
32- | `(Parser.Module.import| $[private ]? $[meta]? import %$importCmd $[all%$allTk?]? $importId) =>
33- let keywordsTailPos := allTk?.bind (·.getTailPos?) <|> importCmd.getTailPos?
34- return importId.raw.isMissing && keywordsTailPos.isSome && completionPos == keywordsTailPos.get! + ' '
35- | _ => unreachable!
30+ return importsStx.any fun importStx => Id.run do
31+ let importStx := importStx.raw
32+ -- `importStx[0] == "private"?`
33+ -- `importStx[1] == "meta"?`
34+ let importCmd := importStx[2 ]
35+ let allTk? := importStx[3 ].getOptional?
36+ let importId := importStx[4 ]
37+ let keywordsTailPos := allTk?.bind (·.getTailPos?) <|> importCmd.getTailPos?
38+ return importId.isMissing && keywordsTailPos.isSome && completionPos == keywordsTailPos.get! + ' '
3639
3740/-- Checks whether `completionPos` points at a free space in the header. -/
3841def isImportCmdCompletionRequest (headerStx : TSyntax ``Parser.Module.header) (completionPos : String.Pos) : Bool := Id.run do
You can’t perform that action at this time.
0 commit comments