ripgrep 0.8.0
This is a new minor version releae of ripgrep that satisfies several popular feature requests (config files, search compressed files, true colors), fixes many bugs and improves the quality of life for ripgrep maintainers. This release also includes greatly improved documentation in the form of a User Guide and a FAQ.
This release increases the minimum supported Rust version from 1.17 to 1.20.
BREAKING CHANGES:
Note that these are all very minor and unlikely to impact most users.
- In order to support configuration files, flag overrides needed to be
rethought. In some cases, this changed ripgrep's behavior. For example,
in ripgrep 0.7.1,
rg foo -s -iwill perform a case sensitive search since the-s/--case-sensitiveflag was defined to always take precedence over the-i/--ignore-caseflag, regardless of position. In ripgrep 0.8.0 however, the override rule for all flags has changed to "the most recent flag wins among competing flags." That is,rg foo -s -inow performs a case insensitive search. - The
-M/--max-columnsflag was tweaked so that specifying a value of0now makes ripgrep behave as if the flag was absent. This makes it possible to set a default value in a configuration file and then override it. The previous ripgrep behavior was to suppress all matching non-empty lines. - In all globs,
[^...]is now equivalent to[!...](indicating class negation). Previously,^had no special significance in a character class. - For downstream packagers, the directory hierarchy in ripgrep's archive
releases has changed. The root directory now only contains the executable,
README and license. There is now a new directory called
docwhich contains the man page (previously in the root), a user guide (new), a FAQ (new) and the CHANGELOG (previously not included in release). Thecompletedirectory remains the same.
Feature enhancements:
- Added or improved file type filtering for Apache Avro, C++, GN, Google Closure Templates, Jupyter notebooks, man pages, Protocol Buffers, Smarty and Web IDL.
- FEATURE #196: Support a configuration file. See the new user guide for details.
- FEATURE #261: Add extended or "true" color support. Works in Windows 10! See the FAQ for details.
- FEATURE #539:
Search gzip, bsip2, lzma or xz files when given
-z/--search-zipflag. - FEATURE #544:
Add support for line number alignment via a new
--line-number-widthflag. - FEATURE #654: Support linuxbrew in ripgrep's Brew tap.
- FEATURE #673:
Bring back
.rgignorefiles. (A higher precedent, application specific version of.ignore.) - FEATURE #676: Provide ARM binaries. WARNING: This will be provided on a best effort basis.
- FEATURE #709:
Suggest
-F/--fixed-stringsflag on a regex syntax error. - FEATURE #740:
Add a
--passthruflag that causes ripgrep to print every line it reads. - FEATURE #785: Overhaul documentation. Cleaned up README, added user guide and FAQ.
- FEATURE 7f5c07:
Add hidden flags for convenient overrides (e.g.,
--no-text).
Bug fixes:
- BUG #553: Permit flags to be repeated.
- BUG #633: Fix a bug where ripgrep would panic on Windows while following symlinks.
- BUG #649:
Fix handling of
!**/in.gitignore. - BUG #663:
BREAKING CHANGE: Support
[^...]glob syntax (as identical to[!...]). - BUG #693: Don't display context separators when not printing matches.
- BUG #705: Fix a bug that prevented ripgrep from searching OneDrive directories.
- BUG #717:
Improve
--smart-caseuppercase character detection. - BUG #725: Clarify that globs do not override explicitly given paths to search.
- BUG #742:
Write ANSI reset code as
\x1B[0minstead of\x1B[m. - BUG #747:
Remove
yarn.lockfrom YAML file type. - BUG #760:
ripgrep can now search
/sys/devices/system/cpu/vulnerabilities/*files. - BUG #761:
Fix handling of gitignore patterns that contain a
/. - BUG #776:
BREAKING CHANGE:
--max-columns=0now disables the limit. - BUG #779:
Clarify documentation for
--files-without-match. - BUG #780, BUG #781: Fix bug where ripgrep missed some matching lines.
Maintenance fixes:
- MAINT #772:
Drop
env_loggerin favor of simpler logger to avoid many new dependencies. - MAINT #772: Add git revision hash to ripgrep's version string.
- MAINT #772: (Seemingly) improve compile times.
- MAINT #776: Automatically generate man page during build.
- MAINT #786:
Remove use of
unsafeinglobset. :tada: - MAINT e9d448: Add an issue template (has already drastically improved bug reports).
- MAINT ae2d03:
Remove the
compilescript.
Friends of ripgrep:
I'd like to extend my gratitude to @balajisivaraman for their recent hard work in a number of areas, and in particular, for implementing the "search compressed files" feature. Their work in sketching out a specification for that and other work has been exemplary.
Thanks @balajisivaraman!