diff options
Diffstat (limited to 'src/libs/qmljs/qmljsdocument.cpp')
-rw-r--r-- | src/libs/qmljs/qmljsdocument.cpp | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index 109cee3170..64cd32d80f 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -83,6 +83,21 @@ using namespace QmlJS::AST; */ +bool Document::isQmlLikeLanguage(Document::Language language) +{ + switch (language) { + case QmlLanguage: + case QmlQtQuick1Language: + case QmlQtQuick2Language: + case QmlQbsLanguage: + case QmlProjectLanguage: + case QmlTypeInfoLanguage: + return true; + default: + return false; + } +} + Document::Document(const QString &fileName, Language language) : _engine(0) , _ast(0) @@ -95,7 +110,7 @@ Document::Document(const QString &fileName, Language language) QFileInfo fileInfo(fileName); _path = QDir::cleanPath(fileInfo.absolutePath()); - if (language == QmlLanguage) { + if (isQmlLikeLanguage(language)) { _componentName = fileInfo.baseName(); if (! _componentName.isEmpty()) { @@ -125,11 +140,13 @@ Document::MutablePtr Document::create(const QString &fileName, Language language Document::Language Document::guessLanguageFromSuffix(const QString &fileName) { - if (fileName.endsWith(".qml", Qt::CaseInsensitive)) + if (fileName.endsWith(QLatin1String(".qml"), Qt::CaseInsensitive)) return QmlLanguage; - if (fileName.endsWith(".js", Qt::CaseInsensitive)) + if (fileName.endsWith(QLatin1String(".qbs"), Qt::CaseInsensitive)) + return QmlQbsLanguage; + if (fileName.endsWith(QLatin1String(".js"), Qt::CaseInsensitive)) return JavaScriptLanguage; - if (fileName.endsWith(".json", Qt::CaseInsensitive)) + if (fileName.endsWith(QLatin1String(".json"), Qt::CaseInsensitive)) return JsonLanguage; return UnknownLanguage; } @@ -141,7 +158,7 @@ Document::Ptr Document::ptr() const bool Document::isQmlDocument() const { - return _language == QmlLanguage; + return isQmlLikeLanguage(_language); } Document::Language Document::language() const @@ -259,7 +276,7 @@ bool Document::parse_helper(int startToken) Parser parser(_engine); QString source = _source; - lexer.setCode(source, /*line = */ 1, /*qmlMode = */_language == QmlLanguage); + lexer.setCode(source, /*line = */ 1, /*qmlMode = */isQmlLikeLanguage(_language)); CollectDirectives collectDirectives(path()); _engine->setDirectives(&collectDirectives); @@ -378,9 +395,8 @@ Document::MutablePtr Snapshot::documentFromSource( { Document::MutablePtr newDoc = Document::create(fileName, language); - if (Document::Ptr thisDocument = document(fileName)) { + if (Document::Ptr thisDocument = document(fileName)) newDoc->_editorRevision = thisDocument->_editorRevision; - } newDoc->setSource(code); return newDoc; |