diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 6766423888..b7558d9992 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -31,3 +31,12 @@ - [v0.28](./changelog/v0.28.md) - [v0.27](./changelog/v0.27.md) - [v0.26](./changelog/v0.26.md) + - [v0.25](./changelog/v0.25.md) + - [v0.24](./changelog/v0.24.md) + - [v0.23](./changelog/v0.23.md) + - [v0.22](./changelog/v0.22.md) + - [v0.21](./changelog/v0.21.md) + - [v0.20](./changelog/v0.20.md) + - [v0.19](./changelog/v0.19.md) + - [v0.18](./changelog/v0.18.md) + - [v0.17](./changelog/v0.17.md) diff --git a/docs/src/changelog/v0.17.md b/docs/src/changelog/v0.17.md new file mode 100644 index 0000000000..2a7c72c1de --- /dev/null +++ b/docs/src/changelog/v0.17.md @@ -0,0 +1,85 @@ +# v0.17 - Spec-tacular Citizen + +![](./v0.17/banner.png) + +[Specs] are now first-class citizens in carapace. They are integrated on root level and should behave similar to the existing completers (`carapace [spec.name] `). + +## List + +Completers based on [Specs] are highlighted in shells that support colors (details: `carapace --list=json`): + +![](./v0.17/list.png) + +## Bridge + +Using [Specs] for [bridging](https://rsteube.github.io/carapace-bin/bridge.html) is from now on the recommended approach. +As these are auto-loaded with `carapace _carapace` and provide support for embedded completion like `sudo [spec.name] `. + +Existing completers with the same name will also be overridden. +E.g. `kubectl` (which is currently a bit outdated) can be configured to use the official completer: + +```yaml +# ${UserConfigDir}/carapace/specs/kubectl.yaml +name: kubectl +description: kubectl controls the Kubernetes cluster manager +completion: + positionalany: ["$_bridge.Cobra(kubectl)"] +``` + +> Note that bridging adds a slight overhead (~7-9ms?) for each invocation and is limited to supported frameworks / commands. + + +## Plugin + +Taking this one step further plugin completion like `cargo-[plugin]`, `gh-[plugin]`, `git-[plugin]` can now also be defined by [Specs]. + +E.g. the [gh-repo-collab](https://github.com/mislav/gh-repo-collab) extension for [github-cli](https://cli.github.com/): +```yaml +# ${UserConfigDir}/carapace/specs/gh-repo-collab.yaml +name: gh-repo-collab +description: manage repository collaborators +commands: + - + name: list + completion: + positional: + - ["$_tools.gh.OwnerRepositories"] + - + name: add + flags: + --permission=: set permission + completion: + flag: + permission: ["pull", "triage", "push", "maintain", "admin\t\tred"] + positional: + - ["$_tools.gh.OwnerRepositories"] + - ["$_tools.gh.Users"] + - + name: remove + completion: + positional: + - ["$_tools.gh.OwnerRepositories"] + - ["$_tools.gh.Users"] +``` + +![](./v0.17/plugin.png) + +## Nushell + +With https://github.com/nushell/nushell/pull/6652 (upcoming [v0.70.0](https://github.com/nushell/nushell/milestone/11?closed=1)) the [nushell] integration is now working on positional arguments. +The recommended configuration is equivalent to the example configuration in `config.nu`: + +```nu +let carapace_completer = {|spans| + carapace $spans.0 nushell $spans | from json +} + +let-env config = { + external_completer: $carapace_completer +} +``` + +> Be sure to remove the `module completions` example so that it won't override the carapace completion + +[nushell]:https://www.nushell.sh/ +[Specs]:https://github.com/rsteube/carapace-spec \ No newline at end of file diff --git a/docs/src/changelog/v0.17/banner.png b/docs/src/changelog/v0.17/banner.png new file mode 100644 index 0000000000..ff37ed8fd8 Binary files /dev/null and b/docs/src/changelog/v0.17/banner.png differ diff --git a/docs/src/changelog/v0.17/list.png b/docs/src/changelog/v0.17/list.png new file mode 100644 index 0000000000..958fa9c89f Binary files /dev/null and b/docs/src/changelog/v0.17/list.png differ diff --git a/docs/src/changelog/v0.17/plugin.png b/docs/src/changelog/v0.17/plugin.png new file mode 100644 index 0000000000..4be6e69f54 Binary files /dev/null and b/docs/src/changelog/v0.17/plugin.png differ diff --git a/docs/src/changelog/v0.18.md b/docs/src/changelog/v0.18.md new file mode 100644 index 0000000000..cc43d7da81 --- /dev/null +++ b/docs/src/changelog/v0.18.md @@ -0,0 +1 @@ +# v0.18 diff --git a/docs/src/changelog/v0.19.md b/docs/src/changelog/v0.19.md new file mode 100644 index 0000000000..b258874534 --- /dev/null +++ b/docs/src/changelog/v0.19.md @@ -0,0 +1 @@ +# v0.19 diff --git a/docs/src/changelog/v0.20.md b/docs/src/changelog/v0.20.md new file mode 100644 index 0000000000..e38a2fed32 --- /dev/null +++ b/docs/src/changelog/v0.20.md @@ -0,0 +1 @@ +# v0.20 diff --git a/docs/src/changelog/v0.21.md b/docs/src/changelog/v0.21.md new file mode 100644 index 0000000000..2d0e2dc890 --- /dev/null +++ b/docs/src/changelog/v0.21.md @@ -0,0 +1 @@ +# v0.21 diff --git a/docs/src/changelog/v0.22.md b/docs/src/changelog/v0.22.md new file mode 100644 index 0000000000..8fed65dcca --- /dev/null +++ b/docs/src/changelog/v0.22.md @@ -0,0 +1 @@ +# v0.22 diff --git a/docs/src/changelog/v0.23.md b/docs/src/changelog/v0.23.md new file mode 100644 index 0000000000..d43c4a8b6b --- /dev/null +++ b/docs/src/changelog/v0.23.md @@ -0,0 +1 @@ +# v0.23 diff --git a/docs/src/changelog/v0.24.md b/docs/src/changelog/v0.24.md new file mode 100644 index 0000000000..fafdaada02 --- /dev/null +++ b/docs/src/changelog/v0.24.md @@ -0,0 +1,17 @@ +# v0.24 - Spring Cleaning + +![](./v0.24/banner.png) + +## carapace-bridge + +Moved bridge actions to [carapace-bridge]. +The shell bridges now use custom configs at [`${UserConfigDir}/carapace/bridge`] +(e.g. `~/.config/carapace/bridge/fish/config.fish` instead of `~/.config/fish/config.fish`). + +## removed flags + +Removed `--bridge` and `--spec` flags as user specs are preferred and there are [carapace-bridge] and [carapace-spec] as well. + +[`${UserConfigDir}/carapace/bridge`]:https://pkg.go.dev/os#UserConfigDir +[carapace-bridge]:https://github.com/rsteube/carapace-bridge +[carapace-spec]:https://github.com/rsteube/carapace-spec \ No newline at end of file diff --git a/docs/src/changelog/v0.24/banner.png b/docs/src/changelog/v0.24/banner.png new file mode 100644 index 0000000000..6685e3437a Binary files /dev/null and b/docs/src/changelog/v0.24/banner.png differ diff --git a/docs/src/changelog/v0.25.md b/docs/src/changelog/v0.25.md new file mode 100644 index 0000000000..4a2d701571 --- /dev/null +++ b/docs/src/changelog/v0.25.md @@ -0,0 +1 @@ +# v0.25