Skip to content

Add support for nested alternates#3048

Closed
lukesandberg wants to merge 2 commits intoBurntSushi:masterfrom
lukesandberg:serialize_globset
Closed

Add support for nested alternates#3048
lukesandberg wants to merge 2 commits intoBurntSushi:masterfrom
lukesandberg:serialize_globset

Conversation

@lukesandberg
Copy link
Contributor

This adds support for nesting alternates.

e.g. **/{node_modules/**/*/{ts,js},crates/**/*.{rs,toml}} would select all ts/js files found under node_modules and all rs/toml files found under crates in a single glob pattern.

…},crates/**/*.{rs,toml}`

Obviously there are other ways to write such a pattern but this seems easy to support since the only limitation was in the parser.
@BurntSushi BurntSushi added the rollup A PR that has been merged with many others in a rollup. label Aug 17, 2025
BurntSushi pushed a commit that referenced this pull request Aug 17, 2025
For example, `**/{node_modules/**/*/{ts,js},crates/**/*.{rs,toml}`.

I originally didn't add this I think for implementation simplicity, but
it turns out that it really isn't much work to do. There might have also
been some odd behavior in the regex engine for dealing with empty
alternates, but that has all been long fixed.

Closes #3048, Closes #3112
Copy link
Owner

@BurntSushi BurntSushi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thank you!!!

BurntSushi pushed a commit that referenced this pull request Aug 17, 2025
For example, `**/{node_modules/**/*/{ts,js},crates/**/*.{rs,toml}`.

I originally didn't add this I think for implementation simplicity, but
it turns out that it really isn't much work to do. There might have also
been some odd behavior in the regex engine for dealing with empty
alternates, but that has all been long fixed.

Closes #3048, Closes #3112
BurntSushi pushed a commit that referenced this pull request Sep 10, 2025
For example, `**/{node_modules/**/*/{ts,js},crates/**/*.{rs,toml}`.

I originally didn't add this I think for implementation simplicity, but
it turns out that it really isn't much work to do. There might have also
been some odd behavior in the regex engine for dealing with empty
alternates, but that has all been long fixed.

Closes #3048, Closes #3112
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 17, 2025
⚠️ **CAUTION: this is a major update, indicating a breaking change!** ⚠️

This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) | major | `14.1.1` -> `15.0.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>BurntSushi/ripgrep (BurntSushi/ripgrep)</summary>

### [`v15.0.0`](https://github.com/BurntSushi/ripgrep/blob/HEAD/CHANGELOG.md#1500-2025-10-15)

[Compare Source](BurntSushi/ripgrep@14.1.1...15.0.0)

\===================
ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes,
some minor performance improvements and minor new features. Here are some
highlights:

- Several bugs around gitignore matching have been fixed. This includes
  a commonly reported bug related to applying gitignore rules from parent
  directories.
- A memory usage regression when handling very large gitignore files has been
  fixed.
- `rg -vf file`, where `file` is empty, now matches everything.
- The `-r/--replace` flag now works with `--json`.
- A subset of Jujutsu (`jj`) repositories are now treated as if they were git
  repositories. That is, ripgrep will respect `jj`'s gitignores.
- Globs can now use nested curly braces.

Platform support:

- `aarch64` for Windows now has release artifacts.
- `powerpc64` no longer has release artifacts generated for it. The CI
  release workflow stopped working, and I didn't deem it worth my time to
  debug it. If someone wants this and can test it, I'd be happy to add it
  back.
- ripgrep binaries are now compiled with full LTO enabled. You may notice
  small performance improvements from this and a modest decrease in binary
  size.

Performance improvements:

- [PERF #&#8203;2111](BurntSushi/ripgrep#2111):
  Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used.
- [PERF #&#8203;2865](BurntSushi/ripgrep#2865):
  Avoid using path canonicalization on Windows when emitting hyperlinks.
- [PERF #&#8203;3184](BurntSushi/ripgrep#3184):
  Improve performance of large values with `-A/--after-context`.

Bug fixes:

- [BUG #&#8203;829](BurntSushi/ripgrep#829),
  [BUG #&#8203;2731](BurntSushi/ripgrep#2731),
  [BUG #&#8203;2747](BurntSushi/ripgrep#2747),
  [BUG #&#8203;2770](BurntSushi/ripgrep#2770),
  [BUG #&#8203;2778](BurntSushi/ripgrep#2778),
  [BUG #&#8203;2836](BurntSushi/ripgrep#2836),
  [BUG #&#8203;2933](BurntSushi/ripgrep#2933),
  [BUG #&#8203;3067](BurntSushi/ripgrep#3067):
  Fix bug related to gitignores from parent directories.
- [BUG #&#8203;1332](BurntSushi/ripgrep#1332),
  [BUG #&#8203;3001](BurntSushi/ripgrep#3001):
  Make `rg -vf file` where `file` is empty match everything.
- [BUG #&#8203;2177](BurntSushi/ripgrep#2177):
  Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files).
- [BUG #&#8203;2750](BurntSushi/ripgrep#2750):
  Fix memory usage regression for some truly large gitignore files.
- [BUG #&#8203;2944](BurntSushi/ripgrep#2944):
  Fix a bug where the "bytes searched" in `--stats` output could be incorrect.
- [BUG #&#8203;2990](BurntSushi/ripgrep#2990):
  Fix a bug where ripgrep would mishandle globs that ended with a `.`.
- [BUG #&#8203;2094](BurntSushi/ripgrep#2094),
  [BUG #&#8203;3076](BurntSushi/ripgrep#3076):
  Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches.
- [BUG #&#8203;3100](BurntSushi/ripgrep#3100):
  Preserve line terminators when using `-r/--replace` flag.
- [BUG #&#8203;3108](BurntSushi/ripgrep#3108):
  Fix a bug where `-q --files-without-match` inverted the exit code.
- [BUG #&#8203;3131](BurntSushi/ripgrep#3131):
  Document inconsistency between `-c/--count` and `--files-with-matches`.
- [BUG #&#8203;3135](BurntSushi/ripgrep#3135):
  Fix rare panic for some classes of large regexes on large haystacks.
- [BUG #&#8203;3140](BurntSushi/ripgrep#3140):
  Ensure hyphens in flag names are escaped in the roff text for the man page.
- [BUG #&#8203;3155](BurntSushi/ripgrep#3155):
  Statically compile PCRE2 into macOS release artifacts on `aarch64`.
- [BUG #&#8203;3173](BurntSushi/ripgrep#3173):
  Fix ancestor ignore filter bug when searching whitelisted hidden files.
- [BUG #&#8203;3178](BurntSushi/ripgrep#3178):
  Fix bug causing incorrect summary statistics with `--json` flag.
- [BUG #&#8203;3179](BurntSushi/ripgrep#3179):
  Fix gitignore bug when searching absolute paths with global gitignores.
- [BUG #&#8203;3180](BurntSushi/ripgrep#3180):
  Fix a panicking bug when using `-U/--multiline` and `-r/--replace`.

Feature enhancements:

- Many enhancements to the default set of file types available for filtering.
- [FEATURE #&#8203;1872](BurntSushi/ripgrep#1872):
  Make `-r/--replace` work with `--json`.
- [FEATURE #&#8203;2708](BurntSushi/ripgrep#2708):
  Completions for the fish shell take ripgrep's config file into account.
- [FEATURE #&#8203;2841](BurntSushi/ripgrep#2841):
  Add `italic` to the list of available style attributes in `--color`.
- [FEATURE #&#8203;2842](BurntSushi/ripgrep#2842):
  Directories containing `.jj` are now treated as git repositories.
- [FEATURE #&#8203;2849](BurntSushi/ripgrep#2849):
  When using multithreading, schedule files to search in order given on CLI.
- [FEATURE #&#8203;2943](BurntSushi/ripgrep#2943):
  Add `aarch64` release artifacts for Windows.
- [FEATURE #&#8203;3024](BurntSushi/ripgrep#3024):
  Add `highlight` color type, for styling non-matching text in a matching line.
- [FEATURE #&#8203;3048](BurntSushi/ripgrep#3048):
  Globs in ripgrep (and the `globset` crate) now support nested alternates.
- [FEATURE #&#8203;3096](BurntSushi/ripgrep#3096):
  Improve completions for `--hyperlink-format` in bash and fish.
- [FEATURE #&#8203;3102](BurntSushi/ripgrep#3102):
  Improve completions for `--hyperlink-format` in zsh.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDguNiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OC42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Oct 17, 2025
15.0.0 (2025-10-15)
===================
ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes,
some minor performance improvements and minor new features. Here are some
highlights:

* Several bugs around gitignore matching have been fixed. This includes
  a commonly reported bug related to applying gitignore rules from parent
  directories.
* A memory usage regression when handling very large gitignore files has been
  fixed.
* `rg -vf file`, where `file` is empty, now matches everything.
* The `-r/--replace` flag now works with `--json`.
* A subset of Jujutsu (`jj`) repositories are now treated as if they were git
  repositories. That is, ripgrep will respect `jj`'s gitignores.
* Globs can now use nested curly braces.

Platform support:

* `aarch64` for Windows now has release artifacts.
* `powerpc64` no longer has release artifacts generated for it. The CI
  release workflow stopped working, and I didn't deem it worth my time to
  debug it. If someone wants this and can test it, I'd be happy to add it
  back.
* ripgrep binaries are now compiled with full LTO enabled. You may notice
  small performance improvements from this and a modest decrease in binary
  size.

Performance improvements:

* [PERF #2111](BurntSushi/ripgrep#2111):
  Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used.
* [PERF #2865](BurntSushi/ripgrep#2865):
  Avoid using path canonicalization on Windows when emitting hyperlinks.
* [PERF #3184](BurntSushi/ripgrep#3184):
  Improve performance of large values with `-A/--after-context`.

Bug fixes:

* [BUG #829](BurntSushi/ripgrep#829),
  [BUG #2731](BurntSushi/ripgrep#2731),
  [BUG #2747](BurntSushi/ripgrep#2747),
  [BUG #2770](BurntSushi/ripgrep#2770),
  [BUG #2778](BurntSushi/ripgrep#2778),
  [BUG #2836](BurntSushi/ripgrep#2836),
  [BUG #2933](BurntSushi/ripgrep#2933),
  [BUG #3067](BurntSushi/ripgrep#3067):
  Fix bug related to gitignores from parent directories.
* [BUG #1332](BurntSushi/ripgrep#1332),
  [BUG #3001](BurntSushi/ripgrep#3001):
  Make `rg -vf file` where `file` is empty match everything.
* [BUG #2177](BurntSushi/ripgrep#2177):
  Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files).
* [BUG #2750](BurntSushi/ripgrep#2750):
  Fix memory usage regression for some truly large gitignore files.
* [BUG #2944](BurntSushi/ripgrep#2944):
  Fix a bug where the "bytes searched" in `--stats` output could be incorrect.
* [BUG #2990](BurntSushi/ripgrep#2990):
  Fix a bug where ripgrep would mishandle globs that ended with a `.`.
* [BUG #2094](BurntSushi/ripgrep#2094),
  [BUG #3076](BurntSushi/ripgrep#3076):
  Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches.
* [BUG #3100](BurntSushi/ripgrep#3100):
  Preserve line terminators when using `-r/--replace` flag.
* [BUG #3108](BurntSushi/ripgrep#3108):
  Fix a bug where `-q --files-without-match` inverted the exit code.
* [BUG #3131](BurntSushi/ripgrep#3131):
  Document inconsistency between `-c/--count` and `--files-with-matches`.
* [BUG #3135](BurntSushi/ripgrep#3135):
  Fix rare panic for some classes of large regexes on large haystacks.
* [BUG #3140](BurntSushi/ripgrep#3140):
  Ensure hyphens in flag names are escaped in the roff text for the man page.
* [BUG #3155](BurntSushi/ripgrep#3155):
  Statically compile PCRE2 into macOS release artifacts on `aarch64`.
* [BUG #3173](BurntSushi/ripgrep#3173):
  Fix ancestor ignore filter bug when searching whitelisted hidden files.
* [BUG #3178](BurntSushi/ripgrep#3178):
  Fix bug causing incorrect summary statistics with `--json` flag.
* [BUG #3179](BurntSushi/ripgrep#3179):
  Fix gitignore bug when searching absolute paths with global gitignores.
* [BUG #3180](BurntSushi/ripgrep#3180):
  Fix a panicking bug when using `-U/--multiline` and `-r/--replace`.

Feature enhancements:

* Many enhancements to the default set of file types available for filtering.
* [FEATURE #1872](BurntSushi/ripgrep#1872):
  Make `-r/--replace` work with `--json`.
* [FEATURE #2708](BurntSushi/ripgrep#2708):
  Completions for the fish shell take ripgrep's config file into account.
* [FEATURE #2841](BurntSushi/ripgrep#2841):
  Add `italic` to the list of available style attributes in `--color`.
* [FEATURE #2842](BurntSushi/ripgrep#2842):
  Directories containing `.jj` are now treated as git repositories.
* [FEATURE #2849](BurntSushi/ripgrep#2849):
  When using multithreading, schedule files to search in order given on CLI.
* [FEATURE #2943](BurntSushi/ripgrep#2943):
  Add `aarch64` release artifacts for Windows.
* [FEATURE #3024](BurntSushi/ripgrep#3024):
  Add `highlight` color type, for styling non-matching text in a matching line.
* [FEATURE #3048](BurntSushi/ripgrep#3048):
  Globs in ripgrep (and the `globset` crate) now support nested alternates.
* [FEATURE #3096](BurntSushi/ripgrep#3096):
  Improve completions for `--hyperlink-format` in bash and fish.
* [FEATURE #3102](BurntSushi/ripgrep#3102):
  Improve completions for `--hyperlink-format` in zsh.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Oct 23, 2025
15.0.0 (2025-10-15)
===================
ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes,
some minor performance improvements and minor new features. Here are some
highlights:

* Several bugs around gitignore matching have been fixed. This includes
  a commonly reported bug related to applying gitignore rules from parent
  directories.
* A memory usage regression when handling very large gitignore files has been
  fixed.
* `rg -vf file`, where `file` is empty, now matches everything.
* The `-r/--replace` flag now works with `--json`.
* A subset of Jujutsu (`jj`) repositories are now treated as if they were git
  repositories. That is, ripgrep will respect `jj`'s gitignores.
* Globs can now use nested curly braces.

Platform support:

* `aarch64` for Windows now has release artifacts.
* `powerpc64` no longer has release artifacts generated for it. The CI
  release workflow stopped working, and I didn't deem it worth my time to
  debug it. If someone wants this and can test it, I'd be happy to add it
  back.
* ripgrep binaries are now compiled with full LTO enabled. You may notice
  small performance improvements from this and a modest decrease in binary
  size.

Performance improvements:

* [PERF #2111](BurntSushi/ripgrep#2111):
  Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used.
* [PERF #2865](BurntSushi/ripgrep#2865):
  Avoid using path canonicalization on Windows when emitting hyperlinks.
* [PERF #3184](BurntSushi/ripgrep#3184):
  Improve performance of large values with `-A/--after-context`.

Bug fixes:

* [BUG #829](BurntSushi/ripgrep#829),
  [BUG #2731](BurntSushi/ripgrep#2731),
  [BUG #2747](BurntSushi/ripgrep#2747),
  [BUG #2770](BurntSushi/ripgrep#2770),
  [BUG #2778](BurntSushi/ripgrep#2778),
  [BUG #2836](BurntSushi/ripgrep#2836),
  [BUG #2933](BurntSushi/ripgrep#2933),
  [BUG #3067](BurntSushi/ripgrep#3067):
  Fix bug related to gitignores from parent directories.
* [BUG #1332](BurntSushi/ripgrep#1332),
  [BUG #3001](BurntSushi/ripgrep#3001):
  Make `rg -vf file` where `file` is empty match everything.
* [BUG #2177](BurntSushi/ripgrep#2177):
  Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files).
* [BUG #2750](BurntSushi/ripgrep#2750):
  Fix memory usage regression for some truly large gitignore files.
* [BUG #2944](BurntSushi/ripgrep#2944):
  Fix a bug where the "bytes searched" in `--stats` output could be incorrect.
* [BUG #2990](BurntSushi/ripgrep#2990):
  Fix a bug where ripgrep would mishandle globs that ended with a `.`.
* [BUG #2094](BurntSushi/ripgrep#2094),
  [BUG #3076](BurntSushi/ripgrep#3076):
  Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches.
* [BUG #3100](BurntSushi/ripgrep#3100):
  Preserve line terminators when using `-r/--replace` flag.
* [BUG #3108](BurntSushi/ripgrep#3108):
  Fix a bug where `-q --files-without-match` inverted the exit code.
* [BUG #3131](BurntSushi/ripgrep#3131):
  Document inconsistency between `-c/--count` and `--files-with-matches`.
* [BUG #3135](BurntSushi/ripgrep#3135):
  Fix rare panic for some classes of large regexes on large haystacks.
* [BUG #3140](BurntSushi/ripgrep#3140):
  Ensure hyphens in flag names are escaped in the roff text for the man page.
* [BUG #3155](BurntSushi/ripgrep#3155):
  Statically compile PCRE2 into macOS release artifacts on `aarch64`.
* [BUG #3173](BurntSushi/ripgrep#3173):
  Fix ancestor ignore filter bug when searching whitelisted hidden files.
* [BUG #3178](BurntSushi/ripgrep#3178):
  Fix bug causing incorrect summary statistics with `--json` flag.
* [BUG #3179](BurntSushi/ripgrep#3179):
  Fix gitignore bug when searching absolute paths with global gitignores.
* [BUG #3180](BurntSushi/ripgrep#3180):
  Fix a panicking bug when using `-U/--multiline` and `-r/--replace`.

Feature enhancements:

* Many enhancements to the default set of file types available for filtering.
* [FEATURE #1872](BurntSushi/ripgrep#1872):
  Make `-r/--replace` work with `--json`.
* [FEATURE #2708](BurntSushi/ripgrep#2708):
  Completions for the fish shell take ripgrep's config file into account.
* [FEATURE #2841](BurntSushi/ripgrep#2841):
  Add `italic` to the list of available style attributes in `--color`.
* [FEATURE #2842](BurntSushi/ripgrep#2842):
  Directories containing `.jj` are now treated as git repositories.
* [FEATURE #2849](BurntSushi/ripgrep#2849):
  When using multithreading, schedule files to search in order given on CLI.
* [FEATURE #2943](BurntSushi/ripgrep#2943):
  Add `aarch64` release artifacts for Windows.
* [FEATURE #3024](BurntSushi/ripgrep#3024):
  Add `highlight` color type, for styling non-matching text in a matching line.
* [FEATURE #3048](BurntSushi/ripgrep#3048):
  Globs in ripgrep (and the `globset` crate) now support nested alternates.
* [FEATURE #3096](BurntSushi/ripgrep#3096):
  Improve completions for `--hyperlink-format` in bash and fish.
* [FEATURE #3102](BurntSushi/ripgrep#3102):
  Improve completions for `--hyperlink-format` in zsh.
riastradh pushed a commit to riastradh/pkgsrc-test20250901 that referenced this pull request Feb 8, 2026
15.0.0 (2025-10-15)
===================
ripgrep 15 is a new major version release of ripgrep that mostly has bug fixes,
some minor performance improvements and minor new features. Here are some
highlights:

* Several bugs around gitignore matching have been fixed. This includes
  a commonly reported bug related to applying gitignore rules from parent
  directories.
* A memory usage regression when handling very large gitignore files has been
  fixed.
* `rg -vf file`, where `file` is empty, now matches everything.
* The `-r/--replace` flag now works with `--json`.
* A subset of Jujutsu (`jj`) repositories are now treated as if they were git
  repositories. That is, ripgrep will respect `jj`'s gitignores.
* Globs can now use nested curly braces.

Platform support:

* `aarch64` for Windows now has release artifacts.
* `powerpc64` no longer has release artifacts generated for it. The CI
  release workflow stopped working, and I didn't deem it worth my time to
  debug it. If someone wants this and can test it, I'd be happy to add it
  back.
* ripgrep binaries are now compiled with full LTO enabled. You may notice
  small performance improvements from this and a modest decrease in binary
  size.

Performance improvements:

* [PERF #2111](BurntSushi/ripgrep#2111):
  Don't resolve helper binaries on Windows when `-z/--search-zip` isn't used.
* [PERF #2865](BurntSushi/ripgrep#2865):
  Avoid using path canonicalization on Windows when emitting hyperlinks.
* [PERF #3184](BurntSushi/ripgrep#3184):
  Improve performance of large values with `-A/--after-context`.

Bug fixes:

* [BUG #829](BurntSushi/ripgrep#829),
  [BUG #2731](BurntSushi/ripgrep#2731),
  [BUG #2747](BurntSushi/ripgrep#2747),
  [BUG #2770](BurntSushi/ripgrep#2770),
  [BUG #2778](BurntSushi/ripgrep#2778),
  [BUG #2836](BurntSushi/ripgrep#2836),
  [BUG #2933](BurntSushi/ripgrep#2933),
  [BUG #3067](BurntSushi/ripgrep#3067):
  Fix bug related to gitignores from parent directories.
* [BUG #1332](BurntSushi/ripgrep#1332),
  [BUG #3001](BurntSushi/ripgrep#3001):
  Make `rg -vf file` where `file` is empty match everything.
* [BUG #2177](BurntSushi/ripgrep#2177):
  Ignore a UTF-8 BOM marker at the start of `.gitignore` (and similar files).
* [BUG #2750](BurntSushi/ripgrep#2750):
  Fix memory usage regression for some truly large gitignore files.
* [BUG #2944](BurntSushi/ripgrep#2944):
  Fix a bug where the "bytes searched" in `--stats` output could be incorrect.
* [BUG #2990](BurntSushi/ripgrep#2990):
  Fix a bug where ripgrep would mishandle globs that ended with a `.`.
* [BUG #2094](BurntSushi/ripgrep#2094),
  [BUG #3076](BurntSushi/ripgrep#3076):
  Fix bug with `-m/--max-count` and `-U/--multiline` showing too many matches.
* [BUG #3100](BurntSushi/ripgrep#3100):
  Preserve line terminators when using `-r/--replace` flag.
* [BUG #3108](BurntSushi/ripgrep#3108):
  Fix a bug where `-q --files-without-match` inverted the exit code.
* [BUG #3131](BurntSushi/ripgrep#3131):
  Document inconsistency between `-c/--count` and `--files-with-matches`.
* [BUG #3135](BurntSushi/ripgrep#3135):
  Fix rare panic for some classes of large regexes on large haystacks.
* [BUG #3140](BurntSushi/ripgrep#3140):
  Ensure hyphens in flag names are escaped in the roff text for the man page.
* [BUG #3155](BurntSushi/ripgrep#3155):
  Statically compile PCRE2 into macOS release artifacts on `aarch64`.
* [BUG #3173](BurntSushi/ripgrep#3173):
  Fix ancestor ignore filter bug when searching whitelisted hidden files.
* [BUG #3178](BurntSushi/ripgrep#3178):
  Fix bug causing incorrect summary statistics with `--json` flag.
* [BUG #3179](BurntSushi/ripgrep#3179):
  Fix gitignore bug when searching absolute paths with global gitignores.
* [BUG #3180](BurntSushi/ripgrep#3180):
  Fix a panicking bug when using `-U/--multiline` and `-r/--replace`.

Feature enhancements:

* Many enhancements to the default set of file types available for filtering.
* [FEATURE #1872](BurntSushi/ripgrep#1872):
  Make `-r/--replace` work with `--json`.
* [FEATURE #2708](BurntSushi/ripgrep#2708):
  Completions for the fish shell take ripgrep's config file into account.
* [FEATURE #2841](BurntSushi/ripgrep#2841):
  Add `italic` to the list of available style attributes in `--color`.
* [FEATURE #2842](BurntSushi/ripgrep#2842):
  Directories containing `.jj` are now treated as git repositories.
* [FEATURE #2849](BurntSushi/ripgrep#2849):
  When using multithreading, schedule files to search in order given on CLI.
* [FEATURE #2943](BurntSushi/ripgrep#2943):
  Add `aarch64` release artifacts for Windows.
* [FEATURE #3024](BurntSushi/ripgrep#3024):
  Add `highlight` color type, for styling non-matching text in a matching line.
* [FEATURE #3048](BurntSushi/ripgrep#3048):
  Globs in ripgrep (and the `globset` crate) now support nested alternates.
* [FEATURE #3096](BurntSushi/ripgrep#3096):
  Improve completions for `--hyperlink-format` in bash and fish.
* [FEATURE #3102](BurntSushi/ripgrep#3102):
  Improve completions for `--hyperlink-format` in zsh.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rollup A PR that has been merged with many others in a rollup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants