forked from qt-creator/qt-creator
QuickFix: Don't separate createChanges from perform.
This will allow a more efficient and direct implementation.
This commit is contained in:
@@ -82,7 +82,7 @@ public:
|
||||
"CppEditor::DeclFromDef").arg(type));
|
||||
}
|
||||
|
||||
void createChanges()
|
||||
void perform()
|
||||
{
|
||||
CppRefactoringChanges *changes = refactoringChanges();
|
||||
|
||||
@@ -101,6 +101,7 @@ public:
|
||||
targetFile.indent(Utils::ChangeSet::Range(targetPosition2, targetPosition1));
|
||||
|
||||
changes->setActiveEditor(m_targetFileName, targetPosition1);
|
||||
changes->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -148,7 +148,7 @@ private:
|
||||
return QApplication::translate("CppTools::QuickFix", "Rewrite Using %1").arg(replacement);
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
if (negation) {
|
||||
@@ -162,6 +162,7 @@ private:
|
||||
}
|
||||
changes.replace(range(binary->binary_op_token), replacement);
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
};
|
||||
};
|
||||
@@ -243,7 +244,7 @@ private:
|
||||
return QApplication::translate("CppTools::QuickFix", "Rewrite Using %1").arg(replacement);
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -252,6 +253,7 @@ private:
|
||||
changes.replace(range(binary->binary_op_token), replacement);
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -321,7 +323,7 @@ private:
|
||||
pattern = mk->BinaryExpression(left, right);
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
changes.replace(range(pattern->binary_op_token), QLatin1String("||"));
|
||||
@@ -334,6 +336,7 @@ private:
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(pattern));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -422,7 +425,7 @@ private:
|
||||
"Split Declaration"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -450,6 +453,7 @@ private:
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(declaration));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -505,7 +509,7 @@ private:
|
||||
"Add Curly Braces"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -517,6 +521,7 @@ private:
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(start, end));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -576,7 +581,7 @@ private:
|
||||
pattern = mk.IfStatement(condition);
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -588,6 +593,7 @@ private:
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(pattern));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
ASTMatcher matcher;
|
||||
@@ -658,7 +664,7 @@ private:
|
||||
pattern = mk.WhileStatement(condition);
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -673,6 +679,7 @@ private:
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(pattern));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
ASTMatcher matcher;
|
||||
@@ -767,7 +774,7 @@ private:
|
||||
"Split if Statement"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
const Token binaryToken = state().tokenAt(condition->binary_op_token);
|
||||
|
||||
@@ -775,6 +782,7 @@ private:
|
||||
splitAndCondition();
|
||||
else
|
||||
splitOrCondition();
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
void splitAndCondition()
|
||||
@@ -905,7 +913,7 @@ private:
|
||||
"Enclose in QLatin1String(...)"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -921,6 +929,7 @@ private:
|
||||
changes.insert(endOf(literal), ")");
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1026,7 +1035,7 @@ private:
|
||||
setDescription(QApplication::translate("CppTools::QuickFix", "Mark as translateable"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -1044,6 +1053,7 @@ private:
|
||||
changes.insert(endOf(m_literal), QLatin1String(")"));
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1107,7 +1117,7 @@ private:
|
||||
"Convert to Objective-C String Literal"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
|
||||
@@ -1119,6 +1129,7 @@ private:
|
||||
}
|
||||
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1255,11 +1266,12 @@ private:
|
||||
, replacement(replacement)
|
||||
{}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
changes.replace(start, end, replacement);
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -1409,7 +1421,7 @@ private:
|
||||
}
|
||||
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
ChangeSet changes;
|
||||
int start = endOf(compoundStatement->lbrace_token);
|
||||
@@ -1418,6 +1430,7 @@ private:
|
||||
+ QLatin1String(":\nbreak;"));
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
refactoringChanges()->reindent(fileName(), range(compoundStatement));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
CompoundStatementAST *compoundStatement;
|
||||
@@ -1485,7 +1498,7 @@ private:
|
||||
"#include header file"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
Q_ASSERT(fwdClass != 0);
|
||||
|
||||
@@ -1544,6 +1557,7 @@ private:
|
||||
changes.insert(pos, QString("#include <%1>\n").arg(QFileInfo(best).fileName()));
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
}
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1599,7 +1613,7 @@ private:
|
||||
setDescription(QApplication::translate("CppTools::QuickFix", "Add local declaration"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
TypeOfExpression typeOfExpression;
|
||||
typeOfExpression.init(state().document(), state().snapshot(), state().context().bindings());
|
||||
@@ -1631,6 +1645,7 @@ private:
|
||||
refactoringChanges()->changeFile(fileName(), changes);
|
||||
}
|
||||
}
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -1687,7 +1702,7 @@ private:
|
||||
"Convert to Camel Case ..."));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
for (int i = 1; i < m_name.length(); ++i) {
|
||||
QCharRef c = m_name[i];
|
||||
@@ -1700,6 +1715,7 @@ private:
|
||||
}
|
||||
}
|
||||
static_cast<CppEditor::Internal::CPPEditor*>(state().editor())->renameUsagesNow(m_name);
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
static bool isConvertibleUnderscore(const QString &name, int pos)
|
||||
|
||||
@@ -92,7 +92,7 @@ public:
|
||||
"Move Component into '%1.qml'").arg(m_componentName));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
const QString newFileName = QFileInfo(fileName()).path()
|
||||
+ QDir::separator() + m_componentName + QLatin1String(".qml");
|
||||
@@ -117,6 +117,7 @@ public:
|
||||
|
||||
refactoringChanges()->createFile(newFileName, txt);
|
||||
refactoringChanges()->reindent(newFileName, range(0, txt.length() - 1));
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ private:
|
||||
"Split initializer"));
|
||||
}
|
||||
|
||||
virtual void createChanges()
|
||||
virtual void perform()
|
||||
{
|
||||
Q_ASSERT(_objectInitializer != 0);
|
||||
|
||||
@@ -112,6 +112,7 @@ private:
|
||||
file.indent(range(startPosition(_objectInitializer->lbraceToken),
|
||||
startPosition(_objectInitializer->rbraceToken)));
|
||||
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -123,12 +123,6 @@ void QuickFixOperation::setDescription(const QString &description)
|
||||
_description = description;
|
||||
}
|
||||
|
||||
void QuickFixOperation::perform()
|
||||
{
|
||||
createChanges();
|
||||
refactoringChanges()->apply();
|
||||
}
|
||||
|
||||
QuickFixFactory::QuickFixFactory(QObject *parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
|
||||
@@ -136,15 +136,10 @@ public:
|
||||
/*!
|
||||
Perform this quick-fix's operation.
|
||||
|
||||
This implementation will call perform and then RefactoringChanges::apply() .
|
||||
*/
|
||||
virtual void perform();
|
||||
|
||||
/*!
|
||||
Subclasses should implement this method to do the actual changes by using the
|
||||
RefactoringChanges.
|
||||
*/
|
||||
virtual void createChanges() = 0;
|
||||
virtual void perform() = 0;
|
||||
|
||||
protected:
|
||||
virtual TextEditor::RefactoringChanges *refactoringChanges() const = 0;
|
||||
|
||||
Reference in New Issue
Block a user