mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-25 15:20:08 +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]'
|
||||
'install[compile and install packages and dependencies]'
|
||||
'list[list packages]'
|
||||
'mod[modules maintenance]'
|
||||
'run[compile and run Go program]'
|
||||
'test[test packages]'
|
||||
'tool[run specified go tool]'
|
||||
|
@ -83,7 +84,7 @@ __go_tool_complete() {
|
|||
"-x[print remove commands as it executes them]" \
|
||||
"*:importpaths:__go_packages"
|
||||
;;
|
||||
fix|fmt|list|vet)
|
||||
fix|fmt|vet)
|
||||
_alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"'
|
||||
;;
|
||||
install)
|
||||
|
@ -124,6 +125,81 @@ __go_tool_complete() {
|
|||
"-memprofilerate[set heap profiling rate]:number" \
|
||||
"*: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)
|
||||
_values "${commands[@]}" \
|
||||
'environment[show Go environment variables available]' \
|
||||
|
@ -189,6 +265,7 @@ alias gofa='go fmt ./...'
|
|||
alias gog='go get'
|
||||
alias goi='go install'
|
||||
alias gol='go list'
|
||||
alias gom='go mod'
|
||||
alias gop='cd $GOPATH'
|
||||
alias gopb='cd $GOPATH/bin'
|
||||
alias gops='cd $GOPATH/src'
|
||||
|
|
Loading…
Reference in a new issue