Some more cleanup

This commit is contained in:
Roberto Raggi
2009-11-25 12:22:55 +01:00
parent d6fa4e2079
commit 3e93c5eff7
2 changed files with 54 additions and 42 deletions

View File

@@ -98,9 +98,8 @@ protected:
class RewriteLogicalAndOp: public QuickFixOperation class RewriteLogicalAndOp: public QuickFixOperation
{ {
public: public:
RewriteLogicalAndOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) RewriteLogicalAndOp()
: QuickFixOperation(doc, snapshot, editor), : left(0), right(0), pattern(0)
left(0), right(0), pattern(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -159,8 +158,8 @@ private:
class SplitSimpleDeclarationOp: public QuickFixOperation class SplitSimpleDeclarationOp: public QuickFixOperation
{ {
public: public:
SplitSimpleDeclarationOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) SplitSimpleDeclarationOp()
: QuickFixOperation(doc, snapshot, editor), declaration(0) : declaration(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -263,9 +262,8 @@ private:
class AddBracesToIfOp: public QuickFixOperation class AddBracesToIfOp: public QuickFixOperation
{ {
public: public:
AddBracesToIfOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) AddBracesToIfOp()
: QuickFixOperation(doc, snapshot, editor), : _statement(0)
_statement(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -323,9 +321,8 @@ private:
class MoveDeclarationOutOfIfOp: public QuickFixOperation class MoveDeclarationOutOfIfOp: public QuickFixOperation
{ {
public: public:
MoveDeclarationOutOfIfOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) MoveDeclarationOutOfIfOp()
: QuickFixOperation(doc, snapshot, editor), : condition(0), pattern(0), core(0)
condition(0), pattern(0), core(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -388,9 +385,8 @@ private:
class MoveDeclarationOutOfWhileOp: public QuickFixOperation class MoveDeclarationOutOfWhileOp: public QuickFixOperation
{ {
public: public:
MoveDeclarationOutOfWhileOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) MoveDeclarationOutOfWhileOp()
: QuickFixOperation(doc, snapshot, editor), : condition(0), pattern(0), core(0)
condition(0), pattern(0), core(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -481,9 +477,8 @@ private:
class SplitIfStatementOp: public QuickFixOperation class SplitIfStatementOp: public QuickFixOperation
{ {
public: public:
SplitIfStatementOp(Document::Ptr doc, const Snapshot &snapshot, CPPEditor *editor) SplitIfStatementOp()
: QuickFixOperation(doc, snapshot, editor), : condition(0), pattern(0)
condition(0), pattern(0)
{} {}
virtual QString description() const virtual QString description() const
@@ -598,19 +593,13 @@ private:
} // end of anonymous namespace } // end of anonymous namespace
QuickFixOperation::QuickFixOperation(CPlusPlus::Document::Ptr doc, QuickFixOperation::QuickFixOperation()
const CPlusPlus::Snapshot &snapshot, : _editor(0), _topLevelNode(0)
CPPEditor *editor)
: _doc(doc), _snapshot(snapshot),
_editor(editor), _topLevelNode(0)
{ } { }
QuickFixOperation::~QuickFixOperation() QuickFixOperation::~QuickFixOperation()
{ } { }
CPPEditor *QuickFixOperation::editor() const
{ return _editor; }
CPlusPlus::AST *QuickFixOperation::topLevelNode() const CPlusPlus::AST *QuickFixOperation::topLevelNode() const
{ return _topLevelNode; } { return _topLevelNode; }
@@ -620,6 +609,24 @@ void QuickFixOperation::setTopLevelNode(CPlusPlus::AST *topLevelNode)
const Utils::ChangeSet &QuickFixOperation::changeSet() const const Utils::ChangeSet &QuickFixOperation::changeSet() const
{ return _changeSet; } { return _changeSet; }
Document::Ptr QuickFixOperation::document() const
{ return _document; }
void QuickFixOperation::setDocument(CPlusPlus::Document::Ptr document)
{ _document = document; }
Snapshot QuickFixOperation::snapshot() const
{ return _snapshot; }
void QuickFixOperation::setSnapshot(const CPlusPlus::Snapshot &snapshot)
{ _snapshot = snapshot; }
CPPEditor *QuickFixOperation::editor() const
{ return _editor; }
void QuickFixOperation::setEditor(CPPEditor *editor)
{ _editor = editor; }
QTextCursor QuickFixOperation::textCursor() const QTextCursor QuickFixOperation::textCursor() const
{ return _textCursor; } { return _textCursor; }
@@ -633,12 +640,12 @@ int QuickFixOperation::selectionEnd() const
{ return _textCursor.selectionEnd(); } { return _textCursor.selectionEnd(); }
const CPlusPlus::Token &QuickFixOperation::tokenAt(unsigned index) const const CPlusPlus::Token &QuickFixOperation::tokenAt(unsigned index) const
{ return _doc->translationUnit()->tokenAt(index); } { return _document->translationUnit()->tokenAt(index); }
int QuickFixOperation::startOf(unsigned index) const int QuickFixOperation::startOf(unsigned index) const
{ {
unsigned line, column; unsigned line, column;
_doc->translationUnit()->getPosition(tokenAt(index).begin(), &line, &column); _document->translationUnit()->getPosition(tokenAt(index).begin(), &line, &column);
return _textCursor.document()->findBlockByNumber(line - 1).position() + column - 1; return _textCursor.document()->findBlockByNumber(line - 1).position() + column - 1;
} }
@@ -650,7 +657,7 @@ int QuickFixOperation::startOf(const CPlusPlus::AST *ast) const
int QuickFixOperation::endOf(unsigned index) const int QuickFixOperation::endOf(unsigned index) const
{ {
unsigned line, column; unsigned line, column;
_doc->translationUnit()->getPosition(tokenAt(index).end(), &line, &column); _document->translationUnit()->getPosition(tokenAt(index).end(), &line, &column);
return _textCursor.document()->findBlockByNumber(line - 1).position() + column - 1; return _textCursor.document()->findBlockByNumber(line - 1).position() + column - 1;
} }
@@ -805,12 +812,12 @@ int CPPQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable)
if (path.isEmpty()) if (path.isEmpty())
return -1; return -1;
QSharedPointer<RewriteLogicalAndOp> rewriteLogicalAndOp(new RewriteLogicalAndOp(info.doc, info.snapshot, _editor)); QSharedPointer<RewriteLogicalAndOp> rewriteLogicalAndOp(new RewriteLogicalAndOp());
QSharedPointer<SplitIfStatementOp> splitIfStatementOp(new SplitIfStatementOp(info.doc, info.snapshot, _editor)); QSharedPointer<SplitIfStatementOp> splitIfStatementOp(new SplitIfStatementOp());
QSharedPointer<MoveDeclarationOutOfIfOp> moveDeclarationOutOfIfOp(new MoveDeclarationOutOfIfOp(info.doc, info.snapshot, _editor)); QSharedPointer<MoveDeclarationOutOfIfOp> moveDeclarationOutOfIfOp(new MoveDeclarationOutOfIfOp());
QSharedPointer<MoveDeclarationOutOfWhileOp> moveDeclarationOutOfWhileOp(new MoveDeclarationOutOfWhileOp(info.doc, info.snapshot, _editor)); QSharedPointer<MoveDeclarationOutOfWhileOp> moveDeclarationOutOfWhileOp(new MoveDeclarationOutOfWhileOp());
QSharedPointer<SplitSimpleDeclarationOp> splitSimpleDeclarationOp(new SplitSimpleDeclarationOp(info.doc, info.snapshot, _editor)); QSharedPointer<SplitSimpleDeclarationOp> splitSimpleDeclarationOp(new SplitSimpleDeclarationOp());
QSharedPointer<AddBracesToIfOp> addBracesToIfOp(new AddBracesToIfOp(info.doc, info.snapshot, _editor)); QSharedPointer<AddBracesToIfOp> addBracesToIfOp(new AddBracesToIfOp());
QList<QuickFixOperationPtr> candidates; QList<QuickFixOperationPtr> candidates;
candidates.append(rewriteLogicalAndOp); candidates.append(rewriteLogicalAndOp);
@@ -823,6 +830,9 @@ int CPPQuickFixCollector::startCompletion(TextEditor::ITextEditable *editable)
QMap<int, QList<QuickFixOperationPtr> > matchedOps; QMap<int, QList<QuickFixOperationPtr> > matchedOps;
foreach (QuickFixOperationPtr op, candidates) { foreach (QuickFixOperationPtr op, candidates) {
op->setSnapshot(info.snapshot);
op->setDocument(info.doc);
op->setEditor(_editor);
op->setTextCursor(_editor->textCursor()); op->setTextCursor(_editor->textCursor());
int priority = op->match(path); int priority = op->match(path);
if (priority != -1) if (priority != -1)

View File

@@ -56,17 +56,20 @@ class QuickFixOperation
Q_DISABLE_COPY(QuickFixOperation) Q_DISABLE_COPY(QuickFixOperation)
public: public:
QuickFixOperation(CPlusPlus::Document::Ptr doc, QuickFixOperation();
const CPlusPlus::Snapshot &snapshot,
CPPEditor *editor);
virtual ~QuickFixOperation(); virtual ~QuickFixOperation();
virtual QString description() const = 0; virtual QString description() const = 0;
virtual int match(const QList<CPlusPlus::AST *> &path) = 0; virtual int match(const QList<CPlusPlus::AST *> &path) = 0;
CPlusPlus::Document::Ptr document() const { return _doc; } CPlusPlus::Document::Ptr document() const;
CPlusPlus::Snapshot snapshot() const { return _snapshot; } void setDocument(CPlusPlus::Document::Ptr document);
CPlusPlus::Snapshot snapshot() const;
void setSnapshot(const CPlusPlus::Snapshot &snapshot);
CPPEditor *editor() const;
void setEditor(CPPEditor *editor);
QTextCursor textCursor() const; QTextCursor textCursor() const;
void setTextCursor(const QTextCursor &cursor); void setTextCursor(const QTextCursor &cursor);
@@ -74,7 +77,6 @@ public:
int selectionStart() const; int selectionStart() const;
int selectionEnd() const; int selectionEnd() const;
CPPEditor *editor() const;
const Utils::ChangeSet &changeSet() const; const Utils::ChangeSet &changeSet() const;
CPlusPlus::AST *topLevelNode() const; CPlusPlus::AST *topLevelNode() const;
@@ -117,7 +119,7 @@ protected:
void reindent(const Range &range); void reindent(const Range &range);
private: private:
CPlusPlus::Document::Ptr _doc; CPlusPlus::Document::Ptr _document;
CPlusPlus::Snapshot _snapshot; CPlusPlus::Snapshot _snapshot;
QTextCursor _textCursor; QTextCursor _textCursor;
Utils::ChangeSet _changeSet; Utils::ChangeSet _changeSet;