diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index b7bcb39f..a34db566 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -944,8 +944,21 @@ prompt_go_version() { local -a match [[ $_P9K_RETVAL == (#b)*(go[[:digit:].]##)* ]] || return local v=$match[1] - local p=${GOPATH:-$(go env GOPATH 2>/dev/null)} - [[ -n $p && $PWD/ == $p/* ]] || return + local p=$GOPATH + if [[ -z $p ]]; then + if [[ -d $HOME/go ]]; then + p=$HOME/go + else + p=$(command go env GOPATH 2>/dev/null) && [[ -n $p ]] || return + fi + fi + if [[ $PWD/ != $p/* ]]; then + local dir=$PWD + while [[ ! -e $dir/go.mod ]]; do + [[ $dir == / ]] && return + dir=${dir:h} + done + fi "$1_prompt_segment" "$0" "$2" "green" "grey93" "GO_ICON" 0 '' "${v//\%/%%}" }