From 4d517794eaac7dfe6196e9a36d709d66c5720492 Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 17 Jun 2025 21:36:10 -0700 Subject: LanguageServer: Enhance auto completion for override. (#7465) * Add additional completion keywords. * LanguageServer: Enhance auto completion for `override`. --- source/compiler-core/slang-json-native.cpp | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'source/compiler-core/slang-json-native.cpp') diff --git a/source/compiler-core/slang-json-native.cpp b/source/compiler-core/slang-json-native.cpp index 1f9a4dbc6..930aa611f 100644 --- a/source/compiler-core/slang-json-native.cpp +++ b/source/compiler-core/slang-json-native.cpp @@ -205,6 +205,22 @@ SlangResult JSONToNativeConverter::convert(const JSONValue& in, const RttiInfo* *(UnownedStringSlice*)out = m_container->getString(in); return SLANG_OK; } + case RttiInfo::Kind::Optional: + { + if (in.getKind() == JSONValue::Kind::Null) + { + return SLANG_OK; + } + typedef List Type; + const OptionalRttiInfo* optionalRttiInfo = + static_cast(rttiInfo); + auto hasValue = (uint8_t*)out; + *hasValue = 1; + return convert( + in, + optionalRttiInfo->m_elementType, + (uint8_t*)out + optionalRttiInfo->m_valueOffset); + } case RttiInfo::Kind::List: { if (in.getKind() == JSONValue::Kind::Null) @@ -441,6 +457,24 @@ SlangResult NativeToJSONConverter::convert(const RttiInfo* rttiInfo, const void* { return SLANG_E_NOT_IMPLEMENTED; } + case RttiInfo::Kind::Optional: + { + const OptionalRttiInfo* optionalRttiInfo = + static_cast(rttiInfo); + auto hasValue = (const uint8_t*)in; + if (*hasValue) + { + return convert( + optionalRttiInfo->m_elementType, + (const uint8_t*)in + optionalRttiInfo->m_valueOffset, + out); + } + else + { + out = JSONValue::makeNull(); + return SLANG_OK; + } + } case RttiInfo::Kind::List: { const ListRttiInfo* listRttiInfo = static_cast(rttiInfo); -- cgit v1.2.3