Carapace-bin provides argument completion for multiple CLI commands (full list), and works across multiple POSIX and non-POSIX shells.
Supported shells:
multi-shell multi-command argument completer
Home Page: https://carapace.sh
License: MIT License
simpler to install additional commands to test and has newer versions
npm
npm is the package manager for the Node JavaScript platform.
It puts modules in place so that node can find them, and manages dependency conflicts intelligently.
L
No response
test and fix completion
migrate fork (https://github.com/rsteube/glab) to standalone completer
related carapace-sh/carapace#76
git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
https://git-scm.com/book/en/v2
No response
Main Porcelain Commands
Ancillary Commands / Manipulators
Ancillary Commands / Interrogators
Interacting with Others
Low-level Commands / Manipulators
Low-level Commands / Interrogators
Low-level Commands / Syncing Repositories
Low-level Commands / Internal Helpers
External commands
completions need to be invoked once before they can be replaced so that they are not autoloaded:
complete --do-complete 'chown ' > /dev/null
complete --erase -c 'chown'
complete -c 'chown' -f -a '(_carapace_lazy chown)'
needs: fish-shell/fish-shell#6716
First of all let me say I am totally amazed by carapace. I discovered it thanks to your PR cli/cli#2728 and was blown away when I discovered what it can do.
One minor thing I'd like to ask/request is how to change the format used for the descriptions?
In my ZSH setup using the standard completion source (e.g. for gh) the descriptions are separated by --
, which I like.
After loading carapace (source <(carapace gh zsh)
) the descriptions change to this format (using parentheses)
If possible I'd like to keep my existing description format so that it stays uniform across different commands.
Here's my zshrc for reference: https://github.com/disrupted/dotfiles/blob/4957c485b2b7bf2a73af9393bf8d599fd6afbfec/.zshrc
ffmpeg
A complete, cross-platform solution to record, convert and stream audio and video.
https://ffmpeg.org/ffmpeg.html
https://github.com/FFmpeg/FFmpeg
No response
add jobs to source completions for each shell
background service where carapace runs in background and provides completion over socket communication.
will set CARAPACE_SOCKET=/somefile
environment variable and if this exists (assume a server is running) generate the lazy loaded completion scripts with callback snippet that invokes nc
instead of the carapace binary.
This should improve performance.
related aws/aws-cli#6344
update readme with new asciicast that does not use docker-compose
waypoint
Standardize application patterns and workflows to enable developers at scale
https://www.hashicorp.com/products/waypoint
L
No response
add completions
add some command similar to caraparse to scrape go commands (like kubectl)
crude code used to prepare kubetl for caraparse parsing:
func scrape(cmd *cobra.Command) {
if cmd.Hidden {
return
}
text := make([]string, 0)
text = append(text, fmt.Sprint(uid.Command(cmd)))
text = append(text, fmt.Sprint(cmd.Name()))
text = append(text, fmt.Sprint(cmd.Short))
cmd.LocalFlags().VisitAll(func(f *pflag.Flag) {
val := ""
if f.Value.Type() != "bool" {
val = "VAL"
}
usage := strings.Split(f.Usage, "\n")[0]
if len(usage) > 100 {
usage = usage[:100]
}
if f.Shorthand == "" {
text = append(text, fmt.Sprintf("--%v %v %v", f.Name, val, usage))
} else {
text = append(text, fmt.Sprintf("-%v, --%v %v %v", f.Shorthand, f.Name, val, usage))
}
})
_ = ioutil.WriteFile("out/" + uid.Command(cmd) + ".txt", []byte(strings.Join(text, "\n")), 0644)
for _, subcmd := range cmd.Commands() {
scrape(subcmd)
}
}
init()
function calls can now be logged so add a ci test to not let the startup time get out of hand
GODEBUG=inittrace=1 go run . 2>&1 | grep 'init github.com/rsteube/carapace-bin/comp
leters' | awk '{print $5" "$6" "$2}' | sort -r
# 5.9 ms github.com/rsteube/carapace-bin/completers/kubectl_completer/cmd
# 2.6 ms github.com/rsteube/carapace-bin/completers/git_completer/cmd
# 2.4 ms github.com/rsteube/carapace-bin/completers/docker_completer/cmd
# 1.0 ms github.com/rsteube/carapace-bin/completers/cargo_completer/cmd
# 0.55 ms github.com/rsteube/carapace-bin/completers/vlc_completer/cmd
# 0.53 ms github.com/rsteube/carapace-bin/completers/tar_completer/cmd
# 0.43 ms github.com/rsteube/carapace-bin/completers/adb_completer/cmd
# 0.39 ms github.com/rsteube/carapace-bin/completers/nmcli_completer/cmd
related #136
flutter
Flutter makes it easy and fast to build beautiful apps for mobile and beyond
https://docs.flutter.dev/reference/flutter-cli
https://github.com/flutter/flutter
M
No response
pub
with increasing amount of completers might need to use yaegi to only initialize the needed command (assuming all init methods are called on invokation - need to check this)
carapace
cargo
Cargo is the Rust package manager. Cargo downloads your Rust packageโs dependencies, compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust communityโs package registry.
https://github.com/rust-lang/cargo
https://doc.rust-lang.org/cargo/
https://github.com/rust-lang/cargo
L
No response
common commands
installed commands:
mvn
Apache Maven is a software project management and comprehension tool.
https://maven.apache.org/run-maven/index.html
https://github.com/apache/maven/
M
No response
with go fmt
check
e.g.
/actions/git/git.go
fixes carapace-sh/carapace#64
aliases need to be read from cmd
chown --from games:<TAB>
(eval):1: parse error near `$(carapace chown zsh...'
_arguments:453: command not found: eval $(carapace chown zsh '_chown##from' hown --from games
use go:generate to create cmd/completers.go
and completers/*/main.go
related carapace-sh/carapace#58
add completions
needs elves/elvish#1153
add flag and positional completion
Management Commands:
Commands:
test and fix errors
pub
add missing completions to rg
(ripgrep)
seen at git log .
in elvish
work on different folders
see https://rsteube.github.io/carapace/carapace/action/chDir.html
https://medium.com/@lightcone/how-to-profile-go-programs-c6c00e8f2ebf
https://flaviocopes.com/golang-profiling/
use an environment variable (e.g. CARAPACE_PROFILEDIR
) so that multiple can be creating during actual use
related #136
to suppress default complete
command
consul
Consul uses service identities and traditional networking practices to help organizations securely connect applications running in any environment.
https://developer.hashicorp.com/consul/docs?product_intent=consul
https://github.com/hashicorp/consul
L
No response
Basic Commands (Beginner):
create Create a resource from a file or from stdin.
expose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service
run Run a particular image on the cluster
set Set specific features on objects
Basic Commands (Intermediate):
Deploy Commands:
Cluster Management Commands:
Troubleshooting and Debugging Commands:
Advanced Commands:
Settings Commands:
Other Commands:
since shorthand-only flags are now possible the existing completions must be updated
faas-cli
Official CLI for OpenFaaS
https://github.com/openfaas/faas-cli
M
No response
needs some tests as some completions are probably not correct
output and upload sarif reports for pr code comments
see https://docs.github.com/en/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github
see https://github.com/owenrumney/go-sarif
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.