From 2078e7d4deac2546deea6b707837b39c535eaa78 Mon Sep 17 00:00:00 2001 From: Luke Steensen Date: Wed, 12 Feb 2014 20:09:44 -0600 Subject: [PATCH 1/2] remove duplicate 'go' plugin, symlink to 'golang' --- plugins/go/go.plugin.zsh | 152 +-------------------------------------- 1 file changed, 1 insertion(+), 151 deletions(-) mode change 100644 => 120000 plugins/go/go.plugin.zsh diff --git a/plugins/go/go.plugin.zsh b/plugins/go/go.plugin.zsh deleted file mode 100644 index 23afa965..00000000 --- a/plugins/go/go.plugin.zsh +++ /dev/null @@ -1,151 +0,0 @@ -# install in /etc/zsh/zshrc or your personal .zshrc - -# gc -prefixes=(5 6 8) -for p in $prefixes; do - compctl -g "*.${p}" ${p}l - compctl -g "*.go" ${p}g -done - -# standard go tools -compctl -g "*.go" gofmt - -# gccgo -compctl -g "*.go" gccgo - -# go tool -__go_tool_complete() { - typeset -a commands build_flags - commands+=( - 'build[compile packages and dependencies]' - 'clean[remove object files]' - 'doc[run godoc on package sources]' - 'fix[run go tool fix on packages]' - 'fmt[run gofmt on package sources]' - 'get[download and install packages and dependencies]' - 'help[display help]' - 'install[compile and install packages and dependencies]' - 'list[list packages]' - 'run[compile and run Go program]' - 'test[test packages]' - 'tool[run specified go tool]' - 'version[print Go version]' - 'vet[run go tool vet on packages]' - ) - if (( CURRENT == 2 )); then - # explain go commands - _values 'go tool commands' ${commands[@]} - return - fi - build_flags=( - '-a[force reinstallation of packages that are already up-to-date]' - '-n[print the commands but do not run them]' - "-p[number of parallel builds]:number" - '-x[print the commands]' - "-work[print temporary directory name and keep it]" - "-gcflags[flags for 5g/6g/8g]:flags" - "-ldflags[flags for 5l/6l/8l]:flags" - "-gccgoflags[flags for gccgo]:flags" - ) - __go_list() { - local expl importpaths - declare -a importpaths - importpaths=($(go list ${words[$CURRENT]}... 2>/dev/null)) - _wanted importpaths expl 'import paths' compadd "$@" - "${importpaths[@]}" - } - case ${words[2]} in - clean|doc) - _arguments -s -w : '*:importpaths:__go_list' - ;; - fix|fmt|list|vet) - _alternative ':importpaths:__go_list' ':files:_path_files -g "*.go"' - ;; - install) - _arguments -s -w : ${build_flags[@]} \ - "-v[show package names]" \ - '*:importpaths:__go_list' - ;; - get) - _arguments -s -w : \ - ${build_flags[@]} - ;; - build) - _arguments -s -w : \ - ${build_flags[@]} \ - "-v[show package names]" \ - "-o[output file]:file:_files" \ - "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }" - ;; - test) - _arguments -s -w : \ - ${build_flags[@]} \ - "-c[do not run, compile the test binary]" \ - "-i[do not run, install dependencies]" \ - "-v[print test output]" \ - "-x[print the commands]" \ - "-short[use short mode]" \ - "-parallel[number of parallel tests]:number" \ - "-cpu[values of GOMAXPROCS to use]:number list" \ - "-run[run tests and examples matching regexp]:regexp" \ - "-bench[run benchmarks matching regexp]:regexp" \ - "-benchtime[run each benchmark during n seconds]:duration" \ - "-timeout[kill test after that duration]:duration" \ - "-cpuprofile[write CPU profile to file]:file:_files" \ - "-memprofile[write heap profile to file]:file:_files" \ - "-memprofilerate[set heap profiling rate]:number" \ - "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }" - ;; - help) - _values "${commands[@]}" \ - 'gopath[GOPATH environment variable]' \ - 'importpath[description of import paths]' \ - 'remote[remote import path syntax]' \ - 'testflag[description of testing flags]' \ - 'testfunc[description of testing functions]' - ;; - run) - _arguments -s -w : \ - ${build_flags[@]} \ - '*:file:_path_files -g "*.go"' - ;; - tool) - if (( CURRENT == 3 )); then - _values "go tool" $(go tool) - return - fi - case ${words[3]} in - [568]g) - _arguments -s -w : \ - '-I[search for packages in DIR]:includes:_path_files -/' \ - '-L[show full path in file:line prints]' \ - '-S[print the assembly language]' \ - '-V[print the compiler version]' \ - '-e[no limit on number of errors printed]' \ - '-h[panic on an error]' \ - '-l[disable inlining]' \ - '-m[print optimization decisions]' \ - '-o[file specify output file]:file' \ - '-p[assumed import path for this code]:importpath' \ - '-u[disable package unsafe]' \ - "*:file:_files -g '*.go'" - ;; - [568]l) - local O=${words[3]%l} - _arguments -s -w : \ - '-o[file specify output file]:file' \ - '-L[search for packages in DIR]:includes:_path_files -/' \ - "*:file:_files -g '*.[ao$O]'" - ;; - dist) - _values "dist tool" banner bootstrap clean env install version - ;; - *) - # use files by default - _files - ;; - esac - ;; - esac -} - -compdef __go_tool_complete go diff --git a/plugins/go/go.plugin.zsh b/plugins/go/go.plugin.zsh new file mode 120000 index 00000000..cf943e2e --- /dev/null +++ b/plugins/go/go.plugin.zsh @@ -0,0 +1 @@ +../golang/golang.plugin.zsh \ No newline at end of file From aa9db3e8f9e03156f350b5d32fdf5dfde76a6038 Mon Sep 17 00:00:00 2001 From: Luke Steensen Date: Wed, 12 Feb 2014 20:13:00 -0600 Subject: [PATCH 2/2] update golang plugin to match official version --- plugins/golang/golang.plugin.zsh | 34 +++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index e60c4afe..18bcaaff 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -1,9 +1,10 @@ -# From : http://golang.org/misc/zsh/go?m=text +# install in /etc/zsh/zshrc or your personal .zshrc + # gc prefixes=(5 6 8) for p in $prefixes; do - compctl -g "*.${p}" ${p}l - compctl -g "*.go" ${p}g + compctl -g "*.${p}" ${p}l + compctl -g "*.go" ${p}g done # standard go tools @@ -19,6 +20,7 @@ __go_tool_complete() { 'build[compile packages and dependencies]' 'clean[remove object files]' 'doc[run godoc on package sources]' + 'env[print Go environment information]' 'fix[run go tool fix on packages]' 'fmt[run gofmt on package sources]' 'get[download and install packages and dependencies]' @@ -39,12 +41,17 @@ __go_tool_complete() { build_flags=( '-a[force reinstallation of packages that are already up-to-date]' '-n[print the commands but do not run them]' - "-p[number of parallel builds]:number" + '-p[number of parallel builds]:number' + '-race[enable data race detection]' '-x[print the commands]' - "-work[print temporary directory name and keep it]" - "-gcflags[flags for 5g/6g/8g]:flags" - "-ldflags[flags for 5l/6l/8l]:flags" - "-gccgoflags[flags for gccgo]:flags" + '-work[print temporary directory name and keep it]' + '-ccflags[flags for 5c/6c/8c]:flags' + '-gcflags[flags for 5g/6g/8g]:flags' + '-ldflags[flags for 5l/6l/8l]:flags' + '-gccgoflags[flags for gccgo]:flags' + '-compiler[name of compiler to use]:name' + '-installsuffix[suffix to add to package directory]:suffix' + '-tags[list of build tags to consider satisfied]:tags' ) __go_list() { local expl importpaths @@ -62,7 +69,7 @@ __go_tool_complete() { install) _arguments -s -w : ${build_flags[@]} \ "-v[show package names]" \ - '*:importpaths:__go_list' + '*:importpaths:__go_list' ;; get) _arguments -s -w : \ @@ -87,7 +94,10 @@ __go_tool_complete() { "-cpu[values of GOMAXPROCS to use]:number list" \ "-run[run tests and examples matching regexp]:regexp" \ "-bench[run benchmarks matching regexp]:regexp" \ - "-benchtime[run each benchmark during n seconds]:duration" \ + "-benchmem[print memory allocation stats]" \ + "-benchtime[run each benchmark until taking this long]:duration" \ + "-blockprofile[write goroutine blocking profile to file]:file" \ + "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ "-timeout[kill test after that duration]:duration" \ "-cpuprofile[write CPU profile to file]:file:_files" \ "-memprofile[write heap profile to file]:file:_files" \ @@ -97,7 +107,7 @@ __go_tool_complete() { help) _values "${commands[@]}" \ 'gopath[GOPATH environment variable]' \ - 'importpath[description of import paths]' \ + 'packages[description of package lists]' \ 'remote[remote import path syntax]' \ 'testflag[description of testing flags]' \ 'testfunc[description of testing functions]' @@ -147,4 +157,4 @@ __go_tool_complete() { esac } -compdef __go_tool_complete go \ No newline at end of file +compdef __go_tool_complete go