diff --git a/src/libs/cplusplus/BackwardsScanner.cpp b/src/libs/cplusplus/BackwardsScanner.cpp index da12f3e599a2b6f039a6fdcc1479a9900d71045c..7f1f6cdfe6b9d816a656346e760b6d2ae5ae4c6f 100644 --- a/src/libs/cplusplus/BackwardsScanner.cpp +++ b/src/libs/cplusplus/BackwardsScanner.cpp @@ -131,6 +131,11 @@ int BackwardsScanner::previousBlockState(const QTextBlock &block) const return 0; } +int BackwardsScanner::size() const +{ + return _tokens.size(); +} + int BackwardsScanner::startOfMatchingBrace(int index) const { const BackwardsScanner &tk = *this; diff --git a/src/libs/cplusplus/BackwardsScanner.h b/src/libs/cplusplus/BackwardsScanner.h index b2e7414951e12d62d9d32d3dd5d0b08c2d0e1fae..d991906fc55703f0bb18aee92a7fad3dfbc6af84 100644 --- a/src/libs/cplusplus/BackwardsScanner.h +++ b/src/libs/cplusplus/BackwardsScanner.h @@ -69,6 +69,8 @@ public: int previousBlockState(const QTextBlock &block) const; + int size() const; + private: const SimpleToken &fetchToken(int i); diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp index 7260569dbb7bef336e0fc8c48df2cabfea4b03e6..dcec76f36735a6532bb6267b303f73be42c823fd 100644 --- a/src/plugins/cppeditor/cppeditor.cpp +++ b/src/plugins/cppeditor/cppeditor.cpp @@ -1579,7 +1579,8 @@ void CPPEditor::indentBlock(QTextDocument *doc, QTextBlock block, QChar typedCha tabSettings().indentLine(block, indent); return; } else if ((firstToken.is(T_PUBLIC) || firstToken.is(T_PROTECTED) || firstToken.is(T_PRIVATE) || - firstToken.is(T_Q_SIGNALS) || firstToken.is(T_Q_SLOTS)) && tk[1].is(T_COLON)) { + firstToken.is(T_Q_SIGNALS) || firstToken.is(T_Q_SLOTS)) && + tk.size() > 1 && tk[1].is(T_COLON)) { const int startOfBlock = tk.startOfBlock(0); if (startOfBlock != 0) { const int indent = tk.indentation(startOfBlock);