diff options
author | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-06-04 09:36:05 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@nokia.com> | 2010-06-04 09:36:05 +0200 |
commit | c2393df02332618c8cf6159d9d6f6a40041ced89 (patch) | |
tree | 4230c145cc5fa6576310afebe989003151ed38d1 /src/libs/cplusplus/ExpressionUnderCursor.cpp | |
parent | 414d9fe3e0fe03f27432b9943e7b2bb5bc2f716c (diff) | |
download | qt-creator-c2393df02332618c8cf6159d9d6f6a40041ced89.tar.gz |
Introduced a token cache for the C++ editor.
This should speed things up a bit, because before, the line was tokenized at
least 3 times.
Diffstat (limited to 'src/libs/cplusplus/ExpressionUnderCursor.cpp')
-rw-r--r-- | src/libs/cplusplus/ExpressionUnderCursor.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libs/cplusplus/ExpressionUnderCursor.cpp b/src/libs/cplusplus/ExpressionUnderCursor.cpp index c840ad398d..c1b439ed09 100644 --- a/src/libs/cplusplus/ExpressionUnderCursor.cpp +++ b/src/libs/cplusplus/ExpressionUnderCursor.cpp @@ -30,6 +30,7 @@ #include "ExpressionUnderCursor.h" #include "SimpleLexer.h" #include "BackwardsScanner.h" +#include "TokenCache.h" #include <Token.h> #include <QTextCursor> @@ -37,8 +38,8 @@ using namespace CPlusPlus; -ExpressionUnderCursor::ExpressionUnderCursor() - : _jumpedComma(false) +ExpressionUnderCursor::ExpressionUnderCursor(TokenCache *tokenCache) + : _tokenCache(tokenCache), _jumpedComma(false) { } ExpressionUnderCursor::~ExpressionUnderCursor() @@ -218,7 +219,7 @@ bool ExpressionUnderCursor::isAccessToken(const SimpleToken &tk) QString ExpressionUnderCursor::operator()(const QTextCursor &cursor) { - BackwardsScanner scanner(cursor); + BackwardsScanner scanner(_tokenCache, cursor); _jumpedComma = false; @@ -232,7 +233,7 @@ QString ExpressionUnderCursor::operator()(const QTextCursor &cursor) int ExpressionUnderCursor::startOfFunctionCall(const QTextCursor &cursor) const { - BackwardsScanner scanner(cursor); + BackwardsScanner scanner(_tokenCache, cursor); int index = scanner.startToken(); |