forked from qt-creator/qt-creator
LanguageClient: remove codeassist proposal handler
Removes noise from the interface. Using specialized clangd processors that redirect the proposals for testing purposes is an overall cleaner solution. Change-Id: Ia4f3d4720765f0533c5530a2a5c7db3cc971e0be Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -81,9 +81,8 @@ QString FunctionHintProposalModel::text(int index) const
|
||||
+ label.mid(end).toHtmlEscaped();
|
||||
}
|
||||
|
||||
FunctionHintProcessor::FunctionHintProcessor(Client *client, const ProposalHandler &proposalHandler)
|
||||
FunctionHintProcessor::FunctionHintProcessor(Client *client)
|
||||
: m_client(client)
|
||||
, m_proposalHandler(proposalHandler)
|
||||
{}
|
||||
|
||||
IAssistProposal *FunctionHintProcessor::perform(const AssistInterface *interface)
|
||||
@@ -117,26 +116,18 @@ void FunctionHintProcessor::handleSignatureResponse(const SignatureHelpRequest::
|
||||
m_client->removeAssistProcessor(this);
|
||||
auto result = response.result().value_or(LanguageClientValue<SignatureHelp>());
|
||||
if (result.isNull()) {
|
||||
processProposal(nullptr);
|
||||
setAsyncProposalAvailable(nullptr);
|
||||
return;
|
||||
}
|
||||
const SignatureHelp &signatureHelp = result.value();
|
||||
if (signatureHelp.signatures().isEmpty()) {
|
||||
processProposal(nullptr);
|
||||
setAsyncProposalAvailable(nullptr);
|
||||
} else {
|
||||
FunctionHintProposalModelPtr model(new FunctionHintProposalModel(signatureHelp));
|
||||
processProposal(new FunctionHintProposal(m_pos, model));
|
||||
setAsyncProposalAvailable(new FunctionHintProposal(m_pos, model));
|
||||
}
|
||||
}
|
||||
|
||||
void FunctionHintProcessor::processProposal(IAssistProposal *proposal)
|
||||
{
|
||||
if (m_proposalHandler)
|
||||
m_proposalHandler(proposal);
|
||||
else
|
||||
setAsyncProposalAvailable(proposal);
|
||||
}
|
||||
|
||||
FunctionHintAssistProvider::FunctionHintAssistProvider(Client *client)
|
||||
: CompletionAssistProvider(client)
|
||||
, m_client(client)
|
||||
@@ -145,7 +136,7 @@ FunctionHintAssistProvider::FunctionHintAssistProvider(Client *client)
|
||||
TextEditor::IAssistProcessor *FunctionHintAssistProvider::createProcessor(
|
||||
const AssistInterface *) const
|
||||
{
|
||||
return new FunctionHintProcessor(m_client, m_proposalHandler);
|
||||
return new FunctionHintProcessor(m_client);
|
||||
}
|
||||
|
||||
IAssistProvider::RunType FunctionHintAssistProvider::runType() const
|
||||
|
||||
Reference in New Issue
Block a user