From a3bb39d3c37aebd63af5cf908a177cb69292460e Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 1 Jun 2023 00:54:51 +0200 Subject: [PATCH] SilverSearcher: Do some cleanup Remove unneeded includes. Code style corrections. Make global functions in cpp static. Fix const correctness. Fix nameFiltersAsRegExp variable name. Remove unneeded d'tor. Change-Id: Ia8aef3701bc8853905a3661242b33351ce319004 Reviewed-by: Reviewed-by: Qt CI Bot Reviewed-by: Orgad Shaneh --- .../findinfilessilversearcher.cpp | 64 +++++++------------ .../findinfilessilversearcher.h | 6 +- 2 files changed, 27 insertions(+), 43 deletions(-) diff --git a/src/plugins/silversearcher/findinfilessilversearcher.cpp b/src/plugins/silversearcher/findinfilessilversearcher.cpp index 52e9f08a956..a9105e4f4ba 100644 --- a/src/plugins/silversearcher/findinfilessilversearcher.cpp +++ b/src/plugins/silversearcher/findinfilessilversearcher.cpp @@ -3,12 +3,8 @@ #include "findinfilessilversearcher.h" -#include #include -#include #include -#include -#include #include #include @@ -25,11 +21,8 @@ using namespace TextEditor; using namespace Utils; namespace { -const QLatin1String silverSearcherName("Silver Searcher"); - -const QString metacharacters = "+()^$.{}[]|\\"; - -const QString SearchOptionsString = "SearchOptionsString"; +const QLatin1String s_metaCharacters = QLatin1String("+()^$.{}[]|\\"); +const QLatin1String s_searchOptionsString = QLatin1String("SearchOptionsString"); class SilverSearcherSearchOptions { @@ -37,43 +30,37 @@ public: QString searchOptions; }; -QString convertWildcardToRegex(const QString &wildcard) +static QString convertWildcardToRegex(const QString &wildcard) { QString regex; const int wildcardSize = wildcard.size(); regex.append('^'); for (int i = 0; i < wildcardSize; ++i) { const QChar ch = wildcard[i]; - if (ch == '*') { + if (ch == '*') regex.append(".*"); - } else if (ch == '?') { + else if (ch == '?') regex.append('.'); - } else if (metacharacters.indexOf(ch) != -1) { - regex.append('\\'); + else if (s_metaCharacters.indexOf(ch) != -1) + regex.append('\\' + ch); + else regex.append(ch); - } else { - regex.append(ch); - } } regex.append('$'); - return regex; } -bool isSilverSearcherAvailable() +static bool isSilverSearcherAvailable() { Process silverSearcherProcess; silverSearcherProcess.setCommand({"ag", {"--version"}}); silverSearcherProcess.start(); - if (silverSearcherProcess.waitForFinished(1000)) { - if (silverSearcherProcess.cleanedStdOut().contains("ag version")) - return true; - } - - return false; + return silverSearcherProcess.waitForFinished(1000) + && silverSearcherProcess.cleanedStdOut().contains("ag version"); } -void runSilverSeacher(QPromise &promise, FileFindParameters parameters) +static void runSilverSeacher(QPromise &promise, + const FileFindParameters ¶meters) { const FilePath directory = FilePath::fromUserInput(parameters.additionalParameters.toString()); QStringList arguments = {"--parallel", "--ackmate"}; @@ -92,15 +79,15 @@ void runSilverSeacher(QPromise &promise, FileFindParameters p for (const QString &filter : std::as_const(parameters.exclusionFilters)) arguments << "--ignore" << filter; - QString nameFiltersAsRegex; + QString nameFiltersAsRegExp; for (const QString &filter : std::as_const(parameters.nameFilters)) - nameFiltersAsRegex += QString("(%1)|").arg(convertWildcardToRegex(filter)); - nameFiltersAsRegex.remove(nameFiltersAsRegex.length() - 1, 1); + nameFiltersAsRegExp += QString("(%1)|").arg(convertWildcardToRegex(filter)); + nameFiltersAsRegExp.remove(nameFiltersAsRegExp.length() - 1, 1); - arguments << "-G" << nameFiltersAsRegex; + arguments << "-G" << nameFiltersAsRegExp; - SilverSearcherSearchOptions params = parameters.searchEngineParameters - .value(); + const SilverSearcherSearchOptions params = parameters.searchEngineParameters + .value(); if (!params.searchOptions.isEmpty()) arguments << params.searchOptions.split(' '); @@ -150,6 +137,7 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent) QTC_ASSERT(findInFiles, return); findInFiles->addSearchEngine(this); + // TODO: Make disabled by default and run isSilverSearcherAvailable asynchronously setEnabled(isSilverSearcherAvailable()); if (!isEnabled()) { QLabel *label = new QLabel(Tr::tr("Silver Searcher is not available on the system.")); @@ -158,10 +146,6 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent) } } -FindInFilesSilverSearcher::~FindInFilesSilverSearcher() -{ -} - QVariant FindInFilesSilverSearcher::parameters() const { SilverSearcherSearchOptions silverSearcherSearchOptions; @@ -171,12 +155,12 @@ QVariant FindInFilesSilverSearcher::parameters() const QString FindInFilesSilverSearcher::title() const { - return silverSearcherName; + return "Silver Searcher"; } QString FindInFilesSilverSearcher::toolTip() const { - return QString(); + return {}; } QWidget *FindInFilesSilverSearcher::widget() const @@ -186,7 +170,7 @@ QWidget *FindInFilesSilverSearcher::widget() const void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const { - settings->setValue(SearchOptionsString, m_searchOptionsLineEdit->text()); + settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text()); } QFuture FindInFilesSilverSearcher::executeSearch( @@ -203,7 +187,7 @@ IEditor *FindInFilesSilverSearcher::openEditor(const SearchResultItem & /*item*/ void FindInFilesSilverSearcher::readSettings(QSettings *settings) { - m_searchOptionsLineEdit->setText(settings->value(SearchOptionsString).toString()); + m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString()); } } // namespace SilverSearcher diff --git a/src/plugins/silversearcher/findinfilessilversearcher.h b/src/plugins/silversearcher/findinfilessilversearcher.h index 85b35192b8e..bc5e224c21f 100644 --- a/src/plugins/silversearcher/findinfilessilversearcher.h +++ b/src/plugins/silversearcher/findinfilessilversearcher.h @@ -3,10 +3,9 @@ #pragma once -#include #include -#include +#include #include @@ -14,6 +13,8 @@ QT_BEGIN_NAMESPACE class QLineEdit; QT_END_NAMESPACE +namespace Core { class IFindSupport; } + namespace SilverSearcher { class FindInFilesSilverSearcher : public TextEditor::SearchEngine @@ -22,7 +23,6 @@ class FindInFilesSilverSearcher : public TextEditor::SearchEngine public: explicit FindInFilesSilverSearcher(QObject *parent); - ~FindInFilesSilverSearcher() override; // TextEditor::FileFindExtension QString title() const override;