ClangCodeModel: Use dedicated completion assist provider for clangd

The pure LSP-based implementation is too inflexible with regards to
activation characters.

Change-Id: I386a60b80f59e1b48254d55c2a47f1a1ffe1f97f
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2021-09-13 16:09:04 +02:00
parent a1cb438fdf
commit 719f51445e
4 changed files with 199 additions and 160 deletions

View File

@@ -1027,22 +1027,6 @@ SymbolStringifier Client::symbolStringifier() const
return m_symbolStringifier;
}
void Client::setCompletionItemsTransformer(const CompletionItemsTransformer &transformer)
{
if (const auto provider = qobject_cast<LanguageClientCompletionAssistProvider *>(
m_clientProviders.completionAssistProvider)) {
provider->setItemsTransformer(transformer);
}
}
void Client::setCompletionApplyHelper(const CompletionApplyHelper &applyHelper)
{
if (const auto provider = qobject_cast<LanguageClientCompletionAssistProvider *>(
m_clientProviders.completionAssistProvider)) {
provider->setApplyHelper(applyHelper);
}
}
void Client::setCompletionProposalHandler(const ProposalHandler &handler)
{
if (const auto provider = qobject_cast<LanguageClientCompletionAssistProvider *>(
@@ -1067,6 +1051,12 @@ void Client::setSnippetsGroup(const QString &group)
}
}
void Client::setCompletionAssistProvider(LanguageClientCompletionAssistProvider *provider)
{
delete m_clientProviders.completionAssistProvider;
m_clientProviders.completionAssistProvider = provider;
}
void Client::start()
{
LanguageClientManager::addClient(this);