diff options
author | Eike Ziller <eike.ziller@qt.io> | 2016-12-09 13:33:12 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2017-02-28 10:48:23 +0000 |
commit | 1f8b2dc3610635f019b7fef8192171f4e085f814 (patch) | |
tree | 3611fc53841940069d7adc70a42865c781932b4a /src/plugins/git/gitgrep.cpp | |
parent | 99a6d78bba07a40a8407f1b7ba44b57f7da1983e (diff) |
Advanced search: Add exclusion patterns
All files with full file path matching one of the exclusion patterns are
ignored in the search.
Searching with "git grep" now requires git >= 1.9
Change-Id: Ied5d11499bc1ff21247e50f8e146e8e5011dd2c1
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/git/gitgrep.cpp')
-rw-r--r-- | src/plugins/git/gitgrep.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/git/gitgrep.cpp b/src/plugins/git/gitgrep.cpp index c391fe1a4a2..3c0096921f0 100644 --- a/src/plugins/git/gitgrep.cpp +++ b/src/plugins/git/gitgrep.cpp @@ -35,6 +35,7 @@ #include <vcsbase/vcscommand.h> #include <vcsbase/vcsbaseconstants.h> +#include <utils/algorithm.h> #include <utils/asconst.h> #include <utils/fancylineedit.h> #include <utils/filesearch.h> @@ -159,7 +160,14 @@ public: arguments << params.ref; m_ref = params.ref + ':'; } - arguments << "--" << m_parameters.nameFilters; + const QStringList filterArgs = + m_parameters.nameFilters.isEmpty() ? QStringList("*") // needed for exclusion filters + : m_parameters.nameFilters; + const QStringList exclusionArgs = + Utils::transform(m_parameters.exclusionFilters, [](const QString &filter) { + return QString(":!" + filter); + }); + arguments << "--" << filterArgs << exclusionArgs; QScopedPointer<VcsCommand> command(GitPlugin::client()->createCommand(m_directory)); command->addFlags(VcsCommand::SilentOutput | VcsCommand::SuppressFailMessage); command->setProgressiveOutput(true); |