summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-language-server-completion.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-08-19 15:03:56 -0700
committerGitHub <noreply@github.com>2024-08-19 15:03:56 -0700
commit453683bf44f2112719802eaac2b332d49eebd640 (patch)
treed399db4c9cba90c11980186d3df1ffcc4d423b5a /source/slang/slang-language-server-completion.cpp
parentecf85df6eee3da76ef54b14e4ab083f22da89e46 (diff)
Tuple swizzling, concat, comparison and `countof`. (#4856)
* Tuple swizzling and element access. * Update proposal status. * Cleanup. * Fix merrge error. * Address review.
Diffstat (limited to 'source/slang/slang-language-server-completion.cpp')
-rw-r--r--source/slang/slang-language-server-completion.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/slang-language-server-completion.cpp b/source/slang/slang-language-server-completion.cpp
index b723e14b8..bee8f088a 100644
--- a/source/slang/slang-language-server-completion.cpp
+++ b/source/slang/slang-language-server-completion.cpp
@@ -674,6 +674,20 @@ List<LanguageServerProtocol::CompletionItem> CompletionContext::createSwizzleCan
}
}
}
+ else if (auto tupleType = as<TupleType>(type))
+ {
+ auto count = Math::Min((int)elementCount[0], 4);
+ for (int i = 0; i < count; i++)
+ {
+ LanguageServerProtocol::CompletionItem item;
+ item.data = 0;
+ if (tupleType->getMember(i))
+ item.detail = tupleType->getMember(i)->toString();
+ item.kind = LanguageServerProtocol::kCompletionItemKindVariable;
+ item.label = String("_") + String(i);
+ result.add(item);
+ }
+ }
for (auto& item : result)
{
for (auto ch : getCommitChars())