aboutsummaryrefslogtreecommitdiff
path: root/internal/p10k.zsh
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-07-06 22:07:51 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-07-06 22:07:51 +0300
commitdb86868a22b1a1d804e7765bb6d727abe4b52780 (patch)
treee9d6ae2b182f5e18a632f65b52dd53fa98b34d41 /internal/p10k.zsh
parentd8cfba357ebb5640fe3d208a1c1223881342518f (diff)
add POWERLEVEL9K_${segment}_${state}_{PREFIX,SUFFIX} parameters
Diffstat (limited to 'internal/p10k.zsh')
-rwxr-xr-xinternal/p10k.zsh45
1 files changed, 29 insertions, 16 deletions
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 8fce48df..32b43c34 100755
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -170,7 +170,8 @@ left_prompt_segment() {
local glyph=$_P9K_RETVAL
_p9k_color $fg_color $1 VISUAL_IDENTIFIER_COLOR
_p9k_foreground $_P9K_RETVAL
- icon=$_P9K_RETVAL$glyph
+ _p9k_escape_rcurly %b$bg$_P9K_RETVAL$glyph
+ icon=$_P9K_RETVAL
has_icon=1
fi
fi
@@ -188,16 +189,16 @@ left_prompt_segment() {
# fi
local t=$#_P9K_T
- _P9K_T+=$line_start$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS$icon # 1
- _P9K_T+=$bg$icon # 2
+ _P9K_T+=$line_start$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS # 1
+ _P9K_T+=$bg # 2
if [[ -z $fg_color ]]; then
_p9k_foreground $DEFAULT_COLOR
- _P9K_T+=$bg$_P9K_RETVAL$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS$icon # 3
+ _P9K_T+=$bg$_P9K_RETVAL$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS # 3
else
- _P9K_T+=$bg$fg$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS$icon # 3
+ _P9K_T+=$bg$fg$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS # 3
fi
_p9k_get_icon LEFT_SEGMENT_SEPARATOR
- _P9K_T+=$bg$_P9K_RETVAL$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS$icon # 4
+ _P9K_T+=$bg$_P9K_RETVAL$POWERLEVEL9K_WHITESPACE_BETWEEN_LEFT_SEGMENTS # 4
local pre
pre+="\${_P9K_N::=}\${_P9K_F::=}"
@@ -205,16 +206,21 @@ left_prompt_segment() {
pre+="\${_P9K_N:=\${\${\$((_P9K_I>=$_P9K_LEFT_JOIN[$2])):#0}:+$((t+2))}}" # 2
pre+="\${_P9K_N:=\${\${\$((!\${#\${:-0\$_P9K_BG}:#0$bg_color})):#0}:+$((t+3))}}" # 3
pre+="\${_P9K_N:=\${\${_P9K_F::=%F{\$_P9K_BG\}}+$((t+4))}}}+}" # 4
- pre+="%b\${_P9K_F}\${_P9K_T[\$_P9K_N]}"
_p9k_escape_rcurly %b$bg$fg
local style=$_P9K_RETVAL
+ local state=${(U)${1}#prompt_}
- local tr=POWERLEVEL9K_${(U)${1}#prompt_}_CONTENT_TRANSFORMER
- (( $+parameters[$tr] )) && tr=${(P)tr} || tr='${P9K_CONTENT}'
+ _p9k_get_icon ${state}_PREFIX
+ _p9k_escape_rcurly $_P9K_RETVAL
+ pre+="%b\${_P9K_F}\${_P9K_T[\$_P9K_N]}$_P9K_RETVAL$icon"
- local post="\${_P9K_C}$style$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
+ _p9k_get_icon ${state}_SUFFIX
+ _p9k_escape_rcurly $_P9K_RETVAL
+ local post="\${_P9K_C}$style$_P9K_RETVAL$style$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
+ local tr=POWERLEVEL9K_${state}_CONTENT_TRANSFORMER
+ (( $+parameters[$tr] )) && tr=${(P)tr} || tr='${P9K_CONTENT}'
_p9k_cache_set "$has_icon" "$style" "$tr" "$pre" "$post"
fi
@@ -282,7 +288,15 @@ right_prompt_segment() {
pre+="\${_P9K_N:=\${\${\$((!\${#\${:-0\$_P9K_BG}:#0$bg_color})):#0}:+$((t+3))}}" # 3
pre+="\${_P9K_N:=$((t+1))}}+}" # 4 == 1
(( _P9K_EMULATE_ZERO_RPROMPT_INDENT )) && pre+=' '
- pre+="\${_P9K_T[\$_P9K_N]}\${_P9K_C}$icon_style"
+
+ local state=${(U)${1}#prompt_}
+
+ _p9k_escape_rcurly %b$bg$fg
+ local style=$_P9K_RETVAL
+
+ _p9k_get_icon ${state}_PREFIX
+ _p9k_escape_rcurly $_P9K_RETVAL
+ pre+="\${_P9K_T[\$_P9K_N]}$_P9K_RETVAL$style\${_P9K_C}$icon_style"
if (( _P9K_EMULATE_ZERO_RPROMPT_INDENT )); then
local space=''
@@ -291,13 +305,12 @@ right_prompt_segment() {
local space=$_P9K_RETVAL
fi
- _p9k_escape_rcurly %b$bg$fg
- local style=$_P9K_RETVAL
-
- local tr=POWERLEVEL9K_${(U)${1}#prompt_}_CONTENT_TRANSFORMER
+ local tr=POWERLEVEL9K_${state}_CONTENT_TRANSFORMER
(( $+parameters[$tr] )) && tr=${(P)tr} || tr='${P9K_CONTENT}'
- local post="$icon$style$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
+ _p9k_get_icon ${state}_SUFFIX
+ _p9k_escape_rcurly $_P9K_RETVAL
+ local post="$icon$style$_P9K_RETVAL$style$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
_p9k_cache_set "$has_icon" "$style" "$tr" "$pre" "$post"
fi