summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-09-30 17:15:31 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2009-09-30 17:17:11 +0200
commit9a2114338432cfc883b29f514daa847205184833 (patch)
tree8fd96ff0d0944b55b805c13579d262d7af63e975 /src/plugins/cppeditor
parente50d60ac97bb0080ee055574eada5a51a5bb907c (diff)
downloadqt-creator-9a2114338432cfc883b29f514daa847205184833.tar.gz
Implemented a simple(fast?) strategy to resolve macro references.
Diffstat (limited to 'src/plugins/cppeditor')
-rw-r--r--src/plugins/cppeditor/cppeditor.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index 9771328c5b..9a3022c577 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -57,6 +57,8 @@
#include <cplusplus/TypeOfExpression.h>
#include <cplusplus/MatchingText.h>
#include <cplusplus/BackwardsScanner.h>
+#include <cplusplus/FastPreprocessor.h>
+
#include <cpptools/cppmodelmanagerinterface.h>
#include <coreplugin/icore.h>
@@ -2064,10 +2066,13 @@ SemanticInfo SemanticHighlighter::semanticInfo(const Source &source)
if (!doc) {
const QByteArray preprocessedCode = source.snapshot.preprocessedCode(source.code, source.fileName);
+ snapshot = source.snapshot;
doc = source.snapshot.documentFromSource(preprocessedCode, source.fileName);
- doc->check();
- snapshot = source.snapshot;
+ FastMacroResolver fastMacroResolver(snapshot);
+ doc->control()->setMacroResolver(&fastMacroResolver);
+ doc->check();
+ doc->control()->setMacroResolver(0);
}
Control *control = doc->control();