From 8730dbd4e6861e425ab8ecaa8890b313c21025c3 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Thu, 28 Sep 2017 20:09:27 +0200 Subject: [PATCH] Locator: De-duplicate RegExp pattern generation Change-Id: I3576e1507aebed15245e1f197995bfe9e345e32b Reviewed-by: Orgad Shaneh Reviewed-by: Eike Ziller --- src/plugins/coreplugin/locator/basefilefilter.cpp | 3 +-- src/plugins/coreplugin/locator/ilocatorfilter.cpp | 9 ++++++++- src/plugins/coreplugin/locator/ilocatorfilter.h | 2 +- src/plugins/coreplugin/locator/opendocumentsfilter.cpp | 3 +-- src/plugins/cpptools/cppcurrentdocumentfilter.cpp | 4 +--- src/plugins/cpptools/cpplocatorfilter.cpp | 3 +-- src/plugins/qmljstools/qmljsfunctionfilter.cpp | 3 +-- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/plugins/coreplugin/locator/basefilefilter.cpp b/src/plugins/coreplugin/locator/basefilefilter.cpp index 86fe5078f85..c992b883738 100644 --- a/src/plugins/coreplugin/locator/basefilefilter.cpp +++ b/src/plugins/coreplugin/locator/basefilefilter.cpp @@ -100,9 +100,8 @@ QList BaseFileFilter::matchesFor(QFutureInterface goodEntries; const QString entry = QDir::fromNativeSeparators(origEntry); const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entry); - const QRegularExpression regexp = containsWildcard(entry) - ? createWildcardRegExp(entry) : CamelHumpMatcher::createCamelHumpRegExp(entry); + const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) { d->m_current.clear(); // free memory return betterEntries; diff --git a/src/plugins/coreplugin/locator/ilocatorfilter.cpp b/src/plugins/coreplugin/locator/ilocatorfilter.cpp index 3a0d897a63f..1681544608d 100644 --- a/src/plugins/coreplugin/locator/ilocatorfilter.cpp +++ b/src/plugins/coreplugin/locator/ilocatorfilter.cpp @@ -26,6 +26,7 @@ #include "ilocatorfilter.h" #include +#include #include #include @@ -212,7 +213,7 @@ bool ILocatorFilter::containsWildcard(const QString &str) * The regular expression contains capture groups to allow highlighting * matched characters after a match. */ -QRegularExpression ILocatorFilter::createWildcardRegExp(const QString &text) +static QRegularExpression createWildcardRegExp(const QString &text) { QString pattern = '(' + text + ')'; pattern.replace('?', ").("); @@ -221,6 +222,12 @@ QRegularExpression ILocatorFilter::createWildcardRegExp(const QString &text) return QRegularExpression(pattern, QRegularExpression::CaseInsensitiveOption); } +QRegularExpression ILocatorFilter::createRegExp(const QString &text) +{ + return containsWildcard(text) ? createWildcardRegExp(text) + : CamelHumpMatcher::createCamelHumpRegExp(text); +} + /*! Specifies a title for configuration dialogs. */ diff --git a/src/plugins/coreplugin/locator/ilocatorfilter.h b/src/plugins/coreplugin/locator/ilocatorfilter.h index e48464f86fc..c0dd8ec4265 100644 --- a/src/plugins/coreplugin/locator/ilocatorfilter.h +++ b/src/plugins/coreplugin/locator/ilocatorfilter.h @@ -144,7 +144,7 @@ public: static Qt::CaseSensitivity caseSensitivity(const QString &str); static bool containsWildcard(const QString &str); - static QRegularExpression createWildcardRegExp(const QString &text); + static QRegularExpression createRegExp(const QString &text); static QString msgConfigureDialogTitle(); static QString msgPrefixLabel(); diff --git a/src/plugins/coreplugin/locator/opendocumentsfilter.cpp b/src/plugins/coreplugin/locator/opendocumentsfilter.cpp index b9b1779529e..9f025ec6985 100644 --- a/src/plugins/coreplugin/locator/opendocumentsfilter.cpp +++ b/src/plugins/coreplugin/locator/opendocumentsfilter.cpp @@ -61,9 +61,8 @@ QList OpenDocumentsFilter::matchesFor(QFutureInterface goodEntries; QList betterEntries; const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entry); - const QRegularExpression regexp = containsWildcard(entry) - ? createWildcardRegExp(entry) : CamelHumpMatcher::createCamelHumpRegExp(entry); + const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) return goodEntries; diff --git a/src/plugins/cpptools/cppcurrentdocumentfilter.cpp b/src/plugins/cpptools/cppcurrentdocumentfilter.cpp index 6f528a3f4f5..440e53439f3 100644 --- a/src/plugins/cpptools/cppcurrentdocumentfilter.cpp +++ b/src/plugins/cpptools/cppcurrentdocumentfilter.cpp @@ -67,9 +67,7 @@ QList CppCurrentDocumentFilter::matchesFor( QList goodEntries; QList betterEntries; - const QRegularExpression regexp = containsWildcard(entry) - ? createWildcardRegExp(entry) : CamelHumpMatcher::createCamelHumpRegExp(entry); - + const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) return goodEntries; diff --git a/src/plugins/cpptools/cpplocatorfilter.cpp b/src/plugins/cpptools/cpplocatorfilter.cpp index 86028fbe624..f1134622176 100644 --- a/src/plugins/cpptools/cpplocatorfilter.cpp +++ b/src/plugins/cpptools/cpplocatorfilter.cpp @@ -76,9 +76,8 @@ QList CppLocatorFilter::matchesFor( const Qt::CaseSensitivity caseSensitivityForPrefix = caseSensitivity(entry); bool hasColonColon = entry.contains(QLatin1String("::")); const IndexItem::ItemType wanted = matchTypes(); - const QRegularExpression regexp = containsWildcard(entry) - ? createWildcardRegExp(entry) : CamelHumpMatcher::createCamelHumpRegExp(entry); + const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) return goodEntries; diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.cpp b/src/plugins/qmljstools/qmljsfunctionfilter.cpp index 02081f7e906..930eff714a6 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp +++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp @@ -61,9 +61,8 @@ QList FunctionFilter::matchesFor( QList betterEntries; QList bestEntries; const Qt::CaseSensitivity caseSensitivityForPrefix = caseSensitivity(entry); - const QRegularExpression regexp = containsWildcard(entry) - ? createWildcardRegExp(entry) : CamelHumpMatcher::createCamelHumpRegExp(entry); + const QRegularExpression regexp = createRegExp(entry); if (!regexp.isValid()) return goodEntries;