Skip to content

complete/zsh: improve --hyperlink-format completion#3102

Closed
okdana wants to merge 1 commit intoBurntSushi:masterfrom
okdana:dana/complete-hyperlink-format
Closed

complete/zsh: improve --hyperlink-format completion#3102
okdana wants to merge 1 commit intoBurntSushi:masterfrom
okdana:dana/complete-hyperlink-format

Conversation

@okdana
Copy link
Contributor

@okdana okdana commented Jul 13, 2025

here's better completion for --hyperlink-format

three known annoyances:

  • zsh doesn't perform brace expansion on single words, so users might be inclined to leave the variable braces unquoted, as in --hyperlink-format=foo://{path}. but i guess it generally assumes that it might and handles it at an earlier stage, which means our function doesn't even know the { is there. this causes unexpected behaviour. there is also a bug (i assume zsh's rather than mine but idk) where it re-inserts the { in a weird place, e.g. \{ho{st\}

  • zsh converts the the argument in --opt=arg style options to the \-escaped (rather than quoted) form when completing it, which is not pleasant with the syntax used here and exacerbates the above issue

  • if you have like --hyperlink-format '{}, press tab between the {}, and then press } after adding one of the matches, it won't swallow the extra }

off the top of my head idk if there's anything to be done about the first two. the last one can probably be fixed with compadd -R or sth. but tbh i got bored of the problem

if these limitations bother you i can simplify it so it only tries to complete the aliases i guess

i also made it so helper functions aren't re-defined if they exist. this is a convention of many completion functions that allows end-users to more easily define their own helpers if they want them to behave differently. i just forgot to do it before

also don't re-define helper functions if they exist
@ltrzesniewski
Copy link
Contributor

We were discussing with @ilyagr about the removal of duplicate hyperlink alias names in #3096 (here's my draft of this idea if you're interested).

If this would end up being accepted, what would you think about adding a !HYPERLINK_ALIAS_NAMES! variable (or similar) to be replaced, just like !ENCODINGS! is today?

@okdana
Copy link
Contributor Author

okdana commented Jul 15, 2025

oh. i was semi-conscious of the fact that i was getting e-mails about that, which is why i thought to do this. but i must've forgot about it already by the time i went to actually work on it, i never even looked at it

yes, that would be convenient

though i think, in contrast to the encodings, it makes sense for these to have descriptions for what they actually do. since they're auto-generated it could be as simple as the strings they expand to. so something like file:file://{host}{path} (or whatever delimiter)? if that's too cute just the names will work ofc, it's just not quite as helpful

then again the man page isn't explicit about them either so w/e

@ltrzesniewski
Copy link
Contributor

Either having the strings they expand to or adding a custom description to HYPERLINK_PATTERN_ALIASES would be possible. I think I'd also prefer having a description, especially since I like the ones you provided.

Lots of variants are possible here, and also for the main page.

@ltrzesniewski
Copy link
Contributor

I made #3103 to be used as a baseline, but didn't add descriptions yet since they wouldn't be used. Adding them won't be a problem if needed.

BurntSushi pushed a commit that referenced this pull request Sep 6, 2025
Also don't re-define helper functions if they exist.

Closes #3102
@BurntSushi
Copy link
Owner

Thank you! I took this as-is, except I added descriptions to the new HyperlinkAlias and auto-generated that part of the completion script.

@BurntSushi BurntSushi added the rollup A PR that has been merged with many others in a rollup. label Sep 6, 2025
BurntSushi pushed a commit that referenced this pull request Sep 10, 2025
Also don't re-define helper functions if they exist.

Closes #3102
BurntSushi pushed a commit that referenced this pull request Sep 19, 2025
Also don't re-define helper functions if they exist.

Closes #3102
BurntSushi pushed a commit that referenced this pull request Sep 20, 2025
Also don't re-define helper functions if they exist.

Closes #3102
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.

3 participants