aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-12-01 14:47:03 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-12-01 14:47:03 +0300
commitac2f387dfd68007801ab75004b076e89ce88eab9 (patch)
treec288eb82bad0c065a62fd695ac4b9b71e0e74ffd
parent3340dc7269cc44bda4e6f03dc8e0daaff3e22556 (diff)
new prompt segment: goenv (see #342)
-rw-r--r--config/p10k-classic.zsh9
-rw-r--r--config/p10k-lean.zsh9
-rw-r--r--config/p10k-rainbow.zsh10
-rw-r--r--internal/p10k.zsh44
4 files changed, 71 insertions, 1 deletions
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index 882a7f18..6192d6fe 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -51,6 +51,7 @@
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
+ goenv # go environment (https://github.com/syndbg/goenv)
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
@@ -611,6 +612,14 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
+ # Goenv color.
+ typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37
+ # Don't show the current Go version if it's the same as global.
+ typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
# Nodenv color.
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index 0a7e58bd..670036a6 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -51,6 +51,7 @@
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
+ goenv # go environment (https://github.com/syndbg/goenv)
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
@@ -587,6 +588,14 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
+ # Goenv color.
+ typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37
+ # Don't show the current Go version if it's the same as global.
+ typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
# Nodenv color.
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70
diff --git a/config/p10k-rainbow.zsh b/config/p10k-rainbow.zsh
index ce0f89dd..fb67b660 100644
--- a/config/p10k-rainbow.zsh
+++ b/config/p10k-rainbow.zsh
@@ -51,6 +51,7 @@
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
pyenv # python environment (https://github.com/pyenv/pyenv)
+ goenv # go environment (https://github.com/syndbg/goenv)
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
@@ -620,6 +621,15 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
+ # Goenv color.
+ # typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0
+ # typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4
+ # Don't show the current Go version if it's the same as global.
+ typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
# Nodenv color.
# typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 322ef7ca..1e3e1e7d 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -3142,6 +3142,47 @@ prompt_pyenv() {
_p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PYTHON_ICON' 0 '' "${v//\%/%%}"
}
+function _p9k_read_goenv_version_file() {
+ [[ -r $1 ]] || return
+ local content
+ IFS='' read -rd $'\0' content <$1 2>/dev/null
+ _p9k_ret=${${(j.:.)${=content}:-system}}
+}
+
+function _p9k_goenv_global_version() {
+ _p9k_read_goenv_version_file ${GOENV_ROOT:-$HOME/.goenv}/version || _p9k_ret=system
+}
+
+################################################################
+# Segment to display goenv information: https://github.com/syndbg/goenv
+prompt_goenv() {
+ (( $+commands[goenv] || $+functions[goenv] )) || return
+ local v=${(j.:.)${(s.:.)GOENV_VERSION}}
+ if [[ -z $v ]]; then
+ [[ $GOENV_DIR == /* ]] && local dir=$GOENV_DIR || local dir="$_p9k_pwd_a/$GOENV_DIR"
+ while true; do
+ if _p9k_read_goenv_version_file $dir/.go-version; then
+ v=$_p9k_ret
+ break
+ fi
+ if [[ $dir == / ]]; then
+ (( _POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW )) || return
+ _p9k_goenv_global_version
+ v=$_p9k_ret
+ break
+ fi
+ dir=${dir:h}
+ done
+ fi
+
+ if (( !_POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW )); then
+ _p9k_goenv_global_version
+ [[ $v == $_p9k_ret ]] && return
+ fi
+
+ _p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'GO_ICON' 0 '' "${v//\%/%%}"
+}
+
################################################################
# Display openfoam information
prompt_openfoam() {
@@ -4849,6 +4890,7 @@ _p9k_init_params() {
_p9k_declare -e POWERLEVEL9K_VIRTUALENV_RIGHT_DELIMITER ")"
_p9k_declare -a POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES -- virtualenv venv .venv
_p9k_declare -b POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW 0
+ _p9k_declare -b POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW 0
_p9k_declare -b POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION 1
_p9k_declare -e POWERLEVEL9K_NODEENV_LEFT_DELIMITER "["
_p9k_declare -e POWERLEVEL9K_NODEENV_RIGHT_DELIMITER "]"
@@ -5334,7 +5376,7 @@ _p9k_must_init() {
[[ $sig == $_p9k__param_sig ]] && return 1
_p9k_deinit
fi
- _p9k__param_pat=$'v11\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
+ _p9k__param_pat=$'v12\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
_p9k__param_pat+=$'${#parameters[(I)POWERLEVEL9K_*]}\1${(%):-%n%#}\1$GITSTATUS_LOG_LEVEL\1'
_p9k__param_pat+=$'$GITSTATUS_ENABLE_LOGGING\1$GITSTATUS_DAEMON\1$GITSTATUS_NUM_THREADS\1'
_p9k__param_pat+=$'$DEFAULT_USER\1${ZLE_RPROMPT_INDENT:-1}\1$P9K_SSH\1$__p9k_ksh_arrays'