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.
112 lines
3.6 KiB
Text
112 lines
3.6 KiB
Text
{"textDocument": {"uri": "file:///completion4.lean"},
|
|
"position": {"line": 7, "character": 4}}
|
|
{"items":
|
|
[{"label": "fn2",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.fn2"]},
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.fn1"]},
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.pred"]}],
|
|
"isIncomplete": false}
|
|
Resolution of fn2:
|
|
{"label": "fn2",
|
|
"kind": 5,
|
|
"detail": "S → Bool → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.fn2"]}
|
|
Resolution of fn1:
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"detail": "S → Nat → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.fn1"]}
|
|
Resolution of pred:
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"detail": "S → String → Bool",
|
|
"data": ["«external:file:///completion4.lean»", 7, 4, 1, "cS.pred"]}
|
|
{"textDocument": {"uri": "file:///completion4.lean"},
|
|
"position": {"line": 11, "character": 10}}
|
|
{"items":
|
|
[{"label": "fn2",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.fn2"]},
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.fn1"]},
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.pred"]}],
|
|
"isIncomplete": false}
|
|
Resolution of fn2:
|
|
{"label": "fn2",
|
|
"kind": 5,
|
|
"detail": "S → Bool → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.fn2"]}
|
|
Resolution of fn1:
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"detail": "S → Nat → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.fn1"]}
|
|
Resolution of pred:
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"detail": "S → String → Bool",
|
|
"data": ["«external:file:///completion4.lean»", 11, 10, 1, "cS.pred"]}
|
|
{"textDocument": {"uri": "file:///completion4.lean"},
|
|
"position": {"line": 16, "character": 11}}
|
|
{"items":
|
|
[{"label": "fn2",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.fn2"]},
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.fn1"]},
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.pred"]}],
|
|
"isIncomplete": false}
|
|
Resolution of fn2:
|
|
{"label": "fn2",
|
|
"kind": 5,
|
|
"detail": "S → Bool → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.fn2"]}
|
|
Resolution of fn1:
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"detail": "S → Nat → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.fn1"]}
|
|
Resolution of pred:
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"detail": "S → String → Bool",
|
|
"data": ["«external:file:///completion4.lean»", 16, 11, 1, "cS.pred"]}
|
|
{"textDocument": {"uri": "file:///completion4.lean"},
|
|
"position": {"line": 20, "character": 21}}
|
|
{"items":
|
|
[{"label": "fn2",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.fn2"]},
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.fn1"]},
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.pred"]}],
|
|
"isIncomplete": false}
|
|
Resolution of fn2:
|
|
{"label": "fn2",
|
|
"kind": 5,
|
|
"detail": "S → Bool → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.fn2"]}
|
|
Resolution of fn1:
|
|
{"label": "fn1",
|
|
"kind": 5,
|
|
"detail": "S → Nat → IO Unit",
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.fn1"]}
|
|
Resolution of pred:
|
|
{"label": "pred",
|
|
"kind": 5,
|
|
"detail": "S → String → Bool",
|
|
"data": ["«external:file:///completion4.lean»", 20, 21, 1, "cS.pred"]}
|