diff options
Diffstat (limited to 'src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp')
-rw-r--r-- | src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp b/src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp index 6b2fabd07a..922225a7e1 100644 --- a/src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp +++ b/src/libs/3rdparty/syntax-highlighting/src/lib/repository.cpp @@ -78,7 +78,7 @@ Definition Repository::definitionForName(const QString& defName) const return d->m_defs.value(defName); } -static Definition bestCandidate(QVector<Definition>& candidates) +static Definition bestCandidate(QVector<Definition> &&candidates) { if (candidates.isEmpty()) return Definition(); @@ -92,6 +92,11 @@ static Definition bestCandidate(QVector<Definition>& candidates) Definition Repository::definitionForFileName(const QString& fileName) const { + return bestCandidate(definitionsForFileName(fileName)); +} + +QVector<Definition> Repository::definitionsForFileName(const QString &fileName) const +{ QFileInfo fi(fileName); const auto name = fi.fileName(); @@ -106,11 +111,16 @@ Definition Repository::definitionForFileName(const QString& fileName) const } } - return bestCandidate(candidates); + return candidates; } Definition Repository::definitionForMimeType(const QString& mimeType) const { + return bestCandidate(definitionsForMimeType(mimeType)); +} + +QVector<Definition> Repository::definitionsForMimeType(const QString &mimeType) const +{ QVector<Definition> candidates; for (auto it = d->m_defs.constBegin(); it != d->m_defs.constEnd(); ++it) { auto def = it.value(); @@ -121,8 +131,7 @@ Definition Repository::definitionForMimeType(const QString& mimeType) const } } } - - return bestCandidate(candidates); + return candidates; } QVector<Definition> Repository::definitions() const |