summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/BackwardsScanner.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2009-12-08 11:26:05 +0100
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2009-12-08 11:26:05 +0100
commitd20cdc64e3d8f23ac404e3474fdddca847c4ce8a (patch)
treec647d8e820a61de7d05077b882fa82f51609a273 /src/libs/cplusplus/BackwardsScanner.cpp
parentb63e6e939d16241e30b9a1a638c2fcc5efe9c71d (diff)
parent4bbb9219e9c29af8abad5eedc394dc9472d67e29 (diff)
downloadqt-creator-d20cdc64e3d8f23ac404e3474fdddca847c4ce8a.tar.gz
Merge remote branch 'origin/1.3'
Diffstat (limited to 'src/libs/cplusplus/BackwardsScanner.cpp')
-rw-r--r--src/libs/cplusplus/BackwardsScanner.cpp12
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);
}