This PR significantly improves the test coverage of the language server, providing at least a single basic test for every request that is used by the client. It also implements infrastructure for testing all of these requests, e.g. the ability to run interactive tests in a project context and refactors the interactive test runner to be more maintainable. Finally, it also fixes a small bug with the recently implemented unknown identifier code actions for auto-implicits (#10442) that was discovered in testing, where the "import all unambiguous unknown identifiers" code action didn't work correctly on auto-implicit identifiers.
12 lines
344 B
Text
12 lines
344 B
Text
import Lean.Data.Lsp
|
|
open IO Lean Lsp
|
|
|
|
def main : IO Unit := do
|
|
Ipc.runWith "lean" #["--server"] do
|
|
let hIn ← Ipc.stdin
|
|
hIn.write (←FS.readBinFile "server_startup.log")
|
|
hIn.flush
|
|
let initResp ← Ipc.readResponseAs 0 InitializeResult
|
|
Ipc.writeNotification ⟨"initialized", InitializedParams.mk⟩
|
|
|
|
Ipc.shutdown 1
|