diff options
author | Fawzi Mohamed <[email protected]> | 2014-07-22 19:06:44 +0200 |
---|---|---|
committer | Fawzi Mohamed <[email protected]> | 2014-07-30 15:07:35 +0200 |
commit | 02bdf30f458c0cdc19d1547e22029d41839e5100 (patch) | |
tree | 75e306de0dbcad10ac80c99dcb4dfa1bc4ad5be1 /src/libs/qmljs/qmljsmodelmanagerinterface.h | |
parent | faa0e5b96cdda7fbcf383e1210e01858303ea168 (diff) |
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 <[email protected]>
Diffstat (limited to 'src/libs/qmljs/qmljsmodelmanagerinterface.h')
-rw-r--r-- | src/libs/qmljs/qmljsmodelmanagerinterface.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/libs/qmljs/qmljsmodelmanagerinterface.h b/src/libs/qmljs/qmljsmodelmanagerinterface.h index 593fc833587..b1cac138371 100644 --- a/src/libs/qmljs/qmljsmodelmanagerinterface.h +++ b/src/libs/qmljs/qmljsmodelmanagerinterface.h @@ -36,9 +36,11 @@ #include "qmljsdocument.h" #include "qmljsqrcparser.h" #include "qmljsviewercontext.h" +#include "qmljsdialect.h" #include <cplusplus/CppDocument.h> #include <utils/environment.h> +#include <utils/fileutils.h> #include <QFuture> #include <QFutureSynchronizer> @@ -93,7 +95,7 @@ public: public: // attributes QPointer<ProjectExplorer::Project> project; QStringList sourceFiles; - QStringList importPaths; + PathsAndLanguages importPaths; QStringList activeResourceFiles; QStringList allResourceFiles; @@ -148,8 +150,8 @@ public: ModelManagerInterface(QObject *parent = 0); virtual ~ModelManagerInterface(); - static Language::Enum guessLanguageOfFile(const QString &fileName); - static QStringList globPatternsForLanguages(const QList<Language::Enum> languages); + static Dialect guessLanguageOfFile(const QString &fileName); + static QStringList globPatternsForLanguages(const QList<Dialect> languages); static ModelManagerInterface *instance(); static void writeWarning(const QString &msg); static WorkingCopy workingCopy(); @@ -182,7 +184,7 @@ public: void updateQrcFile(const QString &path); ProjectInfo projectInfoForPath(QString path) const; - QStringList importPaths() const; + PathsAndLanguages importPaths() const; QmlJS::QmlLanguageBundles activeBundles() const; QmlJS::QmlLanguageBundles extendedBundles() const; @@ -193,7 +195,7 @@ public: LibraryInfo builtins(const Document::Ptr &doc) const; ViewerContext completeVContext(const ViewerContext &vCtx, const Document::Ptr &doc = Document::Ptr(0)) const; - ViewerContext defaultVContext(Language::Enum language = Language::Qml, + ViewerContext defaultVContext(Dialect language = Dialect::Qml, const Document::Ptr &doc = Document::Ptr(0), bool autoComplete = true) const; void setDefaultVContext(const ViewerContext &vContext); @@ -223,7 +225,7 @@ protected slots: virtual void startCppQmlTypeUpdate(); protected: QMutex *mutex() const; - virtual QHash<QString,Language::Enum> languageForSuffix() const; + virtual QHash<QString,Dialect> languageForSuffix() const; virtual void writeMessageInternal(const QString &msg) const; virtual WorkingCopy workingCopyInternal() const; virtual void addTaskInternal(QFuture<void> result, const QString &msg, const char *taskId) const; @@ -233,26 +235,25 @@ protected: static void parseLoop(QSet<QString> &scannedPaths, QSet<QString> &newLibraries, WorkingCopy workingCopyInternal, QStringList files, ModelManagerInterface *modelManager, - QmlJS::Language::Enum mainLanguage, bool emitDocChangedOnDisk, + QmlJS::Dialect mainLanguage, bool emitDocChangedOnDisk, std::function<bool (qreal)> reportProgress); static void parse(QFutureInterface<void> &future, WorkingCopy workingCopyInternal, QStringList files, ModelManagerInterface *modelManager, - QmlJS::Language::Enum mainLanguage, + QmlJS::Dialect mainLanguage, bool emitDocChangedOnDisk); static void importScan(QFutureInterface<void> &future, WorkingCopy workingCopyInternal, - QStringList paths, + PathsAndLanguages paths, ModelManagerInterface *modelManager, - QmlJS::Language::Enum mainLanguage, bool emitDocChangedOnDisk); static void updateCppQmlTypes(QFutureInterface<void> &interface, ModelManagerInterface *qmlModelManager, CPlusPlus::Snapshot snapshot, QHash<QString, QPair<CPlusPlus::Document::Ptr, bool> > documents); - void maybeScan(const QStringList &importPaths, Language::Enum defaultLanguage); + void maybeScan(const PathsAndLanguages &importPaths); void updateImportPaths(); void loadQmlTypeDescriptionsInternal(const QString &path); void setDefaultProject(const ProjectInfo &pInfo, ProjectExplorer::Project *p); @@ -261,11 +262,11 @@ private: mutable QMutex m_mutex; QmlJS::Snapshot m_validSnapshot; QmlJS::Snapshot m_newestSnapshot; - QStringList m_allImportPaths; + PathsAndLanguages m_allImportPaths; QStringList m_defaultImportPaths; QmlJS::QmlLanguageBundles m_activeBundles; QmlJS::QmlLanguageBundles m_extendedBundles; - QHash<Language::Enum, QmlJS::ViewerContext> m_defaultVContexts; + QHash<Dialect, QmlJS::ViewerContext> m_defaultVContexts; bool m_shouldScanImports; QSet<QString> m_scannedPaths; |