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: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2023-06-01 00:54:51 +02:00
parent 5c5624007b
commit a3bb39d3c3
2 changed files with 27 additions and 43 deletions

View File

@@ -3,12 +3,8 @@
#include "findinfilessilversearcher.h" #include "findinfilessilversearcher.h"
#include <aggregation/aggregate.h>
#include <texteditor/findinfiles.h> #include <texteditor/findinfiles.h>
#include <utils/algorithm.h>
#include <utils/async.h> #include <utils/async.h>
#include <utils/environment.h>
#include <utils/fileutils.h>
#include <utils/process.h> #include <utils/process.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -25,11 +21,8 @@ using namespace TextEditor;
using namespace Utils; using namespace Utils;
namespace { namespace {
const QLatin1String silverSearcherName("Silver Searcher"); const QLatin1String s_metaCharacters = QLatin1String("+()^$.{}[]|\\");
const QLatin1String s_searchOptionsString = QLatin1String("SearchOptionsString");
const QString metacharacters = "+()^$.{}[]|\\";
const QString SearchOptionsString = "SearchOptionsString";
class SilverSearcherSearchOptions class SilverSearcherSearchOptions
{ {
@@ -37,43 +30,37 @@ public:
QString searchOptions; QString searchOptions;
}; };
QString convertWildcardToRegex(const QString &wildcard) static QString convertWildcardToRegex(const QString &wildcard)
{ {
QString regex; QString regex;
const int wildcardSize = wildcard.size(); const int wildcardSize = wildcard.size();
regex.append('^'); regex.append('^');
for (int i = 0; i < wildcardSize; ++i) { for (int i = 0; i < wildcardSize; ++i) {
const QChar ch = wildcard[i]; const QChar ch = wildcard[i];
if (ch == '*') { if (ch == '*')
regex.append(".*"); regex.append(".*");
} else if (ch == '?') { else if (ch == '?')
regex.append('.'); regex.append('.');
} else if (metacharacters.indexOf(ch) != -1) { else if (s_metaCharacters.indexOf(ch) != -1)
regex.append('\\'); regex.append('\\' + ch);
else
regex.append(ch); regex.append(ch);
} else {
regex.append(ch);
}
} }
regex.append('$'); regex.append('$');
return regex; return regex;
} }
bool isSilverSearcherAvailable() static bool isSilverSearcherAvailable()
{ {
Process silverSearcherProcess; Process silverSearcherProcess;
silverSearcherProcess.setCommand({"ag", {"--version"}}); silverSearcherProcess.setCommand({"ag", {"--version"}});
silverSearcherProcess.start(); silverSearcherProcess.start();
if (silverSearcherProcess.waitForFinished(1000)) { return silverSearcherProcess.waitForFinished(1000)
if (silverSearcherProcess.cleanedStdOut().contains("ag version")) && silverSearcherProcess.cleanedStdOut().contains("ag version");
return true;
}
return false;
} }
void runSilverSeacher(QPromise<SearchResultItems> &promise, FileFindParameters parameters) static void runSilverSeacher(QPromise<SearchResultItems> &promise,
const FileFindParameters &parameters)
{ {
const FilePath directory = FilePath::fromUserInput(parameters.additionalParameters.toString()); const FilePath directory = FilePath::fromUserInput(parameters.additionalParameters.toString());
QStringList arguments = {"--parallel", "--ackmate"}; QStringList arguments = {"--parallel", "--ackmate"};
@@ -92,15 +79,15 @@ void runSilverSeacher(QPromise<SearchResultItems> &promise, FileFindParameters p
for (const QString &filter : std::as_const(parameters.exclusionFilters)) for (const QString &filter : std::as_const(parameters.exclusionFilters))
arguments << "--ignore" << filter; arguments << "--ignore" << filter;
QString nameFiltersAsRegex; QString nameFiltersAsRegExp;
for (const QString &filter : std::as_const(parameters.nameFilters)) for (const QString &filter : std::as_const(parameters.nameFilters))
nameFiltersAsRegex += QString("(%1)|").arg(convertWildcardToRegex(filter)); nameFiltersAsRegExp += QString("(%1)|").arg(convertWildcardToRegex(filter));
nameFiltersAsRegex.remove(nameFiltersAsRegex.length() - 1, 1); nameFiltersAsRegExp.remove(nameFiltersAsRegExp.length() - 1, 1);
arguments << "-G" << nameFiltersAsRegex; arguments << "-G" << nameFiltersAsRegExp;
SilverSearcherSearchOptions params = parameters.searchEngineParameters const SilverSearcherSearchOptions params = parameters.searchEngineParameters
.value<SilverSearcherSearchOptions>(); .value<SilverSearcherSearchOptions>();
if (!params.searchOptions.isEmpty()) if (!params.searchOptions.isEmpty())
arguments << params.searchOptions.split(' '); arguments << params.searchOptions.split(' ');
@@ -150,6 +137,7 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
QTC_ASSERT(findInFiles, return); QTC_ASSERT(findInFiles, return);
findInFiles->addSearchEngine(this); findInFiles->addSearchEngine(this);
// TODO: Make disabled by default and run isSilverSearcherAvailable asynchronously
setEnabled(isSilverSearcherAvailable()); setEnabled(isSilverSearcherAvailable());
if (!isEnabled()) { if (!isEnabled()) {
QLabel *label = new QLabel(Tr::tr("Silver Searcher is not available on the system.")); 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 QVariant FindInFilesSilverSearcher::parameters() const
{ {
SilverSearcherSearchOptions silverSearcherSearchOptions; SilverSearcherSearchOptions silverSearcherSearchOptions;
@@ -171,12 +155,12 @@ QVariant FindInFilesSilverSearcher::parameters() const
QString FindInFilesSilverSearcher::title() const QString FindInFilesSilverSearcher::title() const
{ {
return silverSearcherName; return "Silver Searcher";
} }
QString FindInFilesSilverSearcher::toolTip() const QString FindInFilesSilverSearcher::toolTip() const
{ {
return QString(); return {};
} }
QWidget *FindInFilesSilverSearcher::widget() const QWidget *FindInFilesSilverSearcher::widget() const
@@ -186,7 +170,7 @@ QWidget *FindInFilesSilverSearcher::widget() const
void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const
{ {
settings->setValue(SearchOptionsString, m_searchOptionsLineEdit->text()); settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text());
} }
QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch( QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch(
@@ -203,7 +187,7 @@ IEditor *FindInFilesSilverSearcher::openEditor(const SearchResultItem & /*item*/
void FindInFilesSilverSearcher::readSettings(QSettings *settings) void FindInFilesSilverSearcher::readSettings(QSettings *settings)
{ {
m_searchOptionsLineEdit->setText(settings->value(SearchOptionsString).toString()); m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString());
} }
} // namespace SilverSearcher } // namespace SilverSearcher

View File

@@ -3,10 +3,9 @@
#pragma once #pragma once
#include <coreplugin/find/ifindsupport.h>
#include <texteditor/basefilefind.h> #include <texteditor/basefilefind.h>
#include <utils/fileutils.h> #include <utils/filepath.h>
#include <QPointer> #include <QPointer>
@@ -14,6 +13,8 @@ QT_BEGIN_NAMESPACE
class QLineEdit; class QLineEdit;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace Core { class IFindSupport; }
namespace SilverSearcher { namespace SilverSearcher {
class FindInFilesSilverSearcher : public TextEditor::SearchEngine class FindInFilesSilverSearcher : public TextEditor::SearchEngine
@@ -22,7 +23,6 @@ class FindInFilesSilverSearcher : public TextEditor::SearchEngine
public: public:
explicit FindInFilesSilverSearcher(QObject *parent); explicit FindInFilesSilverSearcher(QObject *parent);
~FindInFilesSilverSearcher() override;
// TextEditor::FileFindExtension // TextEditor::FileFindExtension
QString title() const override; QString title() const override;