Changed the QML/JS editor to treat .qs/.js files as JavaScript, and invoke the appropriate parser for it.

Reviewed-by: Christian Kamm
This commit is contained in:
Erik Verbruggen
2010-01-18 12:38:36 +01:00
committed by Tim Jenssen
parent 2dfe4f620c
commit 0f8126f62d
9 changed files with 84 additions and 35 deletions

View File

@@ -27,21 +27,20 @@
**
**************************************************************************/
#include <QFile>
#include <QtConcurrentRun>
#include <qtconcurrent/runextensions.h>
#include <QTextStream>
#include "qmljseditorconstants.h"
#include "qmlmodelmanager.h"
#include <coreplugin/icore.h>
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/progressmanager/progressmanager.h>
#include <coreplugin/mimedatabase.h>
#include <texteditor/itexteditor.h>
#include "qmljseditorconstants.h"
#include "qmlmodelmanager.h"
#include <QtCore/QMetaType>
#include <QFile>
#include <QFileInfo>
#include <QtConcurrentRun>
#include <qtconcurrent/runextensions.h>
#include <QTextStream>
using namespace QmlJSEditor;
using namespace QmlJSEditor::Internal;
@@ -156,7 +155,21 @@ void QmlModelManager::parse(QFutureInterface<void> &future,
Qml::QmlDocument::Ptr doc = Qml::QmlDocument::create(fileName);
doc->setSource(contents);
doc->parse();
{
Core::MimeDatabase *db = Core::ICore::instance()->mimeDatabase();
Core::MimeType jsSourceTy = db->findByType(QLatin1String("application/javascript"));
Core::MimeType qmlSourceTy = db->findByType(QLatin1String("application/x-qml"));
const QFileInfo fileInfo(fileName);
if (jsSourceTy.matchesFile(fileInfo))
doc->parseJavaScript();
else if (qmlSourceTy.matchesFile(fileInfo))
doc->parseQml();
else
qWarning() << "Don't know how to treat" << fileName;
}
modelManager->emitDocumentUpdated(doc);
}