diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cpptools/cppcodeformatter.cpp | 14 | ||||
-rw-r--r-- | src/plugins/cpptools/cppcodeformatter.h | 8 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index 8ab36724ff..1bfb0a574a 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -794,6 +794,7 @@ void CodeFormatter::dump() QtStyleCodeFormatter::QtStyleCodeFormatter() : m_indentSize(4) + , m_style(QtStyle) { } @@ -805,6 +806,14 @@ void QtStyleCodeFormatter::setIndentSize(int size) } } +void QtStyleCodeFormatter::setCompoundStyle(CompoundStyle style) +{ + if (style != m_style) { + m_style = style; + invalidateCache(); + } +} + void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedIndentDepth) const { const State &parentState = state(); @@ -878,6 +887,8 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd break; case substatement_open: + if (m_style == WhitesmithsStyle) + break; if (parentState.type != switch_statement) *indentDepth += m_indentSize; break; @@ -908,6 +919,9 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd // undo the continuation indent of the parent *indentDepth = parentState.savedIndentDepth; *savedIndentDepth = *indentDepth; + // these styles want to indent braces + if (m_style == GnuStyle || m_style == WhitesmithsStyle) + *savedIndentDepth += m_indentSize; break; case maybe_else: { diff --git a/src/plugins/cpptools/cppcodeformatter.h b/src/plugins/cpptools/cppcodeformatter.h index 051b5f2aac..75a9c31095 100644 --- a/src/plugins/cpptools/cppcodeformatter.h +++ b/src/plugins/cpptools/cppcodeformatter.h @@ -182,12 +182,20 @@ public: void setIndentSize(int size); + enum CompoundStyle { + QtStyle, // don't indent braces, add indent for contained statements + WhitesmithsStyle, // add indent for braces, don't for the contained statements + GnuStyle // add indent for braces and again for contained statements + }; + void setCompoundStyle(CompoundStyle style); + protected: virtual void onEnter(int newState, int *indentDepth, int *savedIndentDepth) const; virtual void adjustIndent(const QList<CPlusPlus::Token> &tokens, int lexerState, int *indentDepth) const; private: int m_indentSize; + CompoundStyle m_style; }; } // namespace CppTools |