lean4-htt/tests/lean/interactive/codeaction.lean
Marc Huisinga dfd3d18530
test: improve language server test coverage (#10574)
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.
2025-09-30 11:15:03 +00:00

31 lines
815 B
Text

import Lean
open Lean Server Lsp RequestM
@[code_action_provider]
def helloProvider : CodeActionProvider := fun params _snap => do
let doc ← readDoc
let vi := doc.versionedIdentifier
let edit : TextEdit := {
range := params.range,
newText := "hello!!!"
}
let ca : CodeAction := {
title := "hello world",
kind? := "quickfix",
edit? := WorkspaceEdit.ofTextEdit vi edit
}
let longRunner : CodeAction := {
title := "a long-running action",
kind? := "refactor",
}
let lazyResult : IO CodeAction := do
return { longRunner with
edit? := WorkspaceEdit.ofTextEdit vi { range := params.range, newText := "lazy result"}
}
return #[ca, {eager := longRunner, lazy? := lazyResult}]
theorem asdf : (x : Nat) → x = x := by
intro x
--^ codeAction
rfl