diff options
| author | Yong He <yonghe@outlook.com> | 2022-06-16 01:50:43 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-16 01:50:43 -0700 |
| commit | 241def9c7619c437aad1bb620be8891e61707d8d (patch) | |
| tree | d412a108bcd4bc9e52e0d6bf230b16d90df632d2 /source/compiler-core/slang-language-server-protocol.cpp | |
| parent | 23f567323e36a14e0649899b5b8811312d7ea9fd (diff) | |
Language server: document symbols (#2287)
* Language Server: Document Symbol outline.
* Fix highlighting of extension decls.
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/compiler-core/slang-language-server-protocol.cpp')
| -rw-r--r-- | source/compiler-core/slang-language-server-protocol.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/source/compiler-core/slang-language-server-protocol.cpp b/source/compiler-core/slang-language-server-protocol.cpp index 713d209dd..51799f05e 100644 --- a/source/compiler-core/slang-language-server-protocol.cpp +++ b/source/compiler-core/slang-language-server-protocol.cpp @@ -215,6 +215,7 @@ static const StructRttiInfo _makeServerCapabilitiesRtti() builder.addField("completionProvider", &obj.completionProvider); builder.addField("semanticTokensProvider", &obj.semanticTokensProvider); builder.addField("signatureHelpProvider", &obj.signatureHelpProvider); + builder.addField("documentSymbolProvider", &obj.documentSymbolProvider); builder.ignoreUnknownFields(); return builder.make(); } @@ -574,6 +575,35 @@ const StructRttiInfo LogMessageParams::g_rttiInfo = _makeLogMessageParamsRtti(); const UnownedStringSlice LogMessageParams::methodName = UnownedStringSlice::fromLiteral("window/logMessage"); +static const StructRttiInfo _makeDocumentSymbolParamsRtti() +{ + DocumentSymbolParams obj; + StructRttiBuilder builder( + &obj, "LanguageServerProtocol::DocumentSymbolParams", &WorkDoneProgressParams::g_rttiInfo); + builder.addField("textDocument", &obj.textDocument); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo DocumentSymbolParams::g_rttiInfo = _makeDocumentSymbolParamsRtti(); +const UnownedStringSlice DocumentSymbolParams::methodName = + UnownedStringSlice::fromLiteral("textDocument/documentSymbol"); + +static const StructRttiInfo _makeDocumentSymbolRtti() +{ + DocumentSymbol obj; + StructRttiBuilder builder( + &obj, "LanguageServerProtocol::DocumentSymbol", nullptr); + builder.addField("name", &obj.name); + builder.addField("detail", &obj.detail); + builder.addField("kind", &obj.kind); + builder.addField("range", &obj.range); + builder.addField("selectionRange", &obj.selectionRange); + builder.addField("children", &obj.children); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo DocumentSymbol::g_rttiInfo = _makeDocumentSymbolRtti(); + } // namespace LanguageServerProtocol } |
