diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2015-02-15 23:43:26 +0200 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2015-02-20 12:54:49 +0000 |
commit | f3a2795c3bfc892695a46621e6bc97a2742d8766 (patch) | |
tree | f98bce607c287fb4bd077641632a71e77f89711c /src/libs/cplusplus/CppDocument.cpp | |
parent | 97cbfb95bbcebe06484edaeb446e52bec04626f3 (diff) | |
download | qt-creator-f3a2795c3bfc892695a46621e6bc97a2742d8766.tar.gz |
C++: Use correct features for document parsing
Task-number: QTCREATORBUG-8007
Change-Id: Ic96aaa433442812a99bac9d16bb9124d66762e8c
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/cplusplus/CppDocument.cpp')
-rw-r--r-- | src/libs/cplusplus/CppDocument.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp index 57b612e90a..b19a510bf7 100644 --- a/src/libs/cplusplus/CppDocument.cpp +++ b/src/libs/cplusplus/CppDocument.cpp @@ -283,15 +283,8 @@ Document::Document(const QString &fileName) const QByteArray localFileName = fileName.toUtf8(); const StringLiteral *fileId = _control->stringLiteral(localFileName.constData(), localFileName.size()); - LanguageFeatures features; - features.qtEnabled = true; - features.qtMocRunEnabled = true; - features.qtKeywordsEnabled = true; - features.cxx11Enabled = true; - features.objCEnabled = true; - features.c99Enabled = true; _translationUnit = new TranslationUnit(_control, fileId); - _translationUnit->setLanguageFeatures(features); + _translationUnit->setLanguageFeatures(LanguageFeatures::defaultFeatures()); (void) _control->switchTranslationUnit(_translationUnit); } @@ -596,6 +589,19 @@ void Document::setUtf8Source(const QByteArray &source) _translationUnit->setSource(_source.constBegin(), _source.size()); } +LanguageFeatures Document::languageFeatures() const +{ + if (TranslationUnit *tu = translationUnit()) + return tu->languageFeatures(); + return LanguageFeatures::defaultFeatures(); +} + +void Document::setLanguageFeatures(LanguageFeatures features) +{ + if (TranslationUnit *tu = translationUnit()) + tu->setLanguageFeatures(features); +} + void Document::startSkippingBlocks(unsigned utf16charsOffset) { _skippedBlocks.append(Block(0, 0, utf16charsOffset, 0)); @@ -767,6 +773,7 @@ Document::Ptr Snapshot::preprocessedDocument(const QByteArray &source, newDoc->_lastModified = thisDocument->_lastModified; newDoc->_resolvedIncludes = thisDocument->_resolvedIncludes; newDoc->_unresolvedIncludes = thisDocument->_unresolvedIncludes; + newDoc->setLanguageFeatures(thisDocument->languageFeatures()); } FastPreprocessor pp(*this); @@ -788,6 +795,7 @@ Document::Ptr Snapshot::documentFromSource(const QByteArray &preprocessedCode, newDoc->_unresolvedIncludes = thisDocument->_unresolvedIncludes; newDoc->_definedMacros = thisDocument->_definedMacros; newDoc->_macroUses = thisDocument->_macroUses; + newDoc->setLanguageFeatures(thisDocument->languageFeatures()); } newDoc->setUtf8Source(preprocessedCode); |