CppEditor: More direct access to CppQuickFixAssistProvider

Change-Id: I764b68ee2f328cff28b4c6482d28015b36f15bca
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2023-11-15 17:45:04 +01:00
parent e8923d3333
commit 997f28347b
5 changed files with 23 additions and 37 deletions

View File

@@ -133,7 +133,7 @@ TextEditor::IAssistProvider *CppEditorDocument::quickFixAssistProvider() const
{
if (const auto baseProvider = TextDocument::quickFixAssistProvider())
return baseProvider;
return CppEditorPlugin::instance()->quickFixProvider();
return &cppQuickFixAssistProvider();
}
void CppEditorDocument::recalculateSemanticInfoDetached()

View File

@@ -18,7 +18,6 @@
#include "cppoutline.h"
#include "cppprojectfile.h"
#include "cppprojectupdater.h"
#include "cppquickfixassistant.h"
#include "cppquickfixes.h"
#include "cppquickfixprojectsettingswidget.h"
#include "cppquickfixsettingspage.h"
@@ -175,7 +174,6 @@ public:
QAction *m_openTypeHierarchyAction = nullptr;
QAction *m_openIncludeHierarchyAction = nullptr;
CppQuickFixAssistProvider m_quickFixProvider;
CppQuickFixSettingsPage m_quickFixSettingsPage;
QPointer<CppCodeModelInspectorDialog> m_cppCodeModelInspectorDialog;
@@ -217,11 +215,6 @@ CppEditorPlugin *CppEditorPlugin::instance()
return m_instance;
}
CppQuickFixAssistProvider *CppEditorPlugin::quickFixProvider() const
{
return &d->m_quickFixProvider;
}
void CppEditorPlugin::initialize()
{
d = new CppEditorPluginPrivate;

View File

@@ -15,7 +15,6 @@ namespace Internal {
class CppEditorPluginPrivate;
class CppFileSettings;
class CppQuickFixAssistProvider;
class CppEditorPlugin : public ExtensionSystem::IPlugin
{
@@ -28,8 +27,6 @@ public:
static CppEditorPlugin *instance();
CppQuickFixAssistProvider *quickFixProvider() const;
static void clearHeaderSourceCache();
static Utils::FilePath licenseTemplatePath(ProjectExplorer::Project *project);
static QString licenseTemplate(ProjectExplorer::Project *project);

View File

@@ -3,10 +3,9 @@
#include "cppquickfixassistant.h"
#include "cppeditorconstants.h"
#include "cppeditorwidget.h"
#include "cppmodelmanager.h"
#include "cppquickfixes.h"
#include "cppquickfix.h"
#include "cpprefactoringchanges.h"
#include <texteditor/codeassist/genericproposal.h>
@@ -21,32 +20,35 @@
using namespace CPlusPlus;
using namespace TextEditor;
namespace CppEditor {
namespace Internal {
namespace CppEditor::Internal {
// -------------------------
// CppQuickFixAssistProcessor
// -------------------------
class CppQuickFixAssistProcessor : public IAssistProcessor
// CppQuickFixAssistProvider
class CppQuickFixAssistProvider final : public IAssistProvider
{
IAssistProposal *perform() override
public:
class CppQuickFixAssistProcessor final : public IAssistProcessor
{
IAssistProposal *perform() final
{
return GenericProposal::createProposal(interface(), quickFixOperations(interface()));
}
};
TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const final
{
return new CppQuickFixAssistProcessor;
}
};
// -------------------------
// CppQuickFixAssistProvider
// -------------------------
IAssistProcessor *CppQuickFixAssistProvider::createProcessor(const AssistInterface *) const
IAssistProvider &cppQuickFixAssistProvider()
{
return new CppQuickFixAssistProcessor;
static CppQuickFixAssistProvider theCppQuickFixAssistProvider;
return theCppQuickFixAssistProvider;
}
// --------------------------
// CppQuickFixAssistInterface
// --------------------------
CppQuickFixInterface::CppQuickFixInterface(CppEditorWidget *editor, AssistReason reason)
: AssistInterface(editor->textCursor(), editor->textDocument()->filePath(), reason)
, m_editor(editor)
@@ -157,5 +159,4 @@ QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interfa
return quickFixes;
}
} // namespace Internal
} // namespace CppEditor
} // namespace CppEditor::Internal

View File

@@ -46,12 +46,7 @@ private:
QList<CPlusPlus::AST *> m_path;
};
class CppQuickFixAssistProvider : public TextEditor::IAssistProvider
{
public:
CppQuickFixAssistProvider() = default;
TextEditor::IAssistProcessor *createProcessor(const TextEditor::AssistInterface *) const override;
};
TextEditor::IAssistProvider &cppQuickFixAssistProvider();
TextEditor::QuickFixOperations quickFixOperations(const TextEditor::AssistInterface *interface);