ripgrep 12.0.0
ripgrep 12 is a new major version release of ripgrep that contains many bug fixes, several important performance improvements and a few minor new features.
In case you haven't heard of it before, ripgrep is a line-oriented search
tool that recursively searches your current directory for a regex pattern. By
default, ripgrep will respect your .gitignore and automatically skip hidden
files/directories and binary files.
In a near future release, I am hoping to add an indexing feature to ripgrep, which will dramatically speed up searching by building an index. Feedback would very much be appreciated, especially on the user experience which will be difficult to get right.
This release has no known breaking changes.
Deprecations:
- The
--no-pcre2-unicodeflag is deprecated. Instead, use the--no-unicodeflag, which applies to both the default regex engine and PCRE2. For now,--no-pcre2-unicodeand--pcre2-unicodeare aliases to--no-unicodeand--unicode, respectively. The--[no-]pcre2-unicodeflags may be removed in a future release. - The
--auto-hybrid-regexflag is deprecated. Instead, use the new--engineflag with theautovalue.
Performance improvements:
- PERF #1087: ripgrep is smarter when detected literals are whitespace.
- PERF #1381: Directory traversal is sped up with speculative ignore-file existence checks.
- PERF cd8ec38a:
Improve inner literal detection to cover more cases more effectively.
e.g.,
+Sherlock Holmes +now hasSherlock Holmesextracted instead of. - PERF 6a0e0147:
Improve literal detection when the
-w/--word-regexpflag is used. - PERF ad97e9c9:
Improve overall performance of the
-w/--word-regexpflag.
Feature enhancements:
- Added or improved file type filtering for erb, diff, Gradle, HAML, Org, Postscript, Skim, Slim, Slime, RPM Spec files, Typoscript, xml.
- FEATURE #1370:
Add
--include-zeroflag that shows files searched without matches. - FEATURE #1390:
Add
--no-context-separatorflag that always hides context separators. - FEATURE #1414:
Add
--no-require-gitflag to allow ripgrep to respect gitignores anywhere. - FEATURE #1420:
Add
--no-ignore-excludeto disregard rules in.git/info/excludefiles. - FEATURE #1466:
Add
--no-ignore-filesflag to disable all--ignore-fileflags. - FEATURE #1488: Add '--engine' flag for easier switching between regex engines.
- FEATURE 75cbe88f:
Add
--no-unicodeflag. This works on all supported regex engines.
Bug fixes:
- BUG #1291: ripgrep now works in non-existent directories.
- BUG #1319: Fix match bug due to errant literal detection.
- BUG #1335: Fixes a performance bug when searching plain text files with very long lines. This was a serious performance regression in some cases.
- BUG #1344:
Document usage of
--type all. - BUG #1389: Fixes a bug where ripgrep would panic when searching a symlinked directory.
- BUG #1439: Improve documentation for ripgrep's automatic stdin detection.
- BUG #1441: Remove CPU features from man page.
- BUG #1442,
BUG #1478:
Improve documentation of the
-g/--globflag. - BUG #1445: ripgrep now respects ignore rules from .git/info/exclude in worktrees.
- BUG #1485:
Fish shell completions from the release Debian package are now installed to
/usr/share/fish/vendor_completions.d/rg.fish.