diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2023-03-16 15:19:20 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-16 15:19:20 -0400 |
| commit | 4cb899f824ee5e4421f36506e4c77f682b238b09 (patch) | |
| tree | c348029866666fad59531032ba76f325d67c32ab /source/slang/slang-language-server.cpp | |
| parent | 1036d1a9edec83d8840577f388af8599b5e18f5f (diff) | |
Preliminary SourceMap support (#2701)
* #include an absolute path didn't work - because paths were taken to always be relative.
* WIP source map.
* Split out handling of RttiTypeFuncs to a map type.
* Make RttiTypeFuncsMap hold default impls.
* Slightly more sophisticated RttiTypeFuncsMap
* Source map decoding.
* Fix tabs.
* Fix asserts due to negative values.
* Use less obscure mechanisms in SourceMap.
Diffstat (limited to 'source/slang/slang-language-server.cpp')
| -rw-r--r-- | source/slang/slang-language-server.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp index 80d6e466b..25c6c1a01 100644 --- a/source/slang/slang-language-server.cpp +++ b/source/slang/slang-language-server.cpp @@ -45,6 +45,9 @@ ArrayView<const char*> getCommitChars() SlangResult LanguageServer::init(const InitializeParams& args) { SLANG_RETURN_ON_FAIL(m_connection->initWithStdStreams(JSONRPCConnection::CallStyle::Object)); + + m_typeMap = JSONNativeUtil::getTypeFuncsMap(); + m_workspaceFolders = args.workspaceFolders; m_workspace = new Workspace(); List<URI> rootUris; @@ -1436,7 +1439,7 @@ void LanguageServer::updatePredefinedMacros(const JSONValue& macros) if (macros.isValid()) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); List<String> predefinedMacros; if (SLANG_SUCCEEDED(converter.convert(macros, &predefinedMacros))) { @@ -1453,7 +1456,7 @@ void LanguageServer::updateSearchPaths(const JSONValue& value) if (value.isValid()) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); List<String> searchPaths; if (SLANG_SUCCEEDED(converter.convert(value, &searchPaths))) { @@ -1470,7 +1473,7 @@ void LanguageServer::updateSearchInWorkspace(const JSONValue& value) if (value.isValid()) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); bool searchPaths; if (SLANG_SUCCEEDED(converter.convert(value, &searchPaths))) { @@ -1487,7 +1490,7 @@ void LanguageServer::updateCommitCharacters(const JSONValue& jsonValue) if (jsonValue.isValid()) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); String value; if (SLANG_SUCCEEDED(converter.convert(jsonValue, &value))) { @@ -1510,7 +1513,7 @@ void LanguageServer::updateCommitCharacters(const JSONValue& jsonValue) void LanguageServer::updateFormattingOptions(const JSONValue& clangFormatLoc, const JSONValue& clangFormatStyle, const JSONValue& clangFormatFallbackStyle, const JSONValue& allowLineBreakOnType, const JSONValue& allowLineBreakInRange) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); converter.convert(clangFormatLoc, &m_formatOptions.clangFormatLocation); converter.convert(clangFormatStyle, &m_formatOptions.style); converter.convert(clangFormatFallbackStyle, &m_formatOptions.fallbackStyle); @@ -1523,7 +1526,7 @@ void LanguageServer::updateFormattingOptions(const JSONValue& clangFormatLoc, co void LanguageServer::updateInlayHintOptions(const JSONValue& deducedTypes, const JSONValue& parameterNames) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); bool showDeducedType = false; bool showParameterNames = false; converter.convert(deducedTypes, &showDeducedType); @@ -1542,7 +1545,7 @@ void LanguageServer::updateTraceOptions(const JSONValue& value) if (value.isValid()) { auto container = m_connection->getContainer(); - JSONToNativeConverter converter(container, m_connection->getSink()); + JSONToNativeConverter converter(container, &m_typeMap, m_connection->getSink()); String str; if (SLANG_SUCCEEDED(converter.convert(value, &str))) { |
