forked from qt-creator/qt-creator
qmljs: added qmljsconstants.h
Moved Document::Language, Import::Type and StaticAnalysis::Severity enums to qmljsconstants.h and renamed values removing the redundant part. Thus the effective length changed little or improved (Document::QmlLanguage => Language::Qml). The separate file allows better reuse of enum values without introducing circular dependencies. Change-Id: I5186d7c04f5d3f6c289068b919be5ff1ff118326 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <qmljs/qmljsbundle.h>
|
||||
#include <qmljs/qmljsconstants.h>
|
||||
#include <qtsupport/qtkitinformation.h>
|
||||
#include <qtsupport/qtsupportconstants.h>
|
||||
|
||||
@@ -39,10 +40,10 @@
|
||||
namespace QmlJSTools {
|
||||
|
||||
namespace {
|
||||
typedef QmlJS::Document::Language Language;
|
||||
typedef QmlJS::QmlBundle QmlBundle;
|
||||
typedef QmlJS::QmlLanguageBundles QmlLanguageBundles;
|
||||
}
|
||||
using namespace QmlJS;
|
||||
|
||||
/*!
|
||||
\class QmlJSEditor::BasicBundleProvider
|
||||
@@ -106,27 +107,26 @@ QmlBundle BasicBundleProvider::defaultQmlprojectBundle()
|
||||
}
|
||||
|
||||
void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
, QmlJS::QmlLanguageBundles &bundles
|
||||
, QmlLanguageBundles &bundles
|
||||
, const QHash<QString,QString> &replacements)
|
||||
{
|
||||
typedef QmlJS::Document Doc;
|
||||
QHash<QString,QString> myReplacements = replacements;
|
||||
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQbsLanguage, defaultQbsBundle());
|
||||
bundles.mergeBundleForLanguage(Doc::QmlTypeInfoLanguage, defaultQmltypesBundle());
|
||||
bundles.mergeBundleForLanguage(Doc::QmlProjectLanguage, defaultQmlprojectBundle());
|
||||
bundles.mergeBundleForLanguage(Language::QmlQbs, defaultQbsBundle());
|
||||
bundles.mergeBundleForLanguage(Language::QmlTypeInfo, defaultQmltypesBundle());
|
||||
bundles.mergeBundleForLanguage(Language::QmlProject, defaultQmlprojectBundle());
|
||||
|
||||
QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitInformation::qtVersion(kit);
|
||||
if (!qtVersion) {
|
||||
QmlBundle b1(defaultQt4QtQuick1Bundle());
|
||||
bundles.mergeBundleForLanguage(Doc::QmlLanguage, b1);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, b1);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b1);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, b1);
|
||||
QmlBundle b11(defaultQt5QtQuick1Bundle());
|
||||
bundles.mergeBundleForLanguage(Doc::QmlLanguage, b11);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, b11);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b11);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, b11);
|
||||
QmlBundle b2(defaultQt5QtQuick2Bundle());
|
||||
bundles.mergeBundleForLanguage(Doc::QmlLanguage, b2);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQtQuick2Language, b2);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, b2);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick2, b2);
|
||||
return;
|
||||
}
|
||||
QString qtImportsPath = qtVersion->qmakeProperty("QT_INSTALL_IMPORTS");
|
||||
@@ -150,15 +150,15 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
qtQuick1Bundle.merge(bAtt);
|
||||
}
|
||||
if (!qtQuick1Bundle.supportedImports().contains(QLatin1String("QtQuick 1."),
|
||||
QmlJS::PersistentTrie::Partial)) {
|
||||
PersistentTrie::Partial)) {
|
||||
if (qtVersion->qtVersion().majorVersion == 4)
|
||||
qtQuick1Bundle.merge(defaultQt4QtQuick1Bundle());
|
||||
else if (qtVersion->qtVersion().majorVersion > 4)
|
||||
qtQuick1Bundle.merge(defaultQt5QtQuick1Bundle());
|
||||
}
|
||||
qtQuick1Bundle.replaceVars(myReplacements);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlLanguage, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQtQuick1Language, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, qtQuick1Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick1, qtQuick1Bundle);
|
||||
}
|
||||
if (features.contains(Core::Feature(QtSupport::Constants::FEATURE_QT_QUICK_2))) {
|
||||
myReplacements.insert(QLatin1String("$(CURRENT_DIRECTORY)"), qtQmlPath);
|
||||
@@ -175,12 +175,12 @@ void BasicBundleProvider::mergeBundlesForKit(ProjectExplorer::Kit *kit
|
||||
qtQuick2Bundle.merge(bAtt);
|
||||
}
|
||||
if (!qtQuick2Bundle.supportedImports().contains(QLatin1String("QtQuick 2."),
|
||||
QmlJS::PersistentTrie::Partial)) {
|
||||
PersistentTrie::Partial)) {
|
||||
qtQuick2Bundle.merge(defaultQt5QtQuick2Bundle());
|
||||
}
|
||||
qtQuick2Bundle.replaceVars(myReplacements);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlLanguage, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Doc::QmlQtQuick2Language, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::Qml, qtQuick2Bundle);
|
||||
bundles.mergeBundleForLanguage(Language::QmlQtQuick2, qtQuick2Bundle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ static void mergeSuffixes(QStringList &l1, const QStringList &l2)
|
||||
l1 = l2;
|
||||
}
|
||||
|
||||
QmlJS::Document::Language QmlJSTools::languageOfFile(const QString &fileName)
|
||||
QmlJS::Language::Enum QmlJSTools::languageOfFile(const QString &fileName)
|
||||
{
|
||||
QStringList jsSuffixes(QLatin1String("js"));
|
||||
QStringList qmlSuffixes(QLatin1String("qml"));
|
||||
@@ -202,14 +202,14 @@ QmlJS::Document::Language QmlJSTools::languageOfFile(const QString &fileName)
|
||||
const QFileInfo info(fileName);
|
||||
const QString fileSuffix = info.suffix();
|
||||
if (jsSuffixes.contains(fileSuffix))
|
||||
return QmlJS::Document::JavaScriptLanguage;
|
||||
return QmlJS::Language::JavaScript;
|
||||
if (qbsSuffixes.contains(fileSuffix))
|
||||
return QmlJS::Document::QmlQbsLanguage;
|
||||
return QmlJS::Language::QmlQbs;
|
||||
if (qmlSuffixes.contains(fileSuffix) || qmlProjectSuffixes.contains(fileSuffix))
|
||||
return QmlJS::Document::QmlLanguage;
|
||||
return QmlJS::Language::Qml;
|
||||
if (jsonSuffixes.contains(fileSuffix))
|
||||
return QmlJS::Document::JsonLanguage;
|
||||
return QmlJS::Document::UnknownLanguage;
|
||||
return QmlJS::Language::Json;
|
||||
return QmlJS::Language::Unknown;
|
||||
}
|
||||
|
||||
QStringList QmlJSTools::qmlAndJsGlobPatterns()
|
||||
@@ -666,23 +666,23 @@ static void findNewFileImports(const Document::Ptr &doc, const Snapshot &snapsho
|
||||
// scan files and directories that are explicitly imported
|
||||
foreach (const ImportInfo &import, doc->bind()->imports()) {
|
||||
const QString &importName = import.path();
|
||||
if (import.type() == ImportInfo::FileImport) {
|
||||
if (import.type() == ImportType::File) {
|
||||
if (! snapshot.document(importName))
|
||||
*importedFiles += importName;
|
||||
} else if (import.type() == ImportInfo::DirectoryImport) {
|
||||
} else if (import.type() == ImportType::Directory) {
|
||||
if (snapshot.documentsInDirectory(importName).isEmpty()) {
|
||||
if (! scannedPaths->contains(importName)) {
|
||||
*importedFiles += qmlFilesInDirectory(importName);
|
||||
scannedPaths->insert(importName);
|
||||
}
|
||||
}
|
||||
} else if (import.type() == ImportInfo::QrcFileImport) {
|
||||
} else if (import.type() == ImportType::QrcFile) {
|
||||
QStringList importPaths = ModelManagerInterface::instance()->filesAtQrcPath(importName);
|
||||
foreach (const QString &importPath, importPaths) {
|
||||
if (! snapshot.document(importPath))
|
||||
*importedFiles += importPath;
|
||||
}
|
||||
} else if (import.type() == ImportInfo::QrcDirectoryImport) {
|
||||
} else if (import.type() == ImportType::QrcDirectory) {
|
||||
QMapIterator<QString,QStringList> dirContents(ModelManagerInterface::instance()->filesInQrcPath(importName));
|
||||
while (dirContents.hasNext()) {
|
||||
dirContents.next();
|
||||
@@ -792,13 +792,13 @@ static void findNewLibraryImports(const Document::Ptr &doc, const Snapshot &snap
|
||||
// scan dir and lib imports
|
||||
const QStringList importPaths = modelManager->importPaths();
|
||||
foreach (const ImportInfo &import, doc->bind()->imports()) {
|
||||
if (import.type() == ImportInfo::DirectoryImport) {
|
||||
if (import.type() == ImportType::Directory) {
|
||||
const QString targetPath = import.path();
|
||||
findNewQmlLibraryInPath(targetPath, snapshot, modelManager,
|
||||
importedFiles, scannedPaths, newLibraries);
|
||||
}
|
||||
|
||||
if (import.type() == ImportInfo::LibraryImport) {
|
||||
if (import.type() == ImportType::Library) {
|
||||
if (!import.version().isValid())
|
||||
continue;
|
||||
foreach (const QString &importPath, importPaths) {
|
||||
@@ -829,8 +829,8 @@ void ModelManager::parse(QFutureInterface<void> &future,
|
||||
|
||||
const QString fileName = files.at(i);
|
||||
|
||||
Document::Language language = languageOfFile(fileName);
|
||||
if (language == Document::UnknownLanguage) {
|
||||
Language::Enum language = languageOfFile(fileName);
|
||||
if (language == Language::Unknown) {
|
||||
if (fileName.endsWith(QLatin1String(".qrc")))
|
||||
modelManager->updateQrcFile(fileName);
|
||||
continue;
|
||||
@@ -951,7 +951,7 @@ void ModelManager::updateImportPaths()
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
activeBundles.mergeLanguageBundles(it.value().activeBundle);
|
||||
foreach (Document::Language l, it.value().activeBundle.languages()) {
|
||||
foreach (Language::Enum l, it.value().activeBundle.languages()) {
|
||||
foreach (const QString &path, it.value().activeBundle.bundleForLanguage(l)
|
||||
.searchPaths().stringList()) {
|
||||
const QString canonicalPath = QFileInfo(path).canonicalFilePath();
|
||||
@@ -964,7 +964,7 @@ void ModelManager::updateImportPaths()
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
extendedBundles.mergeLanguageBundles(it.value().extendedBundle);
|
||||
foreach (Document::Language l, it.value().extendedBundle.languages()) {
|
||||
foreach (Language::Enum l, it.value().extendedBundle.languages()) {
|
||||
foreach (const QString &path, it.value().extendedBundle.bundleForLanguage(l)
|
||||
.searchPaths().stringList()) {
|
||||
const QString canonicalPath = QFileInfo(path).canonicalFilePath();
|
||||
|
||||
@@ -58,7 +58,7 @@ class QrcParser;
|
||||
|
||||
namespace QmlJSTools {
|
||||
|
||||
QMLJSTOOLS_EXPORT QmlJS::Document::Language languageOfFile(const QString &fileName);
|
||||
QMLJSTOOLS_EXPORT QmlJS::Language::Enum languageOfFile(const QString &fileName);
|
||||
QMLJSTOOLS_EXPORT QStringList qmlAndJsGlobPatterns();
|
||||
|
||||
namespace Internal {
|
||||
|
||||
@@ -123,7 +123,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 (languageOfFile(fileName) == Document::UnknownLanguage)
|
||||
if (languageOfFile(fileName) == Language::Unknown)
|
||||
m_fileName.clear();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user