forked from qt-creator/qt-creator
qmljs: use QRegularExpression to parse imports.
Use a regular expression to get the module name, major version and minor version from a string representing the module import. Change-Id: I99f85ff4844cdfba142b45b4881241a1d40b772e Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
This commit is contained in:
committed by
Marco Benelli
parent
f22e8d6fea
commit
aecc590390
@@ -34,6 +34,7 @@
|
|||||||
#include <utils/fileutils.h>
|
#include <utils/fileutils.h>
|
||||||
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#include <QRegularExpression>
|
||||||
|
|
||||||
using namespace LanguageUtils;
|
using namespace LanguageUtils;
|
||||||
using namespace QmlJS;
|
using namespace QmlJS;
|
||||||
@@ -417,17 +418,16 @@ void PluginDumper::loadQmlTypeDescription(const QStringList &paths,
|
|||||||
*/
|
*/
|
||||||
QString PluginDumper::buildQmltypesPath(const QString &name) const
|
QString PluginDumper::buildQmltypesPath(const QString &name) const
|
||||||
{
|
{
|
||||||
QStringList importName = name.split(QLatin1Char(' '));
|
QString qualifiedName;
|
||||||
QString qualifiedName = importName[0];
|
|
||||||
QString majorVersion;
|
QString majorVersion;
|
||||||
QString minorVersion;
|
QString minorVersion;
|
||||||
if (importName.length() == 2) {
|
|
||||||
QString versionString = importName[1];
|
QRegularExpression import("^(?<name>[\\w|\\.]+)\\s+(?<major>\\d+)\\.(?<minor>\\d+)$");
|
||||||
QStringList version = versionString.split(QLatin1Char('.'));
|
QRegularExpressionMatch m = import.match(name);
|
||||||
if (version.length() == 2) {
|
if (m.hasMatch()) {
|
||||||
majorVersion = version[0];
|
qualifiedName = m.captured("name");
|
||||||
minorVersion = version[1];
|
majorVersion = m.captured("major");
|
||||||
}
|
minorVersion = m.captured("minor");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const PathAndLanguage &p: m_modelManager->importPaths()) {
|
for (const PathAndLanguage &p: m_modelManager->importPaths()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user