summaryrefslogtreecommitdiffstats
path: root/source/compiler-core/slang-language-server-protocol.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-01-26 16:30:19 -0800
committerGitHub <noreply@github.com>2024-01-26 16:30:19 -0800
commit470c5a28f5b84353f077c2d871db65cddd5f923a (patch)
treee970a1c44173673bdc6dd5ec22e6b0c5bde93787 /source/compiler-core/slang-language-server-protocol.cpp
parent013bcf28da22fd569154bd9f98368e670fbeb873 (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.cpp34
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");