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.
31 lines
885 B
Text
31 lines
885 B
Text
--^ waitForILeans
|
|
#check Lean.Server.Test.Refs.test1
|
|
--^ codeAction
|
|
|
|
example : LeanServerTestRefsTest0
|
|
--^ codeAction
|
|
|
|
#check Lean.Server.Test.Refs.test
|
|
--^ codeAction
|
|
|
|
structure Foobar where
|
|
veryLongAndHopefullyVeryUniqueBar0 : Nat
|
|
|
|
namespace Foobar
|
|
|
|
def veryLongAndHopefullyVeryUniqueFoo0 := 0
|
|
|
|
def veryLongAndHopefullyVeryUniqueFoobar0 : Foobar := { veryLongAndHopefullyVeryUniqueBar0 := 0 }
|
|
|
|
end Foobar
|
|
|
|
open Foobar
|
|
|
|
#check veryLongAndHopefullyVeryUniqueFoo
|
|
--^ codeAction
|
|
|
|
example (f : Foobar) : Nat := f.veryLongAndHopefullyVeryUniqueBar
|
|
--^ codeAction
|
|
|
|
example : Foobar := .veryLongAndHopefullyVeryUniqueFoobar
|
|
--^ codeAction
|