cargo ripgrep 12.0.0

latest releases: 14.1.0, 14.0.3, 14.0.2...
4 years ago

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-unicode flag is deprecated. Instead, use the --no-unicode
    flag, which applies to both the default regex engine and PCRE2. For now,
    --no-pcre2-unicode and --pcre2-unicode are aliases to --no-unicode
    and --unicode, respectively. The --[no-]pcre2-unicode flags may be
    removed in a future release.
  • The --auto-hybrid-regex flag is deprecated. Instead, use the new --engine
    flag with the auto value.

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 has Sherlock Holmes extracted instead
    of .
  • PERF 6a0e0147:
    Improve literal detection when the -w/--word-regexp flag is used.
  • PERF ad97e9c9:
    Improve overall performance of the -w/--word-regexp flag.

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-zero flag that shows files searched without matches.
  • FEATURE #1390:
    Add --no-context-separator flag that always hides context separators.
  • FEATURE #1414:
    Add --no-require-git flag to allow ripgrep to respect gitignores anywhere.
  • FEATURE #1420:
    Add --no-ignore-exclude to disregard rules in .git/info/exclude files.
  • FEATURE #1466:
    Add --no-ignore-files flag to disable all --ignore-file flags.
  • FEATURE #1488:
    Add '--engine' flag for easier switching between regex engines.
  • FEATURE 75cbe88f:
    Add --no-unicode flag. 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/--glob flag.
  • 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.

Don't miss a new ripgrep release

NewReleases is sending notifications on new releases.