From be563abf68c5c8561d9d6c0b765941b6123fd52e Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Fri, 24 Sep 2010 15:07:42 +0200 Subject: [PATCH] C++ indenter: Simplify debugging by making dump() more verbose. --- src/plugins/cpptools/cppcodeformatter.cpp | 5 ++++- src/plugins/cpptools/cppcodeformatter.h | 5 ++++- tests/auto/cplusplus/codeformatter/codeformatter.pro | 1 + 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index b242f6c490d..87811c01cdc 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -36,6 +36,7 @@ #include <texteditor/tabsettings.h> #include <QtCore/QDebug> +#include <QtCore/QMetaEnum> #include <QtGui/QTextDocument> #include <QtGui/QTextCursor> #include <QtGui/QTextBlock> @@ -907,10 +908,12 @@ int CodeFormatter::tokenizeBlock(const QTextBlock &block, bool *endedJoined) void CodeFormatter::dump() const { + QMetaEnum metaEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("StateType")); + qDebug() << "Current token index" << m_tokenIndex; qDebug() << "Current state:"; foreach (State s, m_currentState) { - qDebug() << s.type << s.savedIndentDepth << s.savedPaddingDepth; + qDebug() << metaEnum.valueToKey(s.type) << s.savedIndentDepth << s.savedPaddingDepth; } qDebug() << "Current indent depth:" << m_indentDepth; qDebug() << "Current padding depth:" << m_paddingDepth; diff --git a/src/plugins/cpptools/cppcodeformatter.h b/src/plugins/cpptools/cppcodeformatter.h index bb46fc6abc5..fa306d2c340 100644 --- a/src/plugins/cpptools/cppcodeformatter.h +++ b/src/plugins/cpptools/cppcodeformatter.h @@ -57,6 +57,7 @@ class CppCodeFormatterData; class CPPTOOLS_EXPORT CodeFormatter { + Q_GADGET public: CodeFormatter(); virtual ~CodeFormatter(); @@ -98,7 +99,7 @@ protected: virtual void saveLexerState(QTextBlock *block, int state) const = 0; virtual int loadLexerState(const QTextBlock &block) const = 0; -protected: +public: // must be public to make Q_GADGET introspection work enum StateType { invalid = 0, @@ -170,7 +171,9 @@ protected: expression, // after a '=' in a declaration_start once we're sure it's not '= {' initializer, // after a '=' in a declaration start }; + Q_ENUMS(StateType) +protected: class State { public: State() diff --git a/tests/auto/cplusplus/codeformatter/codeformatter.pro b/tests/auto/cplusplus/codeformatter/codeformatter.pro index 6ebd7722237..6aa0259f588 100644 --- a/tests/auto/cplusplus/codeformatter/codeformatter.pro +++ b/tests/auto/cplusplus/codeformatter/codeformatter.pro @@ -12,6 +12,7 @@ SOURCES += \ $$SRCDIR/plugins/texteditor/basetextdocumentlayout.cpp HEADERS += \ + $$SRCDIR/plugins/cpptools/cppcodeformatter.h \ $$SRCDIR/plugins/texteditor/basetextdocumentlayout.h INCLUDEPATH += $$SRCDIR/plugins $$SRCDIR/libs -- GitLab