forked from qt-creator/qt-creator
QmlJS: Don't use full mime type detection to decide between qml/js.
Determining the mime type is too expensive - and for deciding between qml and js files comparing suffixes is sufficient. Reviewed-by: Friedemann Kleint
This commit is contained in:
@@ -367,6 +367,15 @@ static void findNewLibraryImports(const Document::Ptr &doc, const Snapshot &snap
|
||||
}
|
||||
}
|
||||
|
||||
static bool suffixMatches(const QString &fileName, const Core::MimeType &mimeType)
|
||||
{
|
||||
foreach (const QString &suffix, mimeType.suffixes()) {
|
||||
if (fileName.endsWith(suffix, Qt::CaseInsensitive))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ModelManager::parse(QFutureInterface<void> &future,
|
||||
WorkingCopy workingCopy,
|
||||
QStringList files,
|
||||
@@ -395,19 +404,13 @@ void ModelManager::parse(QFutureInterface<void> &future,
|
||||
|
||||
const QString fileName = files.at(i);
|
||||
|
||||
const QFileInfo fileInfo(fileName);
|
||||
Core::MimeType fileMimeTy;
|
||||
|
||||
bool isQmlFile = true;
|
||||
|
||||
if (db) {
|
||||
fileMimeTy = db->findByFile(fileInfo);
|
||||
|
||||
if (matchesMimeType(fileMimeTy, jsSourceTy))
|
||||
if (suffixMatches(fileName, jsSourceTy)) {
|
||||
isQmlFile = false;
|
||||
|
||||
else if (! matchesMimeType(fileMimeTy, qmlSourceTy))
|
||||
} else if (! suffixMatches(fileName, qmlSourceTy)) {
|
||||
continue; // skip it. it's not a QML or a JS file.
|
||||
}
|
||||
} else {
|
||||
if (fileName.contains(QLatin1String(".js"), Qt::CaseInsensitive))
|
||||
isQmlFile = false;
|
||||
|
||||
Reference in New Issue
Block a user