TextEditor: Dissolve QuickFixAssistProcessor

... into QuickFixAssistProcessor and QmlJSQuickFixAssistProcessor,
by essentially duplicating the class, but moving the actual work to
a new a GenericProposal::createProposal(...QuickFixOperations...)

Less indirection, and less code in total.

Change-Id: I2f8cba970bf587c9cbf04321269a60ed51bfae2a
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2017-12-15 10:36:16 +01:00
parent d47fdb934d
commit 6c537b35d5
14 changed files with 73 additions and 148 deletions

View File

@@ -78,11 +78,4 @@ void QmlJSQuickFixFactory::matchingOperations(const QuickFixInterface &interface
match(interface.staticCast<const QmlJSQuickFixAssistInterface>(), result);
}
QList<TextEditor::QuickFixFactory *> QmlJSQuickFixFactory::qmlJSQuickFixFactories()
{
return Utils::filtered(QuickFixFactory::allQuickFixFactories(), [](QuickFixFactory *f) {
return qobject_cast<QmlJSQuickFixFactory *>(f) != nullptr;
});
}
} // namespace QmlJSEditor

View File

@@ -90,8 +90,6 @@ protected:
QmlJSQuickFixOperation objects.
*/
virtual void match(const QmlJSQuickFixInterface &interface, TextEditor::QuickFixOperations &result) = 0;
static QList<QuickFixFactory *> qmlJSQuickFixFactories();
};
} // namespace QmlJSEditor

View File

@@ -30,6 +30,9 @@
//temp
#include "qmljsquickfix.h"
#include <texteditor/codeassist/genericproposal.h>
#include <texteditor/codeassist/iassistprocessor.h>
#include <utils/algorithm.h>
using namespace QmlJSTools;
@@ -63,6 +66,25 @@ QmlJSRefactoringFilePtr QmlJSQuickFixAssistInterface::currentFile() const
return m_currentFile;
}
// ---------------------------
// QmlJSQuickFixAssistProcessor
// ---------------------------
class QmlJSQuickFixAssistProcessor : public IAssistProcessor
{
IAssistProposal *perform(const AssistInterface *interface) override
{
QSharedPointer<const AssistInterface> assistInterface(interface);
QuickFixOperations quickFixes;
for (QuickFixFactory *factory : QuickFixFactory::allQuickFixFactories())
if (qobject_cast<QmlJSQuickFixFactory *>(factory) != nullptr)
factory->matchingOperations(assistInterface, quickFixes);
return GenericProposal::createProposal(interface, quickFixes);
}
};
// ---------------------------
// QmlJSQuickFixAssistProvider
// ---------------------------
@@ -80,7 +102,7 @@ IAssistProvider::RunType QmlJSQuickFixAssistProvider::runType() const
IAssistProcessor *QmlJSQuickFixAssistProvider::createProcessor() const
{
return new QuickFixAssistProcessor(QmlJSQuickFixFactory::allQuickFixFactories());
return new QmlJSQuickFixAssistProcessor;
}
} // namespace QmlJSEditor

View File

@@ -31,8 +31,6 @@
#include <texteditor/codeassist/assistinterface.h>
#include <texteditor/codeassist/iassistprovider.h>
#include <texteditor/codeassist/quickfixassistprocessor.h>
namespace QmlJSEditor {
namespace Internal {