From 1dd6ec26776081274604a94a96a1d87818830e82 Mon Sep 17 00:00:00 2001 From: Yong He Date: Sun, 27 Oct 2024 14:27:52 -0700 Subject: Export language server to wasm. (#5419) --- source/slang/slang-language-server-completion.cpp | 43 +++++++++-------------- 1 file changed, 17 insertions(+), 26 deletions(-) (limited to 'source/slang/slang-language-server-completion.cpp') diff --git a/source/slang/slang-language-server-completion.cpp b/source/slang/slang-language-server-completion.cpp index 14613d08b..074336ea6 100644 --- a/source/slang/slang-language-server-completion.cpp +++ b/source/slang/slang-language-server-completion.cpp @@ -84,7 +84,7 @@ bool isDeclKeyword(const UnownedStringSlice& slice) return false; } -SlangResult CompletionContext::tryCompleteHLSLSemantic() +LanguageServerResult CompletionContext::tryCompleteHLSLSemantic() { if (version->linkage->contentAssistInfo.completionSuggestions.scopeKind != CompletionSuggestions::ScopeKind::HLSLSemantics) @@ -99,23 +99,20 @@ SlangResult CompletionContext::tryCompleteHLSLSemantic() item.kind = LanguageServerProtocol::kCompletionItemKindKeyword; items.add(item); } - server->m_connection->sendResult(&items, responseId); - return SLANG_OK; + return CompletionResult(_Move(items)); } -SlangResult CompletionContext::tryCompleteAttributes() +LanguageServerResult CompletionContext::tryCompleteAttributes() { if (version->linkage->contentAssistInfo.completionSuggestions.scopeKind != CompletionSuggestions::ScopeKind::Attribute) { return SLANG_FAIL; } - List items = collectAttributes(); - server->m_connection->sendResult(&items, responseId); - return SLANG_OK; + return collectAttributes(); } -List CompletionContext::gatherFileAndModuleCompletionItems( +CompletionResult CompletionContext::gatherFileAndModuleCompletionItems( const String& prefixPath, bool translateModuleName, bool isImportString, @@ -299,10 +296,10 @@ List CompletionContext::gatherFi } } } - return context.items; + return CompletionResult(_Move(context.items)); } -SlangResult CompletionContext::tryCompleteImport() +LanguageServerResult CompletionContext::tryCompleteImport() { const char* prefixes[] = { "import ", "__include ", "implementing " }; UnownedStringSlice lineContent; @@ -358,13 +355,11 @@ validLine:; prefixSB.appendChar(ch); } auto prefix = prefixSB.produceString(); - auto items = gatherFileAndModuleCompletionItems( + return gatherFileAndModuleCompletionItems( prefix, true, false, line - 1, fileNameEnd, lastPos + 1, sectionEnd, 0); - server->m_connection->sendResult(&items, responseId); - return SLANG_OK; } -SlangResult CompletionContext::tryCompleteRawFileName(UnownedStringSlice lineContent, Index pos, bool isImportString) +LanguageServerResult CompletionContext::tryCompleteRawFileName(UnownedStringSlice lineContent, Index pos, bool isImportString) { while (pos < lineContent.getLength() && (lineContent[pos] != '\"' && lineContent[pos] != '<')) pos++; @@ -405,7 +400,7 @@ SlangResult CompletionContext::tryCompleteRawFileName(UnownedStringSlice lineCon prefixSB.appendChar(ch); } auto prefix = prefixSB.produceString(); - auto items = gatherFileAndModuleCompletionItems( + return gatherFileAndModuleCompletionItems( prefix, false, isImportString, @@ -414,11 +409,9 @@ SlangResult CompletionContext::tryCompleteRawFileName(UnownedStringSlice lineCon lastPos + 1, sectionEnd, closingChar); - server->m_connection->sendResult(&items, responseId); - return SLANG_OK; } -SlangResult CompletionContext::tryCompleteInclude() +LanguageServerResult CompletionContext::tryCompleteInclude() { auto lineContent = doc->getLine(line); if (!lineContent.startsWith("#")) @@ -437,14 +430,12 @@ SlangResult CompletionContext::tryCompleteInclude() return tryCompleteRawFileName(lineContent, pos, false); } -SlangResult CompletionContext::tryCompleteMemberAndSymbol() +LanguageServerResult CompletionContext::tryCompleteMemberAndSymbol() { - List items = collectMembersAndSymbols(); - server->m_connection->sendResult(&items, responseId); - return SLANG_OK; + return collectMembersAndSymbols(); } -List CompletionContext::collectMembersAndSymbols() +CompletionResult CompletionContext::collectMembersAndSymbols() { auto linkage = version->linkage; if (linkage->contentAssistInfo.completionSuggestions.scopeKind == @@ -611,7 +602,7 @@ List CompletionContext::collectMembersAn return result; } -List CompletionContext::createCapabilityCandidates() +CompletionResult CompletionContext::createCapabilityCandidates() { List result; List names; @@ -629,7 +620,7 @@ List CompletionContext::createCapability return result; } -List CompletionContext::createSwizzleCandidates( +CompletionResult CompletionContext::createSwizzleCandidates( Type* type, IntegerLiteralValue elementCount[2]) { List result; @@ -738,7 +729,7 @@ LanguageServerProtocol::CompletionItem CompletionContext::generateGUIDCompletion return resultItem; } -List CompletionContext::collectAttributes() +CompletionResult CompletionContext::collectAttributes() { List result; for (auto& item : version->linkage->contentAssistInfo.completionSuggestions.candidateItems) -- cgit v1.2.3