diff options
Diffstat (limited to 'src/libs/cplusplus/BackwardsScanner.cpp')
-rw-r--r-- | src/libs/cplusplus/BackwardsScanner.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/libs/cplusplus/BackwardsScanner.cpp b/src/libs/cplusplus/BackwardsScanner.cpp index 46fb15efe4..bca041c5d7 100644 --- a/src/libs/cplusplus/BackwardsScanner.cpp +++ b/src/libs/cplusplus/BackwardsScanner.cpp @@ -71,13 +71,14 @@ const SimpleToken &BackwardsScanner::fetchToken(int i) } else { ++_blocksTokenized; - const QString blockText = _block.text(); + QString blockText = _block.text(); + _text.prepend(QLatin1Char('\n')); _text.prepend(blockText); QList<SimpleToken> adaptedTokens; for (int i = 0; i < _tokens.size(); ++i) { SimpleToken t = _tokens.at(i); - t.setPosition(t.position() + blockText.length()); + t.setPosition(t.position() + blockText.length() + 1); t.setText(_text.midRef(t.position(), t.length())); adaptedTokens.append(t); } @@ -248,8 +249,9 @@ int BackwardsScanner::startOfBlock(int index) const return start; } -int BackwardsScanner::indentation(int index) const +QString BackwardsScanner::indentationString(int index) const { - SimpleToken newline = operator[](startOfLine(index + 1)); - return newline.position(); + const SimpleToken tokenAfterNewline = operator[](startOfLine(index + 1)); + const int newlinePos = qMax(0, _text.lastIndexOf(QLatin1Char('\n'), tokenAfterNewline.position())); + return _text.mid(newlinePos, tokenAfterNewline.position() - newlinePos); } |