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()) if (const auto baseProvider = TextDocument::quickFixAssistProvider())
return baseProvider; return baseProvider;
return CppEditorPlugin::instance()->quickFixProvider(); return &cppQuickFixAssistProvider();
} }
void CppEditorDocument::recalculateSemanticInfoDetached() void CppEditorDocument::recalculateSemanticInfoDetached()

View File

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

View File

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

View File

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

View File

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