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

@@ -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