diff --git a/src/plugins/languageclient/languageclientquickfix.cpp b/src/plugins/languageclient/languageclientquickfix.cpp index 143f9ce1caf..a6d30c03dd7 100644 --- a/src/plugins/languageclient/languageclientquickfix.cpp +++ b/src/plugins/languageclient/languageclientquickfix.cpp @@ -39,28 +39,22 @@ using namespace TextEditor; namespace LanguageClient { -class CodeActionQuickFixOperation : public QuickFixOperation +CodeActionQuickFixOperation::CodeActionQuickFixOperation(const CodeAction &action, Client *client) + : m_action(action) + , m_client(client) { -public: - CodeActionQuickFixOperation(const CodeAction &action, Client *client) - : m_action(action) - , m_client(client) - { setDescription(action.title()); } + setDescription(action.title()); +} - void perform() override - { - if (!m_client) - return; - if (Utils::optional edit = m_action.edit()) - applyWorkspaceEdit(m_client, *edit); - else if (Utils::optional command = m_action.command()) - m_client->executeCommand(*command); - } - -private: - CodeAction m_action; - QPointer m_client; -}; +void CodeActionQuickFixOperation::perform() +{ + if (!m_client) + return; + if (Utils::optional edit = m_action.edit()) + applyWorkspaceEdit(m_client, *edit); + else if (Utils::optional command = m_action.command()) + m_client->executeCommand(*command); +} class CommandQuickFixOperation : public QuickFixOperation { diff --git a/src/plugins/languageclient/languageclientquickfix.h b/src/plugins/languageclient/languageclientquickfix.h index d9b322769fe..27eb4c445bf 100644 --- a/src/plugins/languageclient/languageclientquickfix.h +++ b/src/plugins/languageclient/languageclientquickfix.h @@ -25,13 +25,31 @@ #pragma once +#include "languageclient_global.h" + #include +#include + +#include + +#include namespace LanguageClient { class Client; -class LanguageClientQuickFixProvider : public TextEditor::IAssistProvider +class LANGUAGECLIENT_EXPORT CodeActionQuickFixOperation : public TextEditor::QuickFixOperation +{ +public: + CodeActionQuickFixOperation(const LanguageServerProtocol::CodeAction &action, Client *client); + void perform() override; + +private: + LanguageServerProtocol::CodeAction m_action; + QPointer m_client; +}; + +class LANGUAGECLIENT_EXPORT LanguageClientQuickFixProvider : public TextEditor::IAssistProvider { public: explicit LanguageClientQuickFixProvider(Client *client);