Age | Commit message (Collapse) | Author |
|
This commit completely guts all of the color handling code and replaces
most of it with two new crates: wincolor and termcolor. wincolor
provides a simple API to coloring using the Windows console and
termcolor provides a platform independent coloring API tuned for
multithreaded command line programs. This required a lot more
flexibility than what the `term` crate provided, so it was dropped.
We instead switch to writing ANSI escape sequences directly and ignore
the TERMINFO database.
In addition to fixing several bugs, this commit also permits end users
to customize colors to a certain extent. For example, this command will
set the match color to magenta and the line number background to yellow:
rg --colors 'match:fg:magenta' --colors 'line:bg:yellow' foo
For tty handling, we've adopted a hack from `git` to do tty detection in
MSYS/mintty terminals. As a result, ripgrep should get both color
detection and piping correct on Windows regardless of which terminal you
use.
Finally, switch to line buffering. Performance doesn't seem to be
impacted and it's an otherwise more user friendly option.
Fixes #37, Fixes #51, Fixes #94, Fixes #117, Fixes #182, Fixes #231
|
|
This is to be consistent with grep.
|
|
Performs the opposite of --files-with-matches: only shows paths of
files that contain zero matches.
Closes #138
|
|
There were two important reasons for the switch:
1. Performance. Docopt does poorly when the argv becomes large, which is
a reasonable common use case for search tools. (e.g., use with xargs)
2. Better failure modes. Clap knows a lot more about how a particular
argv might be invalid, and can therefore provide much clearer error
messages.
While both were important, (1) made it urgent.
Note that since Clap requires at least Rust 1.11, this will in turn
increase the minimum Rust version supported by ripgrep from Rust 1.9 to
Rust 1.11. It is therefore a breaking change, so the soonest release of
ripgrep with Clap will have to be 0.3.
There is also at least one subtle breaking change in real usage.
Previous to this commit, this used to work:
rg -e -foo
Where this would cause ripgrep to search for the string `-foo`. Clap
currently has problems supporting this use case
(see: https://github.com/kbknapp/clap-rs/issues/742),
but it can be worked around by using this instead:
rg -e [-]foo
or even
rg [-]foo
and this still works:
rg -- -foo
This commit also adds Bash, Fish and PowerShell completion files to the
release, fixes a bug that prevented ripgrep from working on file
paths containing invalid UTF-8 and shows short descriptions in the
output of `-h` but longer descriptions in the output of `--help`.
Fixes #136, Fixes #189, Fixes #210, Fixes #230
|
|
This flag is similar to what's found in grep: it will suppress all error
messages, such as those shown when a particular file couldn't be read.
Closes #149
|
|
This flag limits the number of matches printed *per file*.
Closes #159
|
|
Fixes #203
|
|
|
|
Specifically, it can be used when searching for patterns that start
with a dash.
Fixes #215
|
|
|
|
Also add a minor clarification for --type-add.
Fixes #147
|
|
This flag overrides both --smart-case and --ignore-case.
Closes #124.
|
|
CR and add integration test
|
|
This flag causes a NUL byte to follow any file path in ripgrep's output.
Closes #89.
|
|
|
|
Fixes #77.
|
|
Files with matches
|
|
This explains it a bit more based on end user feedback. We also fix
the example, which was wrong.
Fixes #82.
|
|
Closes #26.
Acts like --count but emits only the paths of files with matches,
suitable for piping to xargs. Both mmap and no-mmap searches terminate
after the first match is found. Documentation updated and tests added.
|
|
It does what it says on the tin.
Closes #70.
|
|
This flag will respect .ignore but not .gitignore.
Closes #68.
|
|
Fixes #47.
|
|
When this flag is set, a filename is never shown for a match.
Closes #20
|
|
Fixes #15
|
|
But don't actually remove support for .rgignore until the next semver
bump.
Note that this puts us in line with the silver searcher:
https://github.com/ggreer/the_silver_searcher/pull/974
Fixes #40
|
|
The --vimgrep flag forces a line to be printed for every match, with
line and column numbers.
|
|
|