diff --git a/zsh/golang.zsh b/zsh/golang.zsh index a3c6c69..e079f8d 100755 --- a/zsh/golang.zsh +++ b/zsh/golang.zsh @@ -2,6 +2,37 @@ # Go (golang) environment setup. # +# ============================================================================== +# goenv +# ============================================================================== + +# install goenv +zinit ice wait lucid as'program' pick'bin/goenv' from'gh' \ + atclone'src/configure && make -C src' atpull'%atclone' nocompile'!' +zinit light syndbg/goenv + +zinit ice wait lucid as'program' pick'plugins/go-build/bin/go-build' from'gh' \ + id-as'syndbg/go-build' +zinit light syndbg/goenv + +# lazy-load goenv +goenv() { + load-goenv + goenv "$@" +} + +_goenv() { + load-goenv + _goenv "$@" +} + +compctl -K _goenv goenv + +load-goenv() { + unset -f load-goenv _goenv goenv + eval "$(command goenv init -)" +} + # ============================================================================== # global golang packages # ============================================================================== diff --git a/zshenv b/zshenv index 81f75e1..4cd4510 100644 --- a/zshenv +++ b/zshenv @@ -137,10 +137,6 @@ path_append "/opt/flutter/bin/cache/dart-sdk/bin" # Use gnu-getop if available path_prepend "/usr/local/opt/gnu-getopt/bin" -# Go (golang) environment setup -export GOPATH="$HOME/.go" -path_prepend "$GOPATH/bin" - # Homebrew setup export HOMEBREW_NO_ANALYTICS=1 @@ -153,6 +149,10 @@ path_prepend "/opt/emacs/bin" # Use custom tmux install if available path_prepend "/opt/tmux/bin" +# Go setup for golang (./zsh/golang.zsh) +path_prepend "$HOME/.goenv/shims" +export GOENV_GOPATH_PREFIX="$HOME/.goenv/go" + # Ruby setup for rbenv (./zsh/ruby.zsh) path_prepend "$HOME/.rbenv/shims" path_prepend "$HOME/.rbenv/bin"