ripgrep v0.3.0 Release Notes

  • ๐Ÿš€ This is a new minor version release of ripgrep that includes two breaking ๐ŸŽ changes with lots of bug fixes and some new features and performance ๐Ÿ‘Œ improvements. Notably, if you had a problem with colors or piping on Windows ๐Ÿš€ before, then that should now be fixed in this release.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • ๐Ÿ— ripgrep now requires Rust 1.11 to compile. Previously, it could build on Rust 1.9. The cause of this was the move from Docopt to Clap for argument parsing.
    • The -e/--regexp flag can no longer accept a pattern starting with a -. There are two work-arounds: rg -- -foo and rg [-]foo or rg -e [-]foo will all search for the same -foo pattern. The cause of this was the move from Docopt to Clap for argument parsing. This may get fixed in the future..

    ๐ŸŽ Performance improvements:

    • PERF #33: ripgrep now performs similar to GNU grep on small corpora.
    • PERF #136: ripgrep no longer slows down because of argument parsing when given a large argument list.

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for Elixir.
    • FEATURE #7: Add a -f/--file flag that causes ripgrep to read patterns from a file.
    • FEATURE #51: Add a --colors flag that enables one to customize the colors used in ripgrep's output.
    • FEATURE #138: Add a --files-without-match flag that shows only file paths that contain zero matches.
    • FEATURE #230: Add completion files to the release (Bash, Fish and PowerShell).

    ๐Ÿ› Bug fixes:

    • BUG #37: Use correct ANSI escape sequences when TERM=screen.linux.
    • BUG #94: ripgrep now detects stdin on Windows automatically.
    • BUG #117: Colors should now work correctly and automatically inside mintty.
    • BUG #182: Colors should now work within Emacs. In particular, --color=always will emit colors regardless of the current environment.
    • BUG #189: Show less content when running rg -h. The full help content can be accessed with rg --help.
    • BUG #210: Support non-UTF-8 file names on Unix platforms.
    • BUG #231: Switch from block buffering to line buffering.
    • BUG #241: Some error messages weren't suppressed when --no-messages was used.