diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 775b2ee4883..a25d67c60d0 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1474,37 +1474,13 @@ bool CPPEditor::isInComment(const QTextCursor &cursor) const return false; } -static CppTools::QtStyleCodeFormatter setupCodeFormatter(const TextEditor::TabSettings &ts) -{ - CppTools::QtStyleCodeFormatter codeFormatter; - codeFormatter.setIndentSize(ts.m_indentSize); - codeFormatter.setTabSize(ts.m_tabSize); - if (ts.m_indentBraces && ts.m_doubleIndentBlocks) { // gnu style - codeFormatter.setIndentSubstatementBraces(true); - codeFormatter.setIndentSubstatementStatements(true); - codeFormatter.setIndentDeclarationBraces(false); - codeFormatter.setIndentDeclarationMembers(true); - } else if (ts.m_indentBraces) { // whitesmiths style - codeFormatter.setIndentSubstatementBraces(true); - codeFormatter.setIndentSubstatementStatements(false); - codeFormatter.setIndentDeclarationBraces(true); - codeFormatter.setIndentDeclarationMembers(false); - } else { // default Qt style - codeFormatter.setIndentSubstatementBraces(false); - codeFormatter.setIndentSubstatementStatements(true); - codeFormatter.setIndentDeclarationBraces(false); - codeFormatter.setIndentDeclarationMembers(true); - } - return codeFormatter; -} - void CPPEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar) { Q_UNUSED(doc) Q_UNUSED(typedChar) const TabSettings &ts = tabSettings(); - CppTools::QtStyleCodeFormatter codeFormatter = setupCodeFormatter(ts); + CppTools::QtStyleCodeFormatter codeFormatter(ts); codeFormatter.updateStateUntil(block); const int depth = codeFormatter.indentFor(block); @@ -1522,7 +1498,7 @@ void CPPEditor::indent(QTextDocument *doc, const QTextCursor &cursor, QChar type const QTextBlock end = doc->findBlock(cursor.selectionEnd()).next(); const TabSettings &ts = tabSettings(); - CppTools::QtStyleCodeFormatter codeFormatter = setupCodeFormatter(ts); + CppTools::QtStyleCodeFormatter codeFormatter(ts); codeFormatter.updateStateUntil(block); QTextCursor tc = textCursor(); diff --git a/src/plugins/cppeditor/cpprefactoringchanges.cpp b/src/plugins/cppeditor/cpprefactoringchanges.cpp index 3aaebc74b06..6b500a73f04 100644 --- a/src/plugins/cppeditor/cpprefactoringchanges.cpp +++ b/src/plugins/cppeditor/cpprefactoringchanges.cpp @@ -104,7 +104,7 @@ void CppRefactoringChanges::indentSelection(const QTextCursor &selection) const const QTextBlock end = doc->findBlock(selection.selectionEnd()).next(); const TextEditor::TabSettings &tabSettings(TextEditor::TextEditorSettings::instance()->tabSettings()); - CppTools::QtStyleCodeFormatter codeFormatter; + CppTools::QtStyleCodeFormatter codeFormatter(tabSettings); codeFormatter.updateStateUntil(block); do { diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index 481df9b6acc..4164010fb9f 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -914,6 +915,32 @@ QtStyleCodeFormatter::QtStyleCodeFormatter() { } +QtStyleCodeFormatter::QtStyleCodeFormatter(const TextEditor::TabSettings &tabSettings) + : m_indentSize(tabSettings.m_indentSize) + , m_indentSubstatementBraces(false) + , m_indentSubstatementStatements(true) + , m_indentDeclarationBraces(false) + , m_indentDeclarationMembers(true) +{ + setTabSize(tabSettings.m_tabSize); + if (tabSettings.m_indentBraces && tabSettings.m_doubleIndentBlocks) { // gnu style + setIndentSubstatementBraces(true); + setIndentSubstatementStatements(true); + setIndentDeclarationBraces(false); + setIndentDeclarationMembers(true); + } else if (tabSettings.m_indentBraces) { // whitesmiths style + setIndentSubstatementBraces(true); + setIndentSubstatementStatements(false); + setIndentDeclarationBraces(true); + setIndentDeclarationMembers(false); + } else { // default Qt style + setIndentSubstatementBraces(false); + setIndentSubstatementStatements(true); + setIndentDeclarationBraces(false); + setIndentDeclarationMembers(true); + } +} + void QtStyleCodeFormatter::setIndentSize(int size) { m_indentSize = size; diff --git a/src/plugins/cpptools/cppcodeformatter.h b/src/plugins/cpptools/cppcodeformatter.h index 68671c9f9c9..a9a9aa7e06b 100644 --- a/src/plugins/cpptools/cppcodeformatter.h +++ b/src/plugins/cpptools/cppcodeformatter.h @@ -46,6 +46,10 @@ class QTextDocument; class QTextBlock; QT_END_NAMESPACE +namespace TextEditor { + class TabSettings; +} + namespace CppTools { namespace Internal { class CppCodeFormatterData; @@ -241,6 +245,7 @@ class CPPTOOLS_EXPORT QtStyleCodeFormatter : public CodeFormatter { public: QtStyleCodeFormatter(); + explicit QtStyleCodeFormatter(const TextEditor::TabSettings &tabSettings); void setIndentSize(int size); diff --git a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp index 9a831acfe40..3b49624be48 100644 --- a/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp +++ b/src/plugins/qmljseditor/qmljscomponentfromobjectdef.cpp @@ -118,7 +118,6 @@ public: changes.replace(start, end, m_componentName + QLatin1String(" {\n")); currentFile->change(changes); currentFile->indent(range(start, end + 1)); - } }; diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp index 6119e11999f..d3b41cb087d 100644 --- a/src/plugins/qmljseditor/qmljseditor.cpp +++ b/src/plugins/qmljseditor/qmljseditor.cpp @@ -1276,21 +1276,13 @@ bool QmlJSTextEditor::isClosingBrace(const QList &tokens) const return false; } -static QmlJSEditor::QtStyleCodeFormatter setupCodeFormatter(const TextEditor::TabSettings &ts) -{ - QmlJSEditor::QtStyleCodeFormatter codeFormatter; - codeFormatter.setIndentSize(ts.m_indentSize); - codeFormatter.setTabSize(ts.m_tabSize); - return codeFormatter; -} - void QmlJSTextEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedChar) { Q_UNUSED(doc) Q_UNUSED(typedChar) const TextEditor::TabSettings &ts = tabSettings(); - QmlJSEditor::QtStyleCodeFormatter codeFormatter = setupCodeFormatter(ts); + QmlJSEditor::QtStyleCodeFormatter codeFormatter(ts); codeFormatter.updateStateUntil(block); const int depth = codeFormatter.indentFor(block); diff --git a/src/plugins/qmljseditor/qmljseditorcodeformatter.cpp b/src/plugins/qmljseditor/qmljseditorcodeformatter.cpp index 638b4fdd730..05472535531 100644 --- a/src/plugins/qmljseditor/qmljseditorcodeformatter.cpp +++ b/src/plugins/qmljseditor/qmljseditorcodeformatter.cpp @@ -29,6 +29,8 @@ #include "qmljseditorcodeformatter.h" +#include + #include using namespace QmlJS; @@ -40,6 +42,12 @@ QtStyleCodeFormatter::QtStyleCodeFormatter() { } +QtStyleCodeFormatter::QtStyleCodeFormatter(const TextEditor::TabSettings &tabSettings) + : m_indentSize(tabSettings.m_indentSize) +{ + setTabSize(tabSettings.m_tabSize); +} + void QtStyleCodeFormatter::setIndentSize(int size) { m_indentSize = size; diff --git a/src/plugins/qmljseditor/qmljseditorcodeformatter.h b/src/plugins/qmljseditor/qmljseditorcodeformatter.h index a9aed6d05db..baf663c723b 100644 --- a/src/plugins/qmljseditor/qmljseditorcodeformatter.h +++ b/src/plugins/qmljseditor/qmljseditorcodeformatter.h @@ -35,12 +35,17 @@ #include #include +namespace TextEditor { + class TabSettings; +} + namespace QmlJSEditor { class QMLJSEDITOR_EXPORT QtStyleCodeFormatter : public QmlJS::CodeFormatter { public: QtStyleCodeFormatter(); + explicit QtStyleCodeFormatter(const TextEditor::TabSettings &tabSettings); void setIndentSize(int size); diff --git a/src/plugins/qmljseditor/qmljsrefactoringchanges.cpp b/src/plugins/qmljseditor/qmljsrefactoringchanges.cpp index d3f420fc693..4f99c3a7f58 100644 --- a/src/plugins/qmljseditor/qmljsrefactoringchanges.cpp +++ b/src/plugins/qmljseditor/qmljsrefactoringchanges.cpp @@ -54,7 +54,7 @@ void QmlJSRefactoringChanges::indentSelection(const QTextCursor &selection) cons const QTextBlock end = doc->findBlock(selection.selectionEnd()).next(); const TextEditor::TabSettings &tabSettings(TextEditor::TextEditorSettings::instance()->tabSettings()); - QtStyleCodeFormatter codeFormatter; + QtStyleCodeFormatter codeFormatter(tabSettings); codeFormatter.updateStateUntil(block); do {