forked from qt-creator/qt-creator
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:
@@ -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
|
||||
|
||||
@@ -90,8 +90,6 @@ protected:
|
||||
QmlJSQuickFixOperation objects.
|
||||
*/
|
||||
virtual void match(const QmlJSQuickFixInterface &interface, TextEditor::QuickFixOperations &result) = 0;
|
||||
|
||||
static QList<QuickFixFactory *> qmlJSQuickFixFactories();
|
||||
};
|
||||
|
||||
} // namespace QmlJSEditor
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -31,8 +31,6 @@
|
||||
|
||||
#include <texteditor/codeassist/assistinterface.h>
|
||||
#include <texteditor/codeassist/iassistprovider.h>
|
||||
#include <texteditor/codeassist/quickfixassistprocessor.h>
|
||||
|
||||
|
||||
namespace QmlJSEditor {
|
||||
namespace Internal {
|
||||
|
||||
Reference in New Issue
Block a user