Editor: unify assist processor handling

Define the run type of the processor by its implementation instead of a
enum value of the provider. The execution of a processor inside the
assist now follows a unified procedure.

Change-Id: Ibe9fab324c6072e77702c2663946d7a9f562a085
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2022-11-09 15:38:22 +01:00
parent 33a33612c8
commit 09ee528c40
45 changed files with 230 additions and 377 deletions

View File

@@ -314,7 +314,7 @@ static QString assistReasonString(AssistReason reason)
return QString("unknown reason");
}
IAssistProposal *LanguageClientCompletionAssistProcessor::perform(const AssistInterface *interface)
IAssistProposal *LanguageClientCompletionAssistProcessor::perform(AssistInterface *interface)
{
m_assistInterface.reset(interface);
QTC_ASSERT(m_client, return nullptr);
@@ -454,11 +454,6 @@ IAssistProcessor *LanguageClientCompletionAssistProvider::createProcessor(
m_snippetsGroup);
}
IAssistProvider::RunType LanguageClientCompletionAssistProvider::runType() const
{
return IAssistProvider::Asynchronous;
}
int LanguageClientCompletionAssistProvider::activationCharSequenceLength() const
{
return m_activationCharSequenceLength;

View File

@@ -34,7 +34,6 @@ public:
LanguageClientCompletionAssistProvider(Client *client);
TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override;
RunType runType() const override;
int activationCharSequenceLength() const override;
bool isActivationCharSequence(const QString &sequence) const override;
@@ -60,7 +59,7 @@ class LANGUAGECLIENT_EXPORT LanguageClientCompletionAssistProcessor
public:
LanguageClientCompletionAssistProcessor(Client *client, const QString &snippetsGroup);
~LanguageClientCompletionAssistProcessor() override;
TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override;
TextEditor::IAssistProposal *perform(TextEditor::AssistInterface *interface) override;
bool running() override;
bool needsRestart() const override { return true; }
void cancel() override;

View File

@@ -66,7 +66,7 @@ FunctionHintProcessor::FunctionHintProcessor(Client *client)
: m_client(client)
{}
IAssistProposal *FunctionHintProcessor::perform(const AssistInterface *interface)
IAssistProposal *FunctionHintProcessor::perform(AssistInterface *interface)
{
const QScopedPointer<const AssistInterface> deleter(interface);
QTC_ASSERT(m_client, return nullptr);
@@ -124,11 +124,6 @@ TextEditor::IAssistProcessor *FunctionHintAssistProvider::createProcessor(
return new FunctionHintProcessor(m_client);
}
IAssistProvider::RunType FunctionHintAssistProvider::runType() const
{
return Asynchronous;
}
int FunctionHintAssistProvider::activationCharSequenceLength() const
{
return m_activationCharSequenceLength;

View File

@@ -27,7 +27,6 @@ public:
explicit FunctionHintAssistProvider(Client *client);
TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override;
RunType runType() const override;
int activationCharSequenceLength() const override;
bool isActivationCharSequence(const QString &sequence) const override;
@@ -45,7 +44,7 @@ class LANGUAGECLIENT_EXPORT FunctionHintProcessor : public TextEditor::IAssistPr
{
public:
explicit FunctionHintProcessor(Client *client);
TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override;
TextEditor::IAssistProposal *perform(TextEditor::AssistInterface *interface) override;
bool running() override { return m_currentRequest.has_value(); }
bool needsRestart() const override { return true; }
void cancel() override;

View File

@@ -45,7 +45,7 @@ void CommandQuickFixOperation::perform()
m_client->executeCommand(m_command);
}
IAssistProposal *LanguageClientQuickFixAssistProcessor::perform(const AssistInterface *interface)
IAssistProposal *LanguageClientQuickFixAssistProcessor::perform(AssistInterface *interface)
{
m_assistInterface = QSharedPointer<const AssistInterface>(interface);
@@ -122,11 +122,6 @@ LanguageClientQuickFixProvider::LanguageClientQuickFixProvider(Client *client)
QTC_CHECK(client);
}
IAssistProvider::RunType LanguageClientQuickFixProvider::runType() const
{
return Asynchronous;
}
IAssistProcessor *LanguageClientQuickFixProvider::createProcessor(const AssistInterface *) const
{
return new LanguageClientQuickFixAssistProcessor(m_client);

View File

@@ -48,7 +48,6 @@ class LANGUAGECLIENT_EXPORT LanguageClientQuickFixProvider : public TextEditor::
{
public:
explicit LanguageClientQuickFixProvider(Client *client);
IAssistProvider::RunType runType() const override;
TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override;
protected:
@@ -64,7 +63,7 @@ class LANGUAGECLIENT_EXPORT LanguageClientQuickFixAssistProcessor
public:
explicit LanguageClientQuickFixAssistProcessor(Client *client) : m_client(client) {}
bool running() override { return m_currentRequest.has_value(); }
TextEditor::IAssistProposal *perform(const TextEditor::AssistInterface *interface) override;
TextEditor::IAssistProposal *perform(TextEditor::AssistInterface *interface) override;
void cancel() override;
protected: