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.
136 lines
4.7 KiB
Text
136 lines
4.7 KiB
Text
{"textDocument": {"uri": "file:///completion2.lean"},
|
|
"position": {"line": 19, "character": 10}}
|
|
{"items":
|
|
[{"label": "ex2",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex2"]},
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex3"]},
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex1"]},
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ax1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of ex2:
|
|
{"label": "ex2",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + 2 ≤ b + 2",
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex2"]}
|
|
Resolution of ex3:
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → c ≤ d → a + c ≤ b + d",
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex3"]}
|
|
Resolution of ex1:
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + a ≤ b + b",
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ex1"]}
|
|
Resolution of ax1:
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a - a ≤ b - b",
|
|
"data": ["«external:file:///completion2.lean»", 19, 10, 0, "cFoo.Bla.ax1"]}
|
|
{"textDocument": {"uri": "file:///completion2.lean"},
|
|
"position": {"line": 25, "character": 6}}
|
|
{"items":
|
|
[{"label": "ex2",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex2"]},
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex3"]},
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex1"]},
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ax1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of ex2:
|
|
{"label": "ex2",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + 2 ≤ b + 2",
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex2"]}
|
|
Resolution of ex3:
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → c ≤ d → a + c ≤ b + d",
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex3"]}
|
|
Resolution of ex1:
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + a ≤ b + b",
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ex1"]}
|
|
Resolution of ax1:
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a - a ≤ b - b",
|
|
"data": ["«external:file:///completion2.lean»", 25, 6, 0, "cFoo.Bla.ax1"]}
|
|
{"textDocument": {"uri": "file:///completion2.lean"},
|
|
"position": {"line": 30, "character": 21}}
|
|
{"items":
|
|
[{"label": "ex2",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex2"]},
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex3"]},
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex1"]},
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ax1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of ex2:
|
|
{"label": "ex2",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + 2 ≤ b + 2",
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex2"]}
|
|
Resolution of ex3:
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → c ≤ d → a + c ≤ b + d",
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex3"]}
|
|
Resolution of ex1:
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + a ≤ b + b",
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ex1"]}
|
|
Resolution of ax1:
|
|
{"label": "ax1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a - a ≤ b - b",
|
|
"data": ["«external:file:///completion2.lean»", 30, 21, 0, "cFoo.Bla.ax1"]}
|
|
{"textDocument": {"uri": "file:///completion2.lean"},
|
|
"position": {"line": 37, "character": 22}}
|
|
{"items":
|
|
[{"label": "ex2",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex2"]},
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex3"]},
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex1"]}],
|
|
"isIncomplete": false}
|
|
Resolution of ex2:
|
|
{"label": "ex2",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + 2 ≤ b + 2",
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex2"]}
|
|
Resolution of ex3:
|
|
{"label": "ex3",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → c ≤ d → a + c ≤ b + d",
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex3"]}
|
|
Resolution of ex1:
|
|
{"label": "ex1",
|
|
"kind": 23,
|
|
"detail": "a ≤ b → a + a ≤ b + b",
|
|
"data": ["«external:file:///completion2.lean»", 37, 22, 0, "cFoo.Bla.ex1"]}
|