diff options
| author | Yong He <yonghe@outlook.com> | 2023-04-27 18:32:20 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-27 18:32:20 -0700 |
| commit | 53793612e3a2f1cadc4f7cbf703bcd94b7121414 (patch) | |
| tree | b995fb1e7b91817439f6f51f2489362b8b027a81 /source/slang/slang-language-server.cpp | |
| parent | 60d829091cc97eef4fd36211afe8a83ad282c4de (diff) | |
Embed stdlib documentation to AST. (#2851)
* Embed stdlib documentation to AST.
* Extract documentation for attributes.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
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 == "[") |
