forked from qt-creator/qt-creator
qmljs: differnt language constants for the different qml flavors
Added separated qbs, qmltypes, QtQuick1, and QtQuick2 and "generic" Qml languages. Cleaned up the mime types a bit, preparing for registered mime types. Change-Id: I0e484c93e003176cd659acc546baa6d024defa19 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This commit is contained in:
@@ -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()) {
|
||||
@@ -127,6 +142,8 @@ Document::Language Document::guessLanguageFromSuffix(const QString &fileName)
|
||||
{
|
||||
if (fileName.endsWith(QLatin1String(".qml"), Qt::CaseInsensitive))
|
||||
return QmlLanguage;
|
||||
if (fileName.endsWith(QLatin1String(".qbs"), Qt::CaseInsensitive))
|
||||
return QmlQbsLanguage;
|
||||
if (fileName.endsWith(QLatin1String(".js"), Qt::CaseInsensitive))
|
||||
return JavaScriptLanguage;
|
||||
if (fileName.endsWith(QLatin1String(".json"), Qt::CaseInsensitive))
|
||||
@@ -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);
|
||||
|
Reference in New Issue
Block a user