ripgrep 0.9.0
This is a new minor version release of ripgrep that contains some minor new features and a panoply of bug fixes.
Releases provided on Github for x86_64 will now work on all target CPUs, and
will also automatically take advantage of features found on modern CPUs (such
as AVX2) for additional optimizations.
This release increases the minimum supported Rust version from 1.20.0 to 1.23.0.
It is anticipated that the next release of ripgrep (0.10.0) will provide multi-line search support and a JSON output format.
BREAKING CHANGES:
- When
--countand--only-matchingare provided simultaneously, the behavior of ripgrep is as if the--count-matchesflag was given. That is, the total number of matches is reported, where there may be multiple matches per line. Previously, the behavior of ripgrep was to report the total number of matching lines. (Note that this behavior diverges from the behavior of GNU grep.) - Octal syntax is no longer supported. ripgrep previously accepted expressions
like
\1as syntax for matchingU+0001, but ripgrep will now report an error instead. - The
--line-number-widthflag has been removed. Its functionality was not carefully considered with all ripgrep output formats. See #795 for more details.
Feature enhancements:
- Added or improved file type filtering for Android, Bazel, Fuschia, Haskell, Java and Puppet.
- FEATURE #411:
Add a
--statsflag, which emits aggregate statistics after search results. - FEATURE #646:
Add a
--no-ignore-messagesflag, which suppresses parse errors from reading.ignoreand.gitignorefiles. - FEATURE #702:
Support
\u{..}Unicode escape sequences. - FEATURE #812:
Add
-b/--byte-offsetflag that shows the byte offset of each matching line. - FEATURE #814:
Add
--count-matchesflag, which is like--count, but for each match. - FEATURE #880:
Add a
--no-columnflag, which disables column numbers in the output. - FEATURE #898:
Add support for
lz4when using the-z/--search-zipflag. - FEATURE #924:
termcolorhas moved to its own repository: https://github.com/BurntSushi/termcolor - FEATURE #934:
Add a new flag,
--no-ignore-global, that permits disabling global gitignores. - FEATURE #967:
Rename
--maxdepthto--max-depthfor consistency. Keep--maxdepthfor backwards compatibility. - FEATURE #978:
Add a
--preoption to filter inputs with an arbitrary program. - FEATURE fca9709d: Improve zsh completion.
Bug fixes:
- BUG #135: Release portable binaries that conditionally use SSSE3, AVX2, etc., at runtime.
- BUG #268: Print descriptive error message when trying to use look-around or backreferences.
- BUG #395:
Show comprehensible error messages for regexes like
\s*{. - BUG #526: Support backslash escapes in globs.
- BUG #795:
Fix problems with
--line-number-widthby removing it. - BUG #832:
Clarify usage instructions for
-f/--fileflag. - BUG #835: Fix small performance regression while crawling very large directory trees.
- BUG #851:
Fix
-S/--smart-casedetection once and for all. - BUG #852:
Be robust with respect to
ENOMEMerrors returned bymmap. - BUG #853:
Upgrade
grepcrate toregex-syntax 0.6.0. - BUG #893: Improve support for git submodules.
- BUG #900: When no patterns are given, ripgrep should never match anything.
- BUG #907:
ripgrep will now stop traversing after the first file when
--quiet --filesis used. - BUG #918:
Don't skip tar archives when
-z/--search-zipis used. - BUG #934: Don't respect gitignore files when searching outside git repositories.
- BUG #948: Use exit code 2 to indicate error, and use exit code 1 to indicate no matches.
- BUG #951: Add stdin example to ripgrep usage documentation.
- BUG #955: Use buffered writing when not printing to a tty, which fixes a performance regression.
- BUG #957:
Improve the error message shown for
--path separator /in some Windows shells. - BUG #964:
Add a
--no-fixed-stringsflag to disable-F/--fixed-strings. - BUG #988:
Fix a bug in the
ignorecrate that prevented the use of explicit ignore files after disabling all other ignore rules. - BUG #995:
Respect
$XDG_CONFIG_DIR/git/configfor detectingcore.excludesFile.