mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-19 22:11:57 +00:00
work around %b bugs in ZSH 5.2
This commit is contained in:
parent
f0e1ec281d
commit
97dbb6ab16
1 changed files with 32 additions and 26 deletions
|
@ -138,7 +138,7 @@ left_prompt_segment() {
|
||||||
_p9k_color $4 $1 FOREGROUND
|
_p9k_color $4 $1 FOREGROUND
|
||||||
local fg_color=$_P9K_RETVAL
|
local fg_color=$_P9K_RETVAL
|
||||||
_p9k_foreground $fg_color
|
_p9k_foreground $fg_color
|
||||||
local fg=%b$_P9K_RETVAL
|
local fg=$_P9K_RETVAL
|
||||||
|
|
||||||
_p9k_get_icon LEFT_SUBSEGMENT_SEPARATOR
|
_p9k_get_icon LEFT_SUBSEGMENT_SEPARATOR
|
||||||
local subsep=$_P9K_RETVAL
|
local subsep=$_P9K_RETVAL
|
||||||
|
@ -189,26 +189,26 @@ left_prompt_segment() {
|
||||||
pre+="\${_P9K_N:=\${\${\$((_P9K_I>=$_P9K_LEFT_JOIN[$2])):#0}:+$((t+2))}}" # 2
|
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:=\${\${\$((!\${#\${:-0\$_P9K_BG}:#0$bg_color})):#0}:+$((t+3))}}" # 3
|
||||||
pre+="\${_P9K_N:=\${\${_P9K_F::=%F{\$_P9K_BG\}}+$((t+4))}}}+}" # 4
|
pre+="\${_P9K_N:=\${\${_P9K_F::=%F{\$_P9K_BG\}}+$((t+4))}}}+}" # 4
|
||||||
pre+="\${_P9K_F}%b\${_P9K_T[\$_P9K_N]}"
|
pre+="%b\${_P9K_F}\${_P9K_T[\$_P9K_N]}"
|
||||||
|
|
||||||
local post="\${_P9K_C}$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
|
_p9k_escape_rcurly %b$bg$fg
|
||||||
|
local post="\${_P9K_C}$_P9K_RETVAL$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
|
||||||
|
|
||||||
_p9k_cache_set $has_icon $fg $pre $post
|
_p9k_cache_set $has_icon $_P9K_RETVAL $pre $post
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local name=$1
|
local name=$1
|
||||||
local -i has_icon=${_P9K_CACHE_VAL[1]}
|
local -i has_icon=${_P9K_CACHE_VAL[1]}
|
||||||
local fg=${_P9K_CACHE_VAL[2]}
|
local style=${_P9K_CACHE_VAL[2]}
|
||||||
local -i expand=$6
|
local -i expand=$6
|
||||||
local cond=${7:-1}
|
local cond=${7:-1}
|
||||||
shift 7
|
shift 7
|
||||||
|
|
||||||
_p9k_escape_rcurly $fg
|
local content="${(j::):-$style${^@}}"
|
||||||
local content="${(j::):-$_P9K_RETVAL${^@}}"
|
|
||||||
(( expand )) || content="\${(Q)\${:-${(qqq)content}}}"
|
(( expand )) || content="\${(Q)\${:-${(qqq)content}}}"
|
||||||
|
|
||||||
_P9K_PROMPT+="\${\${:-$cond}:+\${\${:-\${_P9K_C::=${content}}${_P9K_CACHE_VAL[3]}"
|
_P9K_PROMPT+="\${\${:-$cond}:+\${\${:-\${_P9K_C::=${content}}${_P9K_CACHE_VAL[3]}"
|
||||||
(( has_icon )) && _P9K_PROMPT+="\${\${\${#_P9K_C}:#$(($# * $#fg))}:+ }"
|
(( has_icon )) && _P9K_PROMPT+='${${(%):-$_P9K_C%1(l. .x)}[-1]%x}'
|
||||||
_P9K_PROMPT+=${_P9K_CACHE_VAL[4]}
|
_P9K_PROMPT+=${_P9K_CACHE_VAL[4]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,12 +224,12 @@ right_prompt_segment() {
|
||||||
_p9k_color $4 $1 FOREGROUND
|
_p9k_color $4 $1 FOREGROUND
|
||||||
local fg_color=$_P9K_RETVAL
|
local fg_color=$_P9K_RETVAL
|
||||||
_p9k_foreground $fg_color
|
_p9k_foreground $fg_color
|
||||||
local fg=%b$_P9K_RETVAL
|
local fg=$_P9K_RETVAL
|
||||||
|
|
||||||
_p9k_get_icon RIGHT_SUBSEGMENT_SEPARATOR
|
_p9k_get_icon RIGHT_SUBSEGMENT_SEPARATOR
|
||||||
local subsep=$_P9K_RETVAL
|
local subsep=$_P9K_RETVAL
|
||||||
|
|
||||||
local icon_fg icon
|
local icon_style icon
|
||||||
local -i has_icon
|
local -i has_icon
|
||||||
if [[ -n $5 ]]; then
|
if [[ -n $5 ]]; then
|
||||||
_p9k_get_icon $5
|
_p9k_get_icon $5
|
||||||
|
@ -238,8 +238,8 @@ right_prompt_segment() {
|
||||||
icon=$_P9K_RETVAL
|
icon=$_P9K_RETVAL
|
||||||
_p9k_color $fg_color $1 VISUAL_IDENTIFIER_COLOR
|
_p9k_color $fg_color $1 VISUAL_IDENTIFIER_COLOR
|
||||||
_p9k_foreground $_P9K_RETVAL
|
_p9k_foreground $_P9K_RETVAL
|
||||||
_p9k_escape_rcurly $_P9K_RETVAL
|
_p9k_escape_rcurly %b$bg$_P9K_RETVAL
|
||||||
icon_fg=$_P9K_RETVAL
|
icon_style=$_P9K_RETVAL
|
||||||
has_icon=1
|
has_icon=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -250,12 +250,12 @@ right_prompt_segment() {
|
||||||
local t=$#_P9K_T
|
local t=$#_P9K_T
|
||||||
_p9k_get_icon RIGHT_SEGMENT_SEPARATOR
|
_p9k_get_icon RIGHT_SEGMENT_SEPARATOR
|
||||||
_P9K_T+="%F{$bg_color}$_P9K_RETVAL$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS$fg" # 1
|
_P9K_T+="%F{$bg_color}$_P9K_RETVAL$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS$fg" # 1
|
||||||
_P9K_T+=$bg$fg # 2
|
_P9K_T+=$fg # 2
|
||||||
if [[ -z $fg_color ]]; then
|
if [[ -z $fg_color ]]; then
|
||||||
_p9k_foreground $DEFAULT_COLOR
|
_p9k_foreground $DEFAULT_COLOR
|
||||||
_P9K_T+=$_P9K_RETVAL$subsep$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS$fg # 3
|
_P9K_T+=$bg$_P9K_RETVAL$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS$fg # 3
|
||||||
else
|
else
|
||||||
_P9K_T+=$fg$subsep$bg$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS # 3
|
_P9K_T+=$bg$fg$subsep$POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS # 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local pre
|
local pre
|
||||||
|
@ -264,26 +264,28 @@ right_prompt_segment() {
|
||||||
pre+="\${_P9K_N:=\${\${\$((_P9K_I>=$_P9K_RIGHT_JOIN[$2])):#0}:+$((t+2))}}" # 2
|
pre+="\${_P9K_N:=\${\${\$((_P9K_I>=$_P9K_RIGHT_JOIN[$2])):#0}:+$((t+2))}}" # 2
|
||||||
pre+="\${_P9K_N:=\${\${\$((!\${#\${:-0\$_P9K_BG}:#0$bg_color})):#0}:+$((t+3))}}" # 3
|
pre+="\${_P9K_N:=\${\${\$((!\${#\${:-0\$_P9K_BG}:#0$bg_color})):#0}:+$((t+3))}}" # 3
|
||||||
pre+="\${_P9K_N:=$((t+1))}}+}" # 4 == 1
|
pre+="\${_P9K_N:=$((t+1))}}+}" # 4 == 1
|
||||||
pre+="%b\${_P9K_T[\$_P9K_N]}\${_P9K_C}$icon_fg"
|
pre+="\${_P9K_T[\$_P9K_N]}\${_P9K_C}$icon_style"
|
||||||
|
|
||||||
_p9k_escape_rcurly $POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS
|
_p9k_escape_rcurly $POWERLEVEL9K_WHITESPACE_BETWEEN_RIGHT_SEGMENTS
|
||||||
local post="$icon$_P9K_RETVAL\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
|
local space=$_P9K_RETVAL
|
||||||
|
_p9k_escape_rcurly %b$bg$fg
|
||||||
|
local post="$icon$_P9K_RETVAL$space\${\${_P9K_I::=$2}+}\${\${_P9K_BG::=$bg_color}+}}"
|
||||||
|
|
||||||
_p9k_cache_set $has_icon $fg $pre $post
|
_p9k_cache_set $has_icon $_P9K_RETVAL $pre $post
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local -i has_icon=${_P9K_CACHE_VAL[1]}
|
local -i has_icon=${_P9K_CACHE_VAL[1]}
|
||||||
local fg=${_P9K_CACHE_VAL[2]}
|
local style=${_P9K_CACHE_VAL[2]}
|
||||||
local -i expand=$6
|
local -i expand=$6
|
||||||
local cond=${7:-1}
|
local cond=${7:-1}
|
||||||
shift 7
|
shift 7
|
||||||
|
|
||||||
_p9k_escape_rcurly $fg
|
_p9k_escape_rcurly $style
|
||||||
local content="${(j::):-$_P9K_RETVAL${^@}}"
|
local content="${(j::):-$_P9K_RETVAL${^@}}"
|
||||||
(( expand )) || content="\${(Q)\${:-${(qqq)content}}}"
|
(( expand )) || content="\${(Q)\${:-${(qqq)content}}}"
|
||||||
|
|
||||||
_P9K_PROMPT+="\${\${:-$cond}:+\${\${:-\${_P9K_C::=${content}}${_P9K_CACHE_VAL[3]}"
|
_P9K_PROMPT+="\${\${:-$cond}:+\${\${:-\${_P9K_C::=${content}}${_P9K_CACHE_VAL[3]}"
|
||||||
(( has_icon )) && _P9K_PROMPT+="\${\${\${#_P9K_C}:#$(($# * $#fg))}:+ }"
|
(( has_icon )) && _P9K_PROMPT+='${${(%):-$_P9K_C%1(l. .x)}[-1]%x}'
|
||||||
_P9K_PROMPT+=${_P9K_CACHE_VAL[4]}
|
_P9K_PROMPT+=${_P9K_CACHE_VAL[4]}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -867,12 +869,16 @@ prompt_dir() {
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local style=%b
|
||||||
|
_p9k_color blue $0_$state BACKGROUND
|
||||||
|
_p9k_background $_P9K_RETVAL
|
||||||
|
style+=$_P9K_RETVAL
|
||||||
_p9k_color "$DEFAULT_COLOR" "$0_$state" FOREGROUND
|
_p9k_color "$DEFAULT_COLOR" "$0_$state" FOREGROUND
|
||||||
_p9k_foreground $_P9K_RETVAL
|
_p9k_foreground $_P9K_RETVAL
|
||||||
local fg=%b$_P9K_RETVAL
|
style+=$_P9K_RETVAL
|
||||||
|
|
||||||
parts=("${(@)parts//\%/%%}")
|
parts=("${(@)parts//\%/%%}")
|
||||||
[[ $fake_first == 0 && $parts[1] == '~' ]] && parts[1]=$POWERLEVEL9K_HOME_FOLDER_ABBREVIATION$fg
|
[[ $fake_first == 0 && $parts[1] == '~' ]] && parts[1]=$POWERLEVEL9K_HOME_FOLDER_ABBREVIATION$style
|
||||||
[[ $POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER == true && $#parts > 1 && -n $parts[2] ]] && parts[1]=()
|
[[ $POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER == true && $#parts > 1 && -n $parts[2] ]] && parts[1]=()
|
||||||
|
|
||||||
local last_fg=
|
local last_fg=
|
||||||
|
@ -882,10 +888,10 @@ prompt_dir() {
|
||||||
_p9k_foreground $_P9K_RETVAL
|
_p9k_foreground $_P9K_RETVAL
|
||||||
last_fg+=$_P9K_RETVAL
|
last_fg+=$_P9K_RETVAL
|
||||||
fi
|
fi
|
||||||
parts[-1]=$last_fg${parts[-1]//$'\0'/$'\0'$last_fg}
|
parts[-1]=$last_fg${parts[-1]//$'\0'/$'\0'$last_fg}$style
|
||||||
parts=("${(@)parts//$'\0'/$delim$fg}")
|
parts=("${(@)parts//$'\0'/$delim$style}")
|
||||||
|
|
||||||
local sep=$POWERLEVEL9K_DIR_PATH_SEPARATOR$fg
|
local sep=$POWERLEVEL9K_DIR_PATH_SEPARATOR$style
|
||||||
if [[ -n $POWERLEVEL9K_DIR_PATH_SEPARATOR_FOREGROUND ]]; then
|
if [[ -n $POWERLEVEL9K_DIR_PATH_SEPARATOR_FOREGROUND ]]; then
|
||||||
_p9k_translate_color $POWERLEVEL9K_DIR_PATH_SEPARATOR_FOREGROUND
|
_p9k_translate_color $POWERLEVEL9K_DIR_PATH_SEPARATOR_FOREGROUND
|
||||||
_p9k_foreground $_P9K_RETVAL
|
_p9k_foreground $_P9K_RETVAL
|
||||||
|
|
Loading…
Reference in a new issue