LanguageClient: set the capability for hierarchical symbols

Amends 696dedefa1

Change-Id: Id066ec6ea530b3bc50c4ca71dbfeb59d7520f7ac
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2021-06-01 12:57:37 +02:00
parent 5ce704b394
commit 9fb4db55be
3 changed files with 8 additions and 0 deletions

View File

@@ -149,6 +149,12 @@ public:
{ return optionalValue<SymbolKindCapabilities>(symbolKindKey); }
void setSymbolKind(const SymbolKindCapabilities &symbolKind) { insert(symbolKindKey, symbolKind); }
void clearSymbolKind() { remove(symbolKindKey); }
Utils::optional<bool> hierarchicalDocumentSymbolSupport() const
{ return optionalValue<bool>(hierarchicalDocumentSymbolSupportKey); }
void setHierarchicalDocumentSymbolSupport(bool hierarchicalDocumentSymbolSupport)
{ insert(hierarchicalDocumentSymbolSupportKey, hierarchicalDocumentSymbolSupport); }
void clearHierachicalDocumentSymbolSupport() { remove(hierarchicalDocumentSymbolSupportKey); }
};
class LANGUAGESERVERPROTOCOL_EXPORT TextDocumentClientCapabilities : public JsonObject

View File

@@ -116,6 +116,7 @@ constexpr char fullKey[] = "full";
constexpr char greenKey[] = "green";
constexpr char headerFieldSeparator[] = ": ";
constexpr char headerSeparator[] = "\r\n";
constexpr char hierarchicalDocumentSymbolSupportKey[] = "hierarchicalDocumentSymbolSupport";
constexpr char hoverKey[] = "hover";
constexpr char hoverProviderKey[] = "hoverProvider";
constexpr char idKey[] = "id";

View File

@@ -192,6 +192,7 @@ static ClientCapabilities generateClientCapabilities()
SymbolKind::EnumMember, SymbolKind::Struct, SymbolKind::Event,
SymbolKind::Operator, SymbolKind::TypeParameter});
symbolCapabilities.setSymbolKind(symbolKindCapabilities);
symbolCapabilities.setHierarchicalDocumentSymbolSupport(true);
documentCapabilities.setDocumentSymbol(symbolCapabilities);
TextDocumentClientCapabilities::SemanticHighlightingCapabilities semanticHighlight;