aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/filesearch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/utils/filesearch.h')
-rw-r--r--src/libs/utils/filesearch.h70
1 files changed, 19 insertions, 51 deletions
diff --git a/src/libs/utils/filesearch.h b/src/libs/utils/filesearch.h
index 9d427f5946..fc6ce62ab0 100644
--- a/src/libs/utils/filesearch.h
+++ b/src/libs/utils/filesearch.h
@@ -6,8 +6,8 @@
#include "utils_global.h"
#include "filepath.h"
+#include "searchresultitem.h"
-#include <QDir>
#include <QMap>
#include <QSet>
#include <QStack>
@@ -24,10 +24,6 @@ QT_END_NAMESPACE
namespace Utils {
QTCREATOR_UTILS_EXPORT
-std::function<bool(const FilePath &)> filterFileFunction(const QStringList &filterRegs,
- const QStringList &exclusionRegs);
-
-QTCREATOR_UTILS_EXPORT
std::function<FilePaths(const FilePaths &)> filterFilesFunction(const QStringList &filters,
const QStringList &exclusionFilters);
@@ -40,8 +36,13 @@ QString msgFilePatternLabel();
QTCREATOR_UTILS_EXPORT
QString msgExclusionPatternLabel();
+enum class InclusionType {
+ Included,
+ Excluded
+};
+
QTCREATOR_UTILS_EXPORT
-QString msgFilePatternToolTip();
+QString msgFilePatternToolTip(InclusionType inclusionType = InclusionType::Included);
class QTCREATOR_UTILS_EXPORT FileIterator
{
@@ -107,7 +108,8 @@ protected:
class QTCREATOR_UTILS_EXPORT FileListIterator : public FileIterator
{
public:
- explicit FileListIterator(const FilePaths &fileList, const QList<QTextCodec *> encodings);
+ explicit FileListIterator(const FilePaths &fileList = {},
+ const QList<QTextCodec *> &encodings = {});
int maxProgress() const override;
int currentProgress() const override;
@@ -118,8 +120,8 @@ protected:
const Item &itemAt(int index) const override;
private:
- QVector<Item> m_items;
- int m_maxIndex;
+ const QList<Item> m_items;
+ int m_maxIndex = -1;
};
class QTCREATOR_UTILS_EXPORT SubDirFileIterator : public FileIterator
@@ -151,54 +153,20 @@ private:
QList<Item *> m_items;
};
-class QTCREATOR_UTILS_EXPORT FileSearchResult
-{
-public:
- FileSearchResult() = default;
- FileSearchResult(const FilePath &fileName, int lineNumber, const QString &matchingLine,
- int matchStart, int matchLength,
- const QStringList &regexpCapturedTexts)
- : fileName(fileName),
- lineNumber(lineNumber),
- matchingLine(matchingLine),
- matchStart(matchStart),
- matchLength(matchLength),
- regexpCapturedTexts(regexpCapturedTexts)
- {}
-
- bool operator==(const FileSearchResult &o) const
- {
- return fileName == o.fileName && lineNumber == o.lineNumber
- && matchingLine == o.matchingLine && matchStart == o.matchStart
- && matchLength == o.matchLength && regexpCapturedTexts == o.regexpCapturedTexts;
- }
- bool operator!=(const FileSearchResult &o) const { return !(*this == o); }
-
- FilePath fileName;
- int lineNumber;
- QString matchingLine;
- int matchStart;
- int matchLength;
- QStringList regexpCapturedTexts;
-};
-
-using FileSearchResultList = QList<FileSearchResult>;
-
-QTCREATOR_UTILS_EXPORT QFuture<FileSearchResultList> findInFiles(
- const QString &searchTerm,
+QTCREATOR_UTILS_EXPORT QFuture<SearchResultItems> findInFiles(const QString &searchTerm,
FileIterator *files,
QTextDocument::FindFlags flags,
- const QMap<FilePath, QString> &fileToContentsMap = QMap<FilePath, QString>());
+ const QMap<FilePath, QString> &fileToContentsMap = {});
-QTCREATOR_UTILS_EXPORT QFuture<FileSearchResultList> findInFilesRegExp(
+QTCREATOR_UTILS_EXPORT QFuture<SearchResultItems> findInFilesRegExp(
const QString &searchTerm,
FileIterator *files,
QTextDocument::FindFlags flags,
- const QMap<FilePath, QString> &fileToContentsMap = QMap<FilePath, QString>());
+ const QMap<FilePath, QString> &fileToContentsMap = {});
-QTCREATOR_UTILS_EXPORT QString expandRegExpReplacement(const QString &replaceText, const QStringList &capturedTexts);
-QTCREATOR_UTILS_EXPORT QString matchCaseReplacement(const QString &originalText, const QString &replaceText);
+QTCREATOR_UTILS_EXPORT QString expandRegExpReplacement(const QString &replaceText,
+ const QStringList &capturedTexts);
+QTCREATOR_UTILS_EXPORT QString matchCaseReplacement(const QString &originalText,
+ const QString &replaceText);
} // namespace Utils
-
-Q_DECLARE_METATYPE(Utils::FileSearchResultList)