diff options
| author | Yong He <yonghe@outlook.com> | 2024-02-02 22:28:02 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-02 22:28:02 -0800 |
| commit | 14764896c34b230a5563f48d8b8e565de2f3aa10 (patch) | |
| tree | 2f105d3f6222103f458054f1cd38e280b6fb52b4 /source/slang/slang-language-server-completion.cpp | |
| parent | c15e7ade4e27e1649d5b98f5854e9e52bb9e60ae (diff) | |
Capability type checking. (#3530)
* Capability type checking.
* Fix.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-language-server-completion.cpp')
| -rw-r--r-- | source/slang/slang-language-server-completion.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/slang/slang-language-server-completion.cpp b/source/slang/slang-language-server-completion.cpp index 6038a432a..b723e14b8 100644 --- a/source/slang/slang-language-server-completion.cpp +++ b/source/slang/slang-language-server-completion.cpp @@ -443,6 +443,11 @@ List<LanguageServerProtocol::CompletionItem> CompletionContext::collectMembersAn linkage->contentAssistInfo.completionSuggestions.swizzleBaseType, linkage->contentAssistInfo.completionSuggestions.elementCount); } + else if (linkage->contentAssistInfo.completionSuggestions.scopeKind == + CompletionSuggestions::ScopeKind::Capabilities) + { + return createCapabilityCandidates(); + } List<LanguageServerProtocol::CompletionItem> result; bool useCommitChars = true; bool addKeywords = false; @@ -595,6 +600,24 @@ List<LanguageServerProtocol::CompletionItem> CompletionContext::collectMembersAn return result; } +List<LanguageServerProtocol::CompletionItem> CompletionContext::createCapabilityCandidates() +{ + List<LanguageServerProtocol::CompletionItem> result; + List<UnownedStringSlice> names; + getCapabilityNames(names); + for (auto name : names.getArrayView(1, names.getCount()-1)) + { + if (name.startsWith("_")) + continue; + LanguageServerProtocol::CompletionItem item; + item.data = 0; + item.kind = LanguageServerProtocol::kCompletionItemKindEnumMember; + item.label = name; + result.add(item); + } + return result; +} + List<LanguageServerProtocol::CompletionItem> CompletionContext::createSwizzleCandidates( Type* type, IntegerLiteralValue elementCount[2]) { |
