lean4-htt/tests/lean/interactive/unknownIdentifierCodeActions.lean.expected.out
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

313 lines
12 KiB
Text

{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 1, "character": 34}, "end": {"line": 1, "character": 34}},
"context": {"diagnostics": []}}
[{"title": "Import Lean.Server.Test.Refs.Test1 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 1, "character": 7},
"end": {"line": 1, "character": 34}},
"newText": "Lean.Server.Test.Refs.Test1"}]}]}},
{"title": "Import Lean.Server.Test.Refs.test10 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 1, "character": 7},
"end": {"line": 1, "character": 34}},
"newText": "Lean.Server.Test.Refs.test10"}]}]}}]
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 4, "character": 33}, "end": {"line": 4, "character": 33}},
"context": {"diagnostics": []}}
[{"title": "Import LeanServerTestRefsTest0 from Lean.Server.Test.Refs",
"kind": "refactor",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 4, "character": 10},
"end": {"line": 4, "character": 33}},
"newText": "LeanServerTestRefsTest0"}]}]}},
{"title": "Import Lean.Server.Test.Refs.test10 from Lean.Server.Test.Refs",
"kind": "refactor",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 4, "character": 10},
"end": {"line": 4, "character": 33}},
"newText": "Lean.Server.Test.Refs.test10"}]}]}},
{"title": "Import all unambiguous unknown identifiers",
"kind": "quickfix",
"data":
{"providerResultIndex": 0,
"providerName": "unknownIdentifiers",
"params":
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 4, "character": 33},
"end": {"line": 4, "character": 33}},
"context": {"diagnostics": []}}}}]
Resolution of Import all unambiguous unknown identifiers:
{"title": "Import all unambiguous unknown identifiers",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 4, "character": 10},
"end": {"line": 4, "character": 33}},
"newText": "LeanServerTestRefsTest0"}]}]},
"data":
{"providerResultIndex": 0,
"providerName": "unknownIdentifiers",
"params":
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 4, "character": 33}, "end": {"line": 4, "character": 33}},
"context": {"diagnostics": []}}}}
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 7, "character": 33}, "end": {"line": 7, "character": 33}},
"context": {"diagnostics": []}}
[{"title": "Import Lean.Server.Test.Refs.test9 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.test9"}]}]}},
{"title": "Import Lean.Server.Test.Refs.test8 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.test8"}]}]}},
{"title": "Import Lean.Server.Test.Refs.test7 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.test7"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test6 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test6"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test5 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test5"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test4 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test4"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test3 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test3"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test2 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test2"}]}]}},
{"title": "Import Lean.Server.Test.Refs.Test1 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.Test1"}]}]}},
{"title": "Import Lean.Server.Test.Refs.test10 from Lean.Server.Test.Refs",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 0, "character": 0},
"end": {"line": 0, "character": 0}},
"newText": "import Lean.Server.Test.Refs\n"},
{"range":
{"start": {"line": 7, "character": 7},
"end": {"line": 7, "character": 33}},
"newText": "Lean.Server.Test.Refs.test10"}]}]}}]
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 23, "character": 40}, "end": {"line": 23, "character": 40}},
"context": {"diagnostics": []}}
[{"title": "Change to veryLongAndHopefullyVeryUniqueFoo0",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 23, "character": 7},
"end": {"line": 23, "character": 40}},
"newText": "veryLongAndHopefullyVeryUniqueFoo0"}]}]}},
{"title": "Change to veryLongAndHopefullyVeryUniqueFoobar0",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 23, "character": 7},
"end": {"line": 23, "character": 40}},
"newText": "veryLongAndHopefullyVeryUniqueFoobar0"}]}]}}]
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 26, "character": 65}, "end": {"line": 26, "character": 65}},
"context": {"diagnostics": []}}
[{"title": "Change to Foobar.veryLongAndHopefullyVeryUniqueBar0",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 26, "character": 32},
"end": {"line": 26, "character": 65}},
"newText": "veryLongAndHopefullyVeryUniqueBar0"}]}]}}]
{"textDocument": {"uri": "file:///unknownIdentifierCodeActions.lean"},
"range":
{"start": {"line": 29, "character": 57}, "end": {"line": 29, "character": 57}},
"context": {"diagnostics": []}}
[{"title": "Change to Foobar.veryLongAndHopefullyVeryUniqueFoobar0",
"kind": "quickfix",
"edit":
{"documentChanges":
[{"textDocument":
{"version": 1, "uri": "file:///unknownIdentifierCodeActions.lean"},
"edits":
[{"range":
{"start": {"line": 29, "character": 21},
"end": {"line": 29, "character": 57}},
"newText": "veryLongAndHopefullyVeryUniqueFoobar0"}]}]}}]