Skip to content

Commit

Permalink
Merge pull request #1906 from rsteube/more-changelog
Browse files Browse the repository at this point in the history
doc: migrated more changelogs
  • Loading branch information
rsteube authored Oct 13, 2023
2 parents ee25832 + 02f738c commit a18b534
Show file tree
Hide file tree
Showing 33 changed files with 231 additions and 723 deletions.
2 changes: 1 addition & 1 deletion docs/book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ title = "carapace-bin"

[output.html]
default-theme = "Mocha"
additional-css = ["asciinema/asciinema-player.css", "./theme/catppuccin.css", "./theme/catppuccin-highlight.css"]
additional-css = ["asciinema/asciinema-player.css", "./theme/catppuccin.css"]
additional-js = ["asciinema/asciinema-player.min.js", "asciinema/load.js"]
git-repository-url = "https://github.com/rsteube/carapace-bin"
edit-url-template = "https://github.com/rsteube/carapace-bin/edit/master/docs/{path}"
Expand Down
15 changes: 15 additions & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,18 @@
- [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)
- [v0.16](./changelog/v0.16.md)
- [v0.15](./changelog/v0.15.md)
- [v0.14](./changelog/v0.14.md)
- [v0.13](./changelog/v0.13.md)
- [v0.12](./changelog/v0.12.md)
- [v0.11](./changelog/v0.11.md)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions docs/src/changelog/v0.11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# v0.11 - Puking Rainbows

![](./v0.11/banner.png)

This release adds color support for `zsh` and `elvish` and thus raises `elvish` minimum version to `v0.18.0`.

![](./v0.11/rainbow.png)

## LS_COLORS
`LS_COLORS` should now be working correctly - e.g with [vivid](https://github.com/sharkdp/vivid) in `elvish`:
```sh
set E:LS_COLORS = (vivid generate dracula)
```

![](./v0.11/lscolors1.png)

![](./v0.11/lscolors2.png)

## Style Config

Styles can now be configured with `carapace --style key=value` (an empty value restores the default).

![](./v0.11/style-config.png)

## Powershell Style

Added color support for powershell.

![](./v0.11/powershell.png)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/lscolors1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/lscolors2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/powershell.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/rainbow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.11/style-config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 73 additions & 0 deletions docs/src/changelog/v0.12.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# v0.12 - Preinfusion

![](./v0.12/banner.png)

## Preinvoke

Generic alteration of completion before execution which enables features like directory change in `git -C <DIR>`:

![](./v0.12/preinvoke.png)

## Spec

Experimental support for simple completions using `yaml` [spec files](https://github.com/rsteube/carapace-spec/tree/master/example):

```yaml
name: example
description:
flags:
--dynamic=: dynamic value
-o, --optarg?: optarg flag
-s, --styled=: styled values
completion:
flag:
dynamic: ["$(git branch --all | cut -c 3- | sed 's/$/\t\tblue/')", "static value"]
optarg: ["first", "second", "third"]
styled:
- "blue\tblue\tblue"
- "cyan\tcyan\tcyan"
positional:
- ["pos1-a", "pos1-b", "pos1-c"]
- ["$_files"]
```
## Spec Autoloading
Specs placed in `${UserConfigDir}/carapace/specs/` ([UserConfigDir](https://pkg.go.dev/[email protected]#UserConfigDir)) are now registered with `carapace _carapace`.
File name must be the command to be completed and match `^[0-9a-zA-Z_\-.]+\.yaml$` (sanity check to avoid breakage in scripts).

## Custom Macros

Exposed [actions](https://pkg.go.dev/github.com/rsteube/carapace-bin/pkg/actions) as custom macros (list with `carapace --macros`).
Removed the `_` prefix from core macros to avoid clashes (e.g. `$files`, `$directories`).

## Macro Arguments
Arguments are parsed as `yaml` (`$macro(yaml)` - e.g.: `$_tools.gh.Users({users: true})`).
Brackets are optional when no argument is passed (`$files` instead of `$files()`).

## Variable Substitution

Variables are replaced using [drone/envsubst](https://github.com/drone/envsubst) for contextual completion:

```yaml
name: myzip
completion:
positional:
- ["$files([.zip])"] # ${C_ARG0}
positionalany: ["$_fs.ZipFileContents(${C_ARG0})"] # ${C_ARG1},${C_ARG2},...
```

Flags are only added to env when their value changed (thus: `${C_FLAG_FLAGNAME:-default}`):

```yaml
name: myrefs
flags:
--tags: list tags # ${C_FLAG_TAGS}
--localbranches: list local branches # ${C_FLAG_LOCALBRANCHES}
--commits=: amount of commits # ${C_FLAG_COMMITS}
completion:
positional:
- ["$_tools.git.Refs({tags: ${C_FLAG_TAGS:-false}, localbranches: ${C_FLAG_LOCALBRANCHES:-false}, commits: ${C_FLAG_COMMITS:-0}})"] # refs based on flag values with defaults
- ["$_tools.git.Refs"] # default refs
- ["$(env)"] # env
```
Binary file added docs/src/changelog/v0.12/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.12/preinvoke.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/src/changelog/v0.13.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.13
1 change: 1 addition & 0 deletions docs/src/changelog/v0.14.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.14
1 change: 1 addition & 0 deletions docs/src/changelog/v0.15.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.15
1 change: 1 addition & 0 deletions docs/src/changelog/v0.16.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.16
85 changes: 85 additions & 0 deletions docs/src/changelog/v0.17.md
Original file line number Diff line number Diff line change
@@ -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] <TAB>`).

## 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](../spec/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] <TAB>`.

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
Binary file added docs/src/changelog/v0.17/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.17/list.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/src/changelog/v0.17/plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/src/changelog/v0.18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.18
1 change: 1 addition & 0 deletions docs/src/changelog/v0.19.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.19
1 change: 1 addition & 0 deletions docs/src/changelog/v0.20.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.20
1 change: 1 addition & 0 deletions docs/src/changelog/v0.21.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.21
1 change: 1 addition & 0 deletions docs/src/changelog/v0.22.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.22
1 change: 1 addition & 0 deletions docs/src/changelog/v0.23.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.23
17 changes: 17 additions & 0 deletions docs/src/changelog/v0.24.md
Original file line number Diff line number Diff line change
@@ -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
Binary file added docs/src/changelog/v0.24/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/src/changelog/v0.25.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# v0.25
Loading

0 comments on commit a18b534

Please sign in to comment.