diff --git a/src/plugins/languageclient/languageclientfunctionhint.cpp b/src/plugins/languageclient/languageclientfunctionhint.cpp index 91a9748b767..2092b758993 100644 --- a/src/plugins/languageclient/languageclientfunctionhint.cpp +++ b/src/plugins/languageclient/languageclientfunctionhint.cpp @@ -81,25 +81,10 @@ QString FunctionHintProposalModel::text(int index) const + label.mid(end).toHtmlEscaped(); } -class FunctionHintProcessor : public IAssistProcessor -{ -public: - explicit FunctionHintProcessor(Client *client, const ProposalHandler &proposalHandler) - : m_client(client), m_proposalHandler(proposalHandler) {} - IAssistProposal *perform(const AssistInterface *interface) override; - bool running() override { return m_currentRequest.has_value(); } - bool needsRestart() const override { return true; } - void cancel() override; - -private: - void handleSignatureResponse(const SignatureHelpRequest::Response &response); - void processProposal(TextEditor::IAssistProposal *proposal); - - QPointer m_client; - const ProposalHandler m_proposalHandler; - Utils::optional m_currentRequest; - int m_pos = -1; -}; +FunctionHintProcessor::FunctionHintProcessor(Client *client, const ProposalHandler &proposalHandler) + : m_client(client) + , m_proposalHandler(proposalHandler) +{} IAssistProposal *FunctionHintProcessor::perform(const AssistInterface *interface) { diff --git a/src/plugins/languageclient/languageclientfunctionhint.h b/src/plugins/languageclient/languageclientfunctionhint.h index e268c4fed08..5c12ef7ac62 100644 --- a/src/plugins/languageclient/languageclientfunctionhint.h +++ b/src/plugins/languageclient/languageclientfunctionhint.h @@ -25,9 +25,15 @@ #pragma once +#include "languageclient_global.h" + +#include #include +#include #include +#include + namespace TextEditor { class IAssistProposal; } namespace LanguageClient { @@ -36,7 +42,7 @@ class Client; using ProposalHandler = std::function; -class FunctionHintAssistProvider : public TextEditor::CompletionAssistProvider +class LANGUAGECLIENT_EXPORT FunctionHintAssistProvider : public TextEditor::CompletionAssistProvider { Q_OBJECT @@ -61,4 +67,24 @@ private: Client *m_client = nullptr; // not owned }; +class LANGUAGECLIENT_EXPORT FunctionHintProcessor : public TextEditor::IAssistProcessor +{ +public: + explicit FunctionHintProcessor(Client *client, const ProposalHandler &proposalHandler); + TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override; + bool running() override { return m_currentRequest.has_value(); } + bool needsRestart() const override { return true; } + void cancel() override; + +private: + void handleSignatureResponse( + const LanguageServerProtocol::SignatureHelpRequest::Response &response); + void processProposal(TextEditor::IAssistProposal *proposal); + + QPointer m_client; + const ProposalHandler m_proposalHandler; + Utils::optional m_currentRequest; + int m_pos = -1; +}; + } // namespace LanguageClient