diff options
Diffstat (limited to 'source/slang/slang-language-server.cpp')
| -rw-r--r-- | source/slang/slang-language-server.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp index b826d7cfe..dbe031fd3 100644 --- a/source/slang/slang-language-server.cpp +++ b/source/slang/slang-language-server.cpp @@ -230,10 +230,6 @@ String getDeclKindString(DeclRef<Decl> declRef) { return "(generic value parameter) "; } - else if (declRef.as<AttributeDecl>()) - { - return "(attribute) "; - } else if (auto varDecl = declRef.as<VarDeclBase>()) { auto parent = declRef.getParent(); @@ -422,8 +418,16 @@ static void _tryGetDocumentation(StringBuilder& sb, WorkspaceVersion* workspace, auto definingModule = getModuleDecl(decl); if (definingModule) { - auto markupAST = workspace->getOrCreateMarkupAST(definingModule); - auto markupEntry = markupAST->getEntry(decl); + MarkupEntry* markupEntry = nullptr; + if (decl->markup) + { + markupEntry = decl->markup; + } + else + { + auto markupAST = workspace->getOrCreateMarkupAST(definingModule); + markupEntry = markupAST->getEntry(decl); + } if (markupEntry) { sb << "\n"; @@ -705,6 +709,10 @@ SlangResult LanguageServer::hover( { fillDeclRefHoverInfo(DeclRef<Decl>(decl, nullptr)); } + else if (auto attr = as<Attribute>(leafNode)) + { + fillDeclRefHoverInfo(DeclRef<Decl>(attr->attributeDecl, nullptr)); + } if (sb.getLength() == 0) { m_connection->sendResult(NullResponse::get(), responseId); @@ -951,7 +959,7 @@ SlangResult LanguageServer::completion( return SLANG_OK; } - // Don't general completion suggestions after typing '['. + // Don't generate completion suggestions after typing '['. if (args.context.triggerKind == LanguageServerProtocol::kCompletionTriggerKindTriggerCharacter && args.context.triggerCharacter == "[") |
