@BurntSushi BurntSushi released this Sep 7, 2018 · 8 commits to master since this release

Assets 11

ripgrep is a line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. ripgrep has first class support on Windows, macOS and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep.

This is a new minor version release of ripgrep that contains some major new
features, a huge number of bug fixes, and is the first release based on
libripgrep. The entirety of ripgrep's core search and printing code has been
rewritten and generalized so that anyone can make use of it.

Major new features include PCRE2 support, multi-line search and a JSON output
format.

BREAKING CHANGES:

  • The minimum version required to compile Rust has now changed to track the
    latest stable version of Rust. Patch releases will continue to compile with
    the same version of Rust as the previous patch release, but new minor
    versions will use the current stable version of the Rust compile as its
    minimum supported version.
  • The match semantics of -w/--word-regexp have changed slightly. They used
    to be \b(?:<your pattern>)\b, but now it's
    (?:^|\W)(?:<your pattern>)(?:$|\W). This matches the behavior of GNU grep
    and is believed to be closer to the intended semantics of the flag. See
    #389 for more details.

Feature enhancements:

  • FEATURE #162:
    libripgrep is now a thing. The primary crate is
    grep.
  • FEATURE #176:
    Add -U/--multiline flag that permits matching over multiple lines.
  • FEATURE #188:
    Add -P/--pcre2 flag that gives support for look-around and backreferences.
  • FEATURE #244:
    Add --json flag that prints results in a JSON Lines format.
  • FEATURE #321:
    Add --one-file-system flag to skip directories on different file systems.
  • FEATURE #404:
    Add --sort and --sortr flag for more sorting. Deprecate --sort-files.
  • FEATURE #416:
    Add --crlf flag to permit $ to work with carriage returns on Windows.
  • FEATURE #917:
    The --trim flag strips prefix whitespace from all lines printed.
  • FEATURE #993:
    Add --null-data flag, which makes ripgrep use NUL as a line terminator.
  • FEATURE #997:
    The --passthru flag now works with the --replace flag.
  • FEATURE #1038-1:
    Add --line-buffered and --block-buffered for forcing a buffer strategy.
  • FEATURE #1038-2:
    Add --pre-glob for filtering files through the --pre flag.

Bug fixes:

  • BUG #2:
    Searching with non-zero context can now use memory maps if appropriate.
  • BUG #200:
    ripgrep will now stop correctly when its output pipe is closed.
  • BUG #389:
    The -w/--word-regexp flag now works more intuitively.
  • BUG #643:
    Detection of readable stdin has improved on Windows.
  • BUG #441,
    BUG #690,
    BUG #980:
    Matching empty lines now works correctly in several corner cases.
  • BUG #764:
    Color escape sequences now coalesce, which reduces output size.
  • BUG #842:
    Add man page to binary Debian package.
  • BUG #922:
    ripgrep is now more robust with respect to memory maps failing.
  • BUG #937:
    Color escape sequences are no longer emitted for empty matches.
  • BUG #940:
    Context from the --passthru flag should not impact process exit status.
  • BUG #984:
    Fixes bug in ignore crate where first path was always treated as a symlink.
  • BUG #990:
    Read stderr asynchronously when running a process.
  • BUG #1013:
    Add compile time and runtime CPU features to --version output.
  • BUG #1028:
    Don't complete bare pattern after -f in zsh.