diff options
| author | Yong He <yonghe@outlook.com> | 2024-01-26 16:30:19 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-26 16:30:19 -0800 |
| commit | 470c5a28f5b84353f077c2d871db65cddd5f923a (patch) | |
| tree | e970a1c44173673bdc6dd5ec22e6b0c5bde93787 /source/compiler-core/slang-language-server-protocol.cpp | |
| parent | 013bcf28da22fd569154bd9f98368e670fbeb873 (diff) | |
Fix LSP compatibility issues with Visual Studio. (#3520)
* [LSP] compatibility logic for Visual Studio.
* [LSP] Fix diagnostic rank parsing.
* [LSP] Fix semantic highlighting of cbuffer types.
* Fix.
* Fix.
---------
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 | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/source/compiler-core/slang-language-server-protocol.cpp b/source/compiler-core/slang-language-server-protocol.cpp index 628baf08d..93ea0c9e3 100644 --- a/source/compiler-core/slang-language-server-protocol.cpp +++ b/source/compiler-core/slang-language-server-protocol.cpp @@ -257,6 +257,29 @@ static const StructRttiInfo _makeServerCapabilitiesRtti() } const StructRttiInfo ServerCapabilities::g_rttiInfo = _makeServerCapabilitiesRtti(); +static const StructRttiInfo _makeVSServerCapabilitiesRtti() +{ + VSServerCapabilities obj; + StructRttiBuilder builder(&obj, "LanguageServerProtocol::ServerCapabilities", nullptr); + builder.addField("positionEncoding", &obj.positionEncoding); + builder.addField("textDocumentSync", &obj.textDocumentSync); + builder.addField("workspace", &obj.workspace); + builder.addField("hoverProvider", &obj.hoverProvider); + builder.addField("inlayHintProvider", &obj.inlayHintProvider); + builder.addField("documentOnTypeFormattingProvider", &obj.documentOnTypeFormattingProvider); + builder.addField("documentFormattingProvider", &obj.documentFormattingProvider); + builder.addField("documentRangeFormattingProvider", &obj.documentRangeFormattingProvider); + builder.addField("definitionProvider", &obj.definitionProvider); + builder.addField("completionProvider", &obj.completionProvider); + builder.addField("semanticTokensProvider", &obj.semanticTokensProvider); + builder.addField("signatureHelpProvider", &obj.signatureHelpProvider); + builder.addField("documentSymbolProvider", &obj.documentSymbolProvider); + builder.addField("_vs_projectContextProvider", &obj._vs_projectContextProvider); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo VSServerCapabilities::g_rttiInfo = _makeVSServerCapabilitiesRtti(); + static const StructRttiInfo _makeServerInfoRtti() { ServerInfo obj; @@ -280,6 +303,17 @@ static const StructRttiInfo _makeInitializeResultRtti() } const StructRttiInfo InitializeResult::g_rttiInfo = _makeInitializeResultRtti(); +static const StructRttiInfo _makeVSInitializeResultRtti() +{ + VSInitializeResult obj; + StructRttiBuilder builder(&obj, "LanguageServerProtocol::VSInitializeResult", nullptr); + builder.addField("capabilities", &obj.capabilities); + builder.addField("serverInfo", &obj.serverInfo); + builder.ignoreUnknownFields(); + return builder.make(); +} +const StructRttiInfo VSInitializeResult::g_rttiInfo = _makeVSInitializeResultRtti(); + const UnownedStringSlice InitializeParams::methodName = UnownedStringSlice::fromLiteral("initialize"); |
