LanguageClient: export code action quick fixes

Change-Id: I571378580a1f56bc649662c68eb306a081c0c091
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2021-06-22 14:47:30 +02:00
parent f9083cc6ad
commit 1d39465a1b
2 changed files with 33 additions and 21 deletions

View File

@@ -39,15 +39,14 @@ using namespace TextEditor;
namespace LanguageClient {
class CodeActionQuickFixOperation : public QuickFixOperation
{
public:
CodeActionQuickFixOperation(const CodeAction &action, Client *client)
CodeActionQuickFixOperation::CodeActionQuickFixOperation(const CodeAction &action, Client *client)
: m_action(action)
, m_client(client)
{ setDescription(action.title()); }
{
setDescription(action.title());
}
void perform() override
void CodeActionQuickFixOperation::perform()
{
if (!m_client)
return;
@@ -57,11 +56,6 @@ public:
m_client->executeCommand(*command);
}
private:
CodeAction m_action;
QPointer<Client> m_client;
};
class CommandQuickFixOperation : public QuickFixOperation
{
public:

View File

@@ -25,13 +25,31 @@
#pragma once
#include "languageclient_global.h"
#include <texteditor/codeassist/iassistprovider.h>
#include <texteditor/quickfix.h>
#include <languageserverprotocol/languagefeatures.h>
#include <QPointer>
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<Client> m_client;
};
class LANGUAGECLIENT_EXPORT LanguageClientQuickFixProvider : public TextEditor::IAssistProvider
{
public:
explicit LanguageClientQuickFixProvider(Client *client);