mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-22 13:50:09 +00:00
golang: mod and list commands completion (#7665)
Also, add `gom` alias to `go mod`.
This commit is contained in:
parent
d79415b17d
commit
ae7d0bcdb9
1 changed files with 78 additions and 1 deletions
|
@ -28,6 +28,7 @@ __go_tool_complete() {
|
||||||
'help[display help]'
|
'help[display help]'
|
||||||
'install[compile and install packages and dependencies]'
|
'install[compile and install packages and dependencies]'
|
||||||
'list[list packages]'
|
'list[list packages]'
|
||||||
|
'mod[modules maintenance]'
|
||||||
'run[compile and run Go program]'
|
'run[compile and run Go program]'
|
||||||
'test[test packages]'
|
'test[test packages]'
|
||||||
'tool[run specified go tool]'
|
'tool[run specified go tool]'
|
||||||
|
@ -83,7 +84,7 @@ __go_tool_complete() {
|
||||||
"-x[print remove commands as it executes them]" \
|
"-x[print remove commands as it executes them]" \
|
||||||
"*:importpaths:__go_packages"
|
"*:importpaths:__go_packages"
|
||||||
;;
|
;;
|
||||||
fix|fmt|list|vet)
|
fix|fmt|vet)
|
||||||
_alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"'
|
_alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"'
|
||||||
;;
|
;;
|
||||||
install)
|
install)
|
||||||
|
@ -124,6 +125,81 @@ __go_tool_complete() {
|
||||||
"-memprofilerate[set heap profiling rate]:number" \
|
"-memprofilerate[set heap profiling rate]:number" \
|
||||||
"*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }"
|
"*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }"
|
||||||
;;
|
;;
|
||||||
|
list)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-f[alternative format for the list]:format" \
|
||||||
|
"-json[print data in json format]" \
|
||||||
|
"-compiled[set CompiledGoFiles to the Go source files presented to the compiler]" \
|
||||||
|
"-deps[iterate over not just the named packages but also all their dependencies]" \
|
||||||
|
"-e[change the handling of erroneous packages]" \
|
||||||
|
"-export[set the Export field to the name of a file containing up-to-date export information for the given package]" \
|
||||||
|
"-find[identify the named packages but not resolve their dependencies]" \
|
||||||
|
"-test[report not only the named packages but also their test binaries]" \
|
||||||
|
"-m[list modules instead of packages]" \
|
||||||
|
"-u[adds information about available upgrades]" \
|
||||||
|
"-versions[set the Module's Versions field to a list of all known versions of that module]:number" \
|
||||||
|
"*:importpaths:__go_packages"
|
||||||
|
;;
|
||||||
|
mod)
|
||||||
|
typeset -a mod_commands
|
||||||
|
mod_commands+=(
|
||||||
|
'download[download modules to local cache]'
|
||||||
|
'edit[edit go.mod from tools or scripts]'
|
||||||
|
'graph[print module requirement graph]'
|
||||||
|
'init[initialize new module in current directory]'
|
||||||
|
'tidy[add missing and remove unused modules]'
|
||||||
|
'vendor[make vendored copy of dependencies]'
|
||||||
|
'verify[verify dependencies have expected content]'
|
||||||
|
'why[explain why packages or modules are needed]'
|
||||||
|
)
|
||||||
|
if (( CURRENT == 3 )); then
|
||||||
|
_values 'go mod commands' ${mod_commands[@]} "help[display help]"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
case ${words[3]} in
|
||||||
|
help)
|
||||||
|
_values 'go mod commands' ${mod_commands[@]}
|
||||||
|
;;
|
||||||
|
download)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-json[print a sequence of JSON objects standard output]" \
|
||||||
|
"*:flags"
|
||||||
|
;;
|
||||||
|
edit)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-fmt[reformat the go.mod file]" \
|
||||||
|
"-module[change the module's path]" \
|
||||||
|
"-replace[=old{@v}=new{@v} add a replacement of the given module path and version pair]:name" \
|
||||||
|
"-dropreplace[=old{@v}=new{@v} drop a replacement of the given module path and version pair]:name" \
|
||||||
|
"-go[={version} set the expected Go language version]:number" \
|
||||||
|
"-print[print the final go.mod in its text format]" \
|
||||||
|
"-json[print the final go.mod file in JSON format]" \
|
||||||
|
"*:flags"
|
||||||
|
;;
|
||||||
|
graph)
|
||||||
|
;;
|
||||||
|
init)
|
||||||
|
;;
|
||||||
|
tidy)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-v[print information about removed modules]" \
|
||||||
|
"*:flags"
|
||||||
|
;;
|
||||||
|
vendor)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-v[print the names of vendored]" \
|
||||||
|
"*:flags"
|
||||||
|
;;
|
||||||
|
verify)
|
||||||
|
;;
|
||||||
|
why)
|
||||||
|
_arguments -s -w : \
|
||||||
|
"-m[treats the arguments as a list of modules and finds a path to any package in each of the modules]" \
|
||||||
|
"-vendor[exclude tests of dependencies]" \
|
||||||
|
"*:importpaths:__go_packages"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
help)
|
help)
|
||||||
_values "${commands[@]}" \
|
_values "${commands[@]}" \
|
||||||
'environment[show Go environment variables available]' \
|
'environment[show Go environment variables available]' \
|
||||||
|
@ -189,6 +265,7 @@ alias gofa='go fmt ./...'
|
||||||
alias gog='go get'
|
alias gog='go get'
|
||||||
alias goi='go install'
|
alias goi='go install'
|
||||||
alias gol='go list'
|
alias gol='go list'
|
||||||
|
alias gom='go mod'
|
||||||
alias gop='cd $GOPATH'
|
alias gop='cd $GOPATH'
|
||||||
alias gopb='cd $GOPATH/bin'
|
alias gopb='cd $GOPATH/bin'
|
||||||
alias gops='cd $GOPATH/src'
|
alias gops='cd $GOPATH/src'
|
||||||
|
|
Loading…
Reference in a new issue