diff --git a/src/plugins/qmljseditor/qmljsquickfix.cpp b/src/plugins/qmljseditor/qmljsquickfix.cpp index a90a76c4ed1de83842eff477e4613928e5443290..cd64160934c854677d6fe46f27c463dc6baab958 100644 --- a/src/plugins/qmljseditor/qmljsquickfix.cpp +++ b/src/plugins/qmljseditor/qmljsquickfix.cpp @@ -33,6 +33,35 @@ using namespace QmlJSEditor::Internal; +QmlJSQuickFixOperation::QmlJSQuickFixOperation(TextEditor::BaseTextEditor *editor) + : TextEditor::QuickFixOperation(editor) +{ +} + +QmlJSQuickFixOperation::~QmlJSQuickFixOperation() +{ +} + +void QmlJSQuickFixOperation::move(const QmlJS::AST::SourceLocation &loc, int to) +{ + move(position(loc.startColumn, loc.startColumn), to); +} + +void QmlJSQuickFixOperation::replace(const QmlJS::AST::SourceLocation &loc, const QString &replacement) +{ + replace(position(loc.startLine, loc.startColumn), replacement); +} + +void QmlJSQuickFixOperation::remove(const QmlJS::AST::SourceLocation &loc) +{ + remove(position(loc.startLine, loc.startColumn)); +} + +void QmlJSQuickFixOperation::copy(const QmlJS::AST::SourceLocation &loc, int to) +{ + copy(position(loc.startLine, loc.startColumn), to); +} + QmlJSQuickFixCollector::QmlJSQuickFixCollector() { } diff --git a/src/plugins/qmljseditor/qmljsquickfix.h b/src/plugins/qmljseditor/qmljsquickfix.h index b5a5d535b181b5a5a967c24a0680ab823d1395af..12274a1baa1875a837d582a8712492eeeee22b0f 100644 --- a/src/plugins/qmljseditor/qmljsquickfix.h +++ b/src/plugins/qmljseditor/qmljsquickfix.h @@ -31,6 +31,7 @@ #define QMLJSQUICKFIX_H #include <texteditor/quickfix.h> +#include <qmljs/parser/qmljsastfwd_p.h> namespace QmlJSEditor { @@ -38,6 +39,31 @@ class ModelManagerInterface; namespace Internal { +class QmlJSQuickFixOperation: public TextEditor::QuickFixOperation +{ + Q_DISABLE_COPY(QmlJSQuickFixOperation) + +public: + QmlJSQuickFixOperation(TextEditor::BaseTextEditor *editor); + virtual ~QmlJSQuickFixOperation(); + +protected: + using TextEditor::QuickFixOperation::move; + using TextEditor::QuickFixOperation::replace; + using TextEditor::QuickFixOperation::insert; + using TextEditor::QuickFixOperation::remove; + using TextEditor::QuickFixOperation::flip; + using TextEditor::QuickFixOperation::copy; + using TextEditor::QuickFixOperation::textOf; + using TextEditor::QuickFixOperation::charAt; + + // token based operations + void move(const QmlJS::AST::SourceLocation &loc, int to); + void replace(const QmlJS::AST::SourceLocation &loc, const QString &replacement); + void remove(const QmlJS::AST::SourceLocation &loc); + void copy(const QmlJS::AST::SourceLocation &loc, int to); +}; + class QmlJSQuickFixCollector: public TextEditor::QuickFixCollector { Q_OBJECT