summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ExpressionUnderCursor.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-06-04 09:36:05 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-06-04 09:36:05 +0200
commitc2393df02332618c8cf6159d9d6f6a40041ced89 (patch)
tree4230c145cc5fa6576310afebe989003151ed38d1 /src/libs/cplusplus/ExpressionUnderCursor.cpp
parent414d9fe3e0fe03f27432b9943e7b2bb5bc2f716c (diff)
downloadqt-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.cpp9
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();