ripgrep v0.4.0 Release Notes

  • ๐Ÿš€ This is a new minor version release of ripgrep that includes a couple very ๐Ÿ›  minor breaking changes, a few new features and lots of bug fixes.

    โฌ†๏ธ This version of ripgrep upgrades its regex dependency from 0.1 to 0.2, which includes a few minor syntax changes:

    • POSIX character classes now require double bracketing. Previously, the regex [:upper:] would parse as the upper POSIX character class. Now it parses as the character class containing the characters :upper:. The fix to this change is to use [[:upper:]] instead. Note that variants like [[:upper:][:blank:]] continue to work.
    • The character [ must always be escaped inside a character class.
    • The characters &, - and ~ must be escaped if any one of them are repeated consecutively. For example, [&], [\&], [\&\&], [&-&] are all equivalent while [&&] is illegal. (The motivation for this and the prior change is to provide a backwards compatible path for adding character class set notation.)

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for Crystal, Kotlin, Perl, PowerShell, Ruby, Swig
    • FEATURE #83: Type definitions can now include other type definitions.
    • FEATURE #243: BREAKING CHANGE: The --column flag now implies --line-number.
    • FEATURE #263: Add a new --sort-files flag.
    • FEATURE #275: Add a new --path-separator flag. Useful in cygwin.

    ๐Ÿ› Bug fixes:

    • BUG #182: Redux: use more portable ANSI color escape sequences when possible.
    • BUG #258: Fix bug that caused ripgrep's parallel iterator to spin and burn CPU.
    • BUG #262: Document how to install shell completion files.
    • BUG #266, BUG #293: Fix handling of bold styling and change the default colors.
    • BUG #268: Make lack of backreference support more explicit.
    • BUG #271: Remove ~ dependency on clap.
    • BUG #277: Fix cosmetic issue in globset crate docs.
    • BUG #279: ripgrep did not terminate when -q/--quiet was given.
    • BUG #281: BREAKING CHANGE: Completely remove ^C handling from ripgrep.
    • BUG #284: Make docs for -g/--glob clearer.
    • BUG #286: When stdout is redirected to a file, don't search that file.
    • BUG #287: Fix ZSH completions.
    • BUG #295: Remove superfluous memmap dependency in grep crate.
    • BUG #308: Improve docs for -r/--replace.
    • BUG #313: Update bytecount dep to latest version.
    • BUG #318: Fix invalid UTF-8 output bug in Windows consoles.