Some checks failed
ci / test (beta, ubuntu-latest, beta) (pull_request) Has been cancelled
ci / test (macos, macos-latest, nightly) (pull_request) Has been cancelled
ci / test (nightly, ubuntu-latest, nightly) (pull_request) Has been cancelled
ci / test (pinned, ubuntu-latest, 1.85.0) (pull_request) Has been cancelled
ci / test (stable, ubuntu-latest, stable) (pull_request) Has been cancelled
ci / test (stable-aarch64, ubuntu-latest, stable, aarch64-unknown-linux-gnu) (pull_request) Has been cancelled
ci / test (stable-arm-gnueabihf, ubuntu-latest, stable, armv7-unknown-linux-gnueabihf) (pull_request) Has been cancelled
ci / test (stable-arm-musleabi, ubuntu-latest, stable, armv7-unknown-linux-musleabi) (pull_request) Has been cancelled
ci / test (stable-arm-musleabihf, ubuntu-latest, stable, armv7-unknown-linux-musleabihf) (pull_request) Has been cancelled
ci / test (stable-musl, ubuntu-latest, stable, x86_64-unknown-linux-musl) (pull_request) Has been cancelled
ci / test (stable-powerpc64, ubuntu-latest, stable, powerpc64-unknown-linux-gnu) (pull_request) Has been cancelled
ci / test (stable-riscv64, ubuntu-latest, stable, riscv64gc-unknown-linux-gnu) (pull_request) Has been cancelled
ci / test (stable-s390x, ubuntu-latest, stable, s390x-unknown-linux-gnu) (pull_request) Has been cancelled
ci / test (stable-x86, ubuntu-latest, stable, i686-unknown-linux-gnu) (pull_request) Has been cancelled
ci / test (win-gnu, windows-latest, nightly-x86_64-gnu) (pull_request) Has been cancelled
ci / test (win-msvc, windows-latest, nightly) (pull_request) Has been cancelled
ci / test (winaarch64-msvc, windows-11-arm, nightly) (pull_request) Has been cancelled
ci / wasm (pull_request) Has been cancelled
ci / rustfmt (pull_request) Has been cancelled
ci / docs (pull_request) Has been cancelled
ci / Compile Fuzz Test Targets (pull_request) Has been cancelled
33 lines
1.2 KiB
Rust
33 lines
1.2 KiB
Rust
/*!
|
|
Provides completions for ripgrep's CLI for the zsh shell.
|
|
|
|
Unlike completion short for other shells (at time of writing), zsh's
|
|
completions for ripgrep are maintained by hand. This is because:
|
|
|
|
1. They are lovingly written by an expert in such things.
|
|
2. Are much higher in quality than the ones below that are auto-generated.
|
|
Namely, the zsh completions take application level context about flag
|
|
compatibility into account.
|
|
3. There is a CI script that fails if a new flag is added to ripgrep that
|
|
isn't included in the zsh completions.
|
|
4. There is a wealth of documentation in the zsh script explaining how it
|
|
works and how it can be extended.
|
|
|
|
In principle, I'd be open to maintaining any completion script by hand so
|
|
long as it meets criteria 3 and 4 above.
|
|
*/
|
|
|
|
/// Generate completions for zsh.
|
|
pub(crate) fn generate() -> String {
|
|
let hyperlink_alias_descriptions = grep::printer::hyperlink_aliases()
|
|
.iter()
|
|
.map(|alias| {
|
|
format!(r#" {}:"{}""#, alias.name(), alias.description())
|
|
})
|
|
.collect::<Vec<String>>()
|
|
.join("\n");
|
|
include_str!("rgs.zsh")
|
|
.replace("!ENCODINGS!", super::ENCODINGS.trim_end())
|
|
.replace("!HYPERLINK_ALIASES!", &hyperlink_alias_descriptions)
|
|
}
|