diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index 722ae58c0..9b8e2de9d 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -21,6 +21,7 @@ function chruby_prompt_info \ azure_prompt_info \ tf_prompt_info \ conda_prompt_info \ + go_prompt_info \ { return 1 } diff --git a/plugins/golang/README.md b/plugins/golang/README.md index 80f8cf3b5..610952d6d 100644 --- a/plugins/golang/README.md +++ b/plugins/golang/README.md @@ -39,3 +39,18 @@ plugins=(... golang) | gov | `go vet` | Vet examines Go source code and reports suspicious constructs | | gove | `go version` | Prints Go version | | gow | `go work` | Work provides access to operations on workspaces | + +## Prompt + +This plugin provides the `go_prompt_info` function to add the installed Go +version to your prompt. + +For example: +``` +PROMPT="%~$ " +RPROMPT='$(go_prompt_info)' +``` +changes your prompt to: +``` +~/go/project$ ▋ 1.22.3 +``` diff --git a/plugins/golang/golang.plugin.zsh b/plugins/golang/golang.plugin.zsh index dc4d91845..48908b5d9 100644 --- a/plugins/golang/golang.plugin.zsh +++ b/plugins/golang/golang.plugin.zsh @@ -36,3 +36,12 @@ alias gotofx='go tool fix' alias gov='go vet' alias gove='go version' alias gow='go work' + +## prompt +function go_prompt_info() { + (( $+commands[go] )) || return + local go_prompt + go_prompt=$(go version | awk '{ print substr($3, 3) }') + [[ -z "${go_prompt}" ]] && return + echo "${ZSH_THEME_GO_PROMPT_PREFIX}${go_prompt:gs/%/%%}${ZSH_THEME_GO_PROMPT_SUFFIX}" +}