Introduce hierarchical documentSymbol support #537
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
c.f. #407
This PR should make
textDocument/documentSymbolreponse use the newDocumentSymbolcontract. This means you can have a list ofchildrenfor each parent symbols. Now thedocumentSymbolis something like this{ "jsonrpc": "2.0", "id": "2", "result": [ { "name": "ReadFields", "detail": "ReadFields", "range": { "start": { "line": 3, "character": 0 }, "end": { "line": 19, "character": 0 } }, "selectionRange": { "start": { "line": 3, "character": 4 }, "end": { "line": 3, "character": 14 } }, "kind": 12, "children": [ { "name": "closeFile", "detail": "ReadFields.closeFile", "range": { "start": { "line": 7, "character": 4 }, "end": { "line": 7, "character": 21 } }, "selectionRange": { "start": { "line": 7, "character": 4 }, "end": { "line": 7, "character": 13 } }, "kind": 13, "children": null }, { "name": "f", "detail": "ReadFields.f", "range": { "start": { "line": 9, "character": 8 }, "end": { "line": 9, "character": 22 } }, "selectionRange": { "start": { "line": 9, "character": 8 }, "end": { "line": 9, "character": 9 } }, "kind": 13, "children": null }, { "name": "closeFile", "detail": "ReadFields.closeFile", "range": { "start": { "line": 10, "character": 8 }, "end": { "line": 10, "character": 24 } }, "selectionRange": { "start": { "line": 10, "character": 8 }, "end": { "line": 10, "character": 17 } }, "kind": 13, "children": null }, { "name": "l", "detail": "ReadFields.l", "range": { "start": { "line": 14, "character": 8 }, "end": { "line": 17, "character": 0 } }, "selectionRange": { "start": { "line": 14, "character": 12 }, "end": { "line": 14, "character": 13 } }, "kind": 13, "children": null }, ...Python source code for reference
Unfortunately, I haven't tested it thoroughly in VSCode because I simply couldn't start Extension Development Host with
yarn run vscode.