mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-14 09:00:07 +00:00
add _p9k_prompt_length
This commit is contained in:
parent
bbebf516ab
commit
784dc059cd
1 changed files with 23 additions and 0 deletions
|
@ -45,6 +45,29 @@ function _p9k_g_expand() {
|
||||||
typeset -g $1=${(g::)${(P)1}}
|
typeset -g $1=${(g::)${(P)1}}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# If we execute `print -P $1`, how many characters will be printed on the last line?
|
||||||
|
# Assumes that `%{%}` and `%G` don't lie.
|
||||||
|
#
|
||||||
|
# _p9k_prompt_length '' => 0
|
||||||
|
# _p9k_prompt_length 'abc' => 3
|
||||||
|
# _p9k_prompt_length $'abc\nxy' => 2
|
||||||
|
# _p9k_prompt_length $'\t' => 8
|
||||||
|
# _p9k_prompt_length '%F{red}abc' => 3
|
||||||
|
# _p9k_prompt_length $'%{a\b%Gb%}' => 1
|
||||||
|
function _p9k_prompt_length() {
|
||||||
|
emulate -L zsh
|
||||||
|
local -i x y=$#1 m
|
||||||
|
if (( y )); then
|
||||||
|
while (( ${${(%):-$1%$y(l.1.0)}[-1]} )); do (( y *= 2 )); done
|
||||||
|
local xy
|
||||||
|
while (( y > x + 1 )); do
|
||||||
|
m=$(( x + (y - x) / 2 ))
|
||||||
|
typeset ${${(%):-$1%$m(l.x.y)}[-1]}=$m
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
_P9K_RETVAL=$x
|
||||||
|
}
|
||||||
|
|
||||||
typeset -g _P9K_BYTE_SUFFIX=('B' 'K' 'M' 'G' 'T' 'P' 'E' 'Z' 'Y')
|
typeset -g _P9K_BYTE_SUFFIX=('B' 'K' 'M' 'G' 'T' 'P' 'E' 'Z' 'Y')
|
||||||
|
|
||||||
# 42 => 42B
|
# 42 => 42B
|
||||||
|
|
Loading…
Reference in a new issue