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.
104 lines
2.8 KiB
Text
104 lines
2.8 KiB
Text
{"textDocument": {"uri": "file:///completionPrv.lean"},
|
|
"position": {"line": 2, "character": 33}}
|
|
{"items":
|
|
[{"label": "longAndHopefullyUniqueBlaBlaBoo",
|
|
"kind": 21,
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
2,
|
|
33,
|
|
0,
|
|
"c_private.«external:file:///completionPrv.lean».0.longAndHopefullyUniqueBlaBlaBoo"]}],
|
|
"isIncomplete": false}
|
|
Resolution of longAndHopefullyUniqueBlaBlaBoo:
|
|
{"label": "longAndHopefullyUniqueBlaBlaBoo",
|
|
"kind": 21,
|
|
"detail": "Nat",
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
2,
|
|
33,
|
|
0,
|
|
"c_private.«external:file:///completionPrv.lean».0.longAndHopefullyUniqueBlaBlaBoo"]}
|
|
{"textDocument": {"uri": "file:///completionPrv.lean"},
|
|
"position": {"line": 9, "character": 33}}
|
|
{"items":
|
|
[{"label": "longAndHopefullyUniqueBooBoo",
|
|
"kind": 21,
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
9,
|
|
33,
|
|
0,
|
|
"c_private.«external:file:///completionPrv.lean».0.Foo.longAndHopefullyUniqueBooBoo"]}],
|
|
"isIncomplete": false}
|
|
Resolution of longAndHopefullyUniqueBooBoo:
|
|
{"label": "longAndHopefullyUniqueBooBoo",
|
|
"kind": 21,
|
|
"detail": "Nat",
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
9,
|
|
33,
|
|
0,
|
|
"c_private.«external:file:///completionPrv.lean».0.Foo.longAndHopefullyUniqueBooBoo"]}
|
|
{"textDocument": {"uri": "file:///completionPrv.lean"},
|
|
"position": {"line": 21, "character": 5}}
|
|
{"items":
|
|
[{"label": "getInc",
|
|
"kind": 3,
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
21,
|
|
5,
|
|
1,
|
|
"c_private.«external:file:///completionPrv.lean».0.S.getInc"]},
|
|
{"label": "field1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completionPrv.lean»", 21, 5, 1, "cS.field1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of getInc:
|
|
{"label": "getInc",
|
|
"kind": 3,
|
|
"detail": "S → Nat",
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
21,
|
|
5,
|
|
1,
|
|
"c_private.«external:file:///completionPrv.lean».0.S.getInc"]}
|
|
Resolution of field1:
|
|
{"label": "field1",
|
|
"kind": 5,
|
|
"detail": "S → Nat",
|
|
"data": ["«external:file:///completionPrv.lean»", 21, 5, 1, "cS.field1"]}
|
|
{"textDocument": {"uri": "file:///completionPrv.lean"},
|
|
"position": {"line": 25, "character": 4}}
|
|
{"items":
|
|
[{"label": "getInc",
|
|
"kind": 3,
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
25,
|
|
4,
|
|
1,
|
|
"c_private.«external:file:///completionPrv.lean».0.S.getInc"]},
|
|
{"label": "field1",
|
|
"kind": 5,
|
|
"data": ["«external:file:///completionPrv.lean»", 25, 4, 1, "cS.field1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of getInc:
|
|
{"label": "getInc",
|
|
"kind": 3,
|
|
"detail": "S → Nat",
|
|
"data":
|
|
["«external:file:///completionPrv.lean»",
|
|
25,
|
|
4,
|
|
1,
|
|
"c_private.«external:file:///completionPrv.lean».0.S.getInc"]}
|
|
Resolution of field1:
|
|
{"label": "field1",
|
|
"kind": 5,
|
|
"detail": "S → Nat",
|
|
"data": ["«external:file:///completionPrv.lean»", 25, 4, 1, "cS.field1"]}
|