forked from qt-creator/qt-creator
LanguageClient: move document symbol support check to client
Used there to prevent requesting document symbols from server that do not support these requests. Change-Id: Icca64c41415ba7098c769854823431fb05e5ce1d Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -67,6 +67,13 @@ void DocumentSymbolCache::requestSymbols(const DocumentUri &uri, Schedule schedu
|
||||
}
|
||||
}
|
||||
|
||||
bool clientSupportsDocumentSymbols(const Client *client, const DocumentUri &uri)
|
||||
{
|
||||
QTC_ASSERT(client, return false);
|
||||
const auto doc = TextEditor::TextDocument::textDocumentForFilePath(uri.toFilePath());
|
||||
return client->supportsDocumentSymbols(doc);
|
||||
}
|
||||
|
||||
void DocumentSymbolCache::requestSymbolsImpl()
|
||||
{
|
||||
if (!m_client->reachable()) {
|
||||
@@ -80,6 +87,11 @@ void DocumentSymbolCache::requestSymbolsImpl()
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!LanguageClient::clientSupportsDocumentSymbols(m_client, uri)) {
|
||||
emit gotSymbols(uri, nullptr);
|
||||
continue;
|
||||
}
|
||||
|
||||
const DocumentSymbolParams params((TextDocumentIdentifier(uri)));
|
||||
DocumentSymbolsRequest request(params);
|
||||
request.setResponseCallback([uri, self = QPointer<DocumentSymbolCache>(this)](
|
||||
|
||||
Reference in New Issue
Block a user