CodeAssist: Support only one quickfix assistant per editor class.

Currently we are just using the first that is found. Which could lead
to unexpected behavior. Adjust the API to make clear just one assistant
is supported per editor type.

Change-Id: I711e66b4c5c5f347118357a8bafa0ffc6d650f7e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2016-03-16 13:04:05 +01:00
parent 16aeecea2c
commit 898968b101
20 changed files with 45 additions and 30 deletions

View File

@@ -27,7 +27,9 @@
#include "qmljseditorconstants.h"
#include "qmljseditordocument_p.h"
#include "qmljseditorplugin.h"
#include "qmljshighlighter.h"
#include "qmljsquickfixassist.h"
#include "qmljssemantichighlighter.h"
#include "qmljssemanticinfoupdater.h"
#include "qmloutlinemodel.h"
@@ -580,6 +582,11 @@ Internal::QmlOutlineModel *QmlJSEditorDocument::outlineModel() const
return d->m_outlineModel;
}
TextEditor::QuickFixAssistProvider *QmlJSEditorDocument::quickFixAssistProvider() const
{
return Internal::QmlJSEditorPlugin::instance()->quickFixAssistProvider();
}
void QmlJSEditorDocument::setDiagnosticRanges(const QVector<QTextLayout::FormatRange> &ranges)
{
d->m_diagnosticRanges = ranges;

View File

@@ -52,6 +52,8 @@ public:
void setDiagnosticRanges(const QVector<QTextLayout::FormatRange> &ranges);
Internal::QmlOutlineModel *outlineModel() const;
TextEditor::QuickFixAssistProvider *quickFixAssistProvider() const override;
signals:
void updateCodeWarnings(QmlJS::Document::Ptr doc);
void semanticInfoUpdated(const QmlJSTools::SemanticInfo &semanticInfo);

View File

@@ -182,8 +182,7 @@ bool QmlJSEditorPlugin::initialize(const QStringList & /*arguments*/, QString *e
cmd = ActionManager::command(TextEditor::Constants::UN_COMMENT_SELECTION);
contextMenu->addAction(cmd);
m_quickFixAssistProvider = new QmlJSQuickFixAssistProvider;
addAutoReleasedObject(m_quickFixAssistProvider);
m_quickFixAssistProvider = new QmlJSQuickFixAssistProvider(this);
errorMessage->clear();

View File

@@ -66,7 +66,8 @@ QmlJSRefactoringFilePtr QmlJSQuickFixAssistInterface::currentFile() const
// ---------------------------
// QmlJSQuickFixAssistProvider
// ---------------------------
QmlJSQuickFixAssistProvider::QmlJSQuickFixAssistProvider()
QmlJSQuickFixAssistProvider::QmlJSQuickFixAssistProvider(QObject *parent)
: TextEditor::QuickFixAssistProvider(parent)
{}
QmlJSQuickFixAssistProvider::~QmlJSQuickFixAssistProvider()

View File

@@ -55,7 +55,7 @@ private:
class QmlJSQuickFixAssistProvider : public TextEditor::QuickFixAssistProvider
{
public:
QmlJSQuickFixAssistProvider();
QmlJSQuickFixAssistProvider(QObject *parent = 0);
~QmlJSQuickFixAssistProvider();
IAssistProvider::RunType runType() const override;