forked from qt-creator/qt-creator
qmljs: improve handling of qml dialects
Language::Enum -> QmlDialect * class instead of enum * moved Language specific operations to it (from Document) * nicer handling QStringList -> PathsAndLanguages * store language along with path, to perform a correct scan and improve path handling Change-Id: If69d35c63cfeb48aa670b51870916cd0c40f1916 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
@@ -112,21 +112,21 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
{
|
||||
QHash<QString,QString> myReplacements = replacements;
|
||||
|
||||
bundles.mergeBundleForLanguage(Language::QmlQbs, defaultQbsBundle());
|
||||
bundles.mergeBundleForLanguage(Language::QmlTypeInfo, defaultQmltypesBundle());
|
||||
bundles.mergeBundleForLanguage(Language::QmlProject, defaultQmlprojectBundle());
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQbs, defaultQbsBundle());
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlTypeInfo, defaultQmltypesBundle());
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlProject, defaultQmlprojectBundle());
|
||||
|
||||
QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(kit);
|
||||
if (!qtVersion) {
|
||||
QmlBundle b1(defaultQt4QtQuick1Bundle());
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b1);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, b1);
|
||||
bundles.mergeBundleForLanguage(Dialect::Qml, b1);
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick1, b1);
|
||||
QmlBundle b11(defaultQt5QtQuick1Bundle());
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b11);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, b11);
|
||||
bundles.mergeBundleForLanguage(Dialect::Qml, b11);
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick1, b11);
|
||||
QmlBundle b2(defaultQt5QtQuick2Bundle());
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b2);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick2, b2);
|
||||
bundles.mergeBundleForLanguage(Dialect::Qml, b2);
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick2, b2);
|
||||
return;
|
||||
}
|
||||
QString qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
|
||||
@@ -157,8 +157,8 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
qtQuick1Bundle.merge(defaultQt5QtQuick1Bundle());
|
||||
}
|
||||
qtQuick1Bundle.replaceVars(myReplacements);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Dialect::Qml, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick1, qtQuick1Bundle);
|
||||
}
|
||||
if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_2))) {
|
||||
myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtQmlPath);
|
||||
@@ -179,8 +179,8 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
qtQuick2Bundle.merge(defaultQt5QtQuick2Bundle());
|
||||
}
|
||||
qtQuick2Bundle.replaceVars(myReplacements);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick2, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Dialect::Qml, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Dialect::QmlQtQuick2, qtQuick2Bundle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -174,26 +174,26 @@ void QmlJSTools::setupProjectInfoQmlBundles(ModelManagerInterface::ProjectInfo &
|
||||
}
|
||||
}
|
||||
|
||||
QHash<QString,QmlJS::Language::Enum> ModelManager::languageForSuffix() const
|
||||
QHash<QString,QmlJS::Dialect> ModelManager::languageForSuffix() const
|
||||
{
|
||||
QHash<QString,QmlJS::Language::Enum> res = ModelManagerInterface::languageForSuffix();
|
||||
QHash<QString,QmlJS::Dialect> res = ModelManagerInterface::languageForSuffix();
|
||||
|
||||
if (ICore::instance()) {
|
||||
MimeType jsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JS_MIMETYPE));
|
||||
foreach (const QString &suffix, jsSourceTy.suffixes())
|
||||
res[suffix] = Language::JavaScript;
|
||||
res[suffix] = Dialect::JavaScript;
|
||||
MimeType qmlSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QML_MIMETYPE));
|
||||
foreach (const QString &suffix, qmlSourceTy.suffixes())
|
||||
res[suffix] = Language::Qml;
|
||||
res[suffix] = Dialect::Qml;
|
||||
MimeType qbsSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QBS_MIMETYPE));
|
||||
foreach (const QString &suffix, qbsSourceTy.suffixes())
|
||||
res[suffix] = Language::QmlQbs;
|
||||
res[suffix] = Dialect::QmlQbs;
|
||||
MimeType qmlProjectSourceTy = MimeDatabase::findByType(QLatin1String(Constants::QMLPROJECT_MIMETYPE));
|
||||
foreach (const QString &suffix, qmlProjectSourceTy.suffixes())
|
||||
res[suffix] = Language::QmlProject;
|
||||
res[suffix] = Dialect::QmlProject;
|
||||
MimeType jsonSourceTy = MimeDatabase::findByType(QLatin1String(Constants::JSON_MIMETYPE));
|
||||
foreach (const QString &suffix, jsonSourceTy.suffixes())
|
||||
res[suffix] = Language::Json;
|
||||
res[suffix] = Dialect::Json;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@@ -226,7 +226,7 @@ void ModelManager::delayedInitialization()
|
||||
SLOT(updateDefaultProjectInfo()));
|
||||
|
||||
QmlJS::ViewerContext qbsVContext;
|
||||
qbsVContext.language = Language::QmlQbs;
|
||||
qbsVContext.language = Dialect::QmlQbs;
|
||||
qbsVContext.maybeAddPath(ICore::resourcePath() + QLatin1String("/qbs"));
|
||||
setDefaultVContext(qbsVContext);
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ public:
|
||||
|
||||
void delayedInitialization();
|
||||
protected:
|
||||
QHash<QString, QmlJS::Language::Enum> languageForSuffix() const QTC_OVERRIDE;
|
||||
QHash<QString, QmlJS::Dialect> languageForSuffix() const QTC_OVERRIDE;
|
||||
void writeMessageInternal(const QString &msg) const QTC_OVERRIDE;
|
||||
WorkingCopy workingCopyInternal() const QTC_OVERRIDE;
|
||||
void addTaskInternal(QFuture<void> result, const QString &msg, const char *taskId) const QTC_OVERRIDE;
|
||||
|
||||
@@ -124,7 +124,7 @@ QmlJSRefactoringFile::QmlJSRefactoringFile(const QString &fileName, const QShare
|
||||
: RefactoringFile(fileName, data)
|
||||
{
|
||||
// the RefactoringFile is invalid if its not for a file with qml or js code
|
||||
if (ModelManagerInterface::guessLanguageOfFile(fileName) == Language::NoLanguage)
|
||||
if (ModelManagerInterface::guessLanguageOfFile(fileName) == Dialect::NoLanguage)
|
||||
m_fileName.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user