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:
@@ -1085,6 +1085,25 @@ void Client::setQuickFixAssistProvider(LanguageClientQuickFixProvider *provider)
|
||||
m_clientProviders.quickFixAssistProvider = provider;
|
||||
}
|
||||
|
||||
bool Client::supportsDocumentSymbols(const TextEditor::TextDocument *doc) const
|
||||
{
|
||||
if (!doc)
|
||||
return false;
|
||||
DynamicCapabilities dc = dynamicCapabilities();
|
||||
if (dc.isRegistered(DocumentSymbolsRequest::methodName).value_or(false)) {
|
||||
TextDocumentRegistrationOptions options(dc.option(DocumentSymbolsRequest::methodName));
|
||||
return !options.isValid()
|
||||
|| options.filterApplies(doc->filePath(), Utils::mimeTypeForName(doc->mimeType()));
|
||||
}
|
||||
const Utils::optional<Utils::variant<bool, WorkDoneProgressOptions>> &provider
|
||||
= capabilities().documentSymbolProvider();
|
||||
if (!provider.has_value())
|
||||
return false;
|
||||
if (Utils::holds_alternative<bool>(*provider))
|
||||
return Utils::get<bool>(*provider);
|
||||
return true;
|
||||
}
|
||||
|
||||
void Client::start()
|
||||
{
|
||||
LanguageClientManager::addClient(this);
|
||||
|
||||
Reference in New Issue
Block a user