mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-23 23:51:58 +00:00
stop loading icons.zsh lazily; print boundaries in get_icon_names
This commit is contained in:
parent
d9da275e9e
commit
a6a2d9a481
3 changed files with 25 additions and 43 deletions
|
@ -636,14 +636,18 @@ function _p9k_init_icons() {
|
|||
}
|
||||
|
||||
# Sadly, this is a part of public API. Its use is emphatically discouraged.
|
||||
function _p9k_print_icon() {
|
||||
function print_icon() {
|
||||
eval "$__p9k_intro"
|
||||
if (( ! $+_p9k__locale )); then
|
||||
_p9k_init_locale
|
||||
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
|
||||
fi
|
||||
_p9k_init_icons
|
||||
local icon_name=$1
|
||||
local var_name=POWERLEVEL9K_${icon_name}
|
||||
if [[ -n "${(tP)var_name}" ]]; then
|
||||
echo -n "${(P)var_name}"
|
||||
local var=POWERLEVEL9K_$1
|
||||
if (( $+parameters[$var] )); then
|
||||
echo -n - ${(P)var}
|
||||
else
|
||||
echo -n "${icons[$icon_name]}"
|
||||
echo -n - $icons[$1]
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -652,17 +656,22 @@ function _p9k_print_icon() {
|
|||
# * $1 string - If "original", then the original icons are printed,
|
||||
# otherwise "print_icon" is used, which takes the users
|
||||
# overrides into account.
|
||||
function _p9k_get_icon_names() {
|
||||
function get_icon_names() {
|
||||
eval "$__p9k_intro"
|
||||
if (( ! $+_p9k__locale )); then
|
||||
_p9k_init_locale
|
||||
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
|
||||
fi
|
||||
_p9k_init_icons
|
||||
# Iterate over a ordered list of keys of the icons array
|
||||
local key
|
||||
for key in ${(@kon)icons}; do
|
||||
echo -n "POWERLEVEL9K_$key: "
|
||||
if [[ "${1}" == "original" ]]; then
|
||||
# print the original icons as they are defined in the array above
|
||||
echo "${icons[$key]}"
|
||||
echo -n - "POWERLEVEL9K_$key: "
|
||||
print -nP "%K{red} %k"
|
||||
if [[ $1 == original ]]; then
|
||||
echo -n - $icons[$key]
|
||||
else
|
||||
# print the icons as they are configured by the user
|
||||
echo "$(print_icon "$key")"
|
||||
print_icon $key
|
||||
fi
|
||||
print -P "%K{red} %k"
|
||||
done
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ fi
|
|||
source "${__p9k_root_dir}/internal/configure.zsh"
|
||||
source "${__p9k_root_dir}/internal/worker.zsh"
|
||||
source "${__p9k_root_dir}/internal/parser.zsh"
|
||||
source "${__p9k_root_dir}/internal/icons.zsh"
|
||||
|
||||
# For compatibility with Powerlevel9k. It's not recommended to use mnemonic color
|
||||
# names in the configuration except for colors 0-7 as these are standard.
|
||||
|
@ -137,32 +138,6 @@ function getColorCode() {
|
|||
return 1
|
||||
}
|
||||
|
||||
# Sadly, this is a part of public API. Its use is emphatically discouraged.
|
||||
function print_icon() {
|
||||
eval "$__p9k_intro"
|
||||
if (( ! $+_p9k__locale )); then
|
||||
_p9k_init_locale
|
||||
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
|
||||
fi
|
||||
(( $+functions[_p9k_print_icon] )) || source "${__p9k_root_dir}/internal/icons.zsh"
|
||||
_p9k_print_icon "$@"
|
||||
}
|
||||
|
||||
# Prints a list of configured icons.
|
||||
#
|
||||
# * $1 string - If "original", then the original icons are printed,
|
||||
# otherwise "print_icon" is used, which takes the users
|
||||
# overrides into account.
|
||||
function get_icon_names() {
|
||||
eval "$__p9k_intro"
|
||||
if (( ! $+_p9k__locale )); then
|
||||
_p9k_init_locale
|
||||
[[ -z $_p9k__locale ]] || local LC_ALL=$_p9k__locale
|
||||
fi
|
||||
(( $+functions[_p9k_get_icon_names] )) || source "${__p9k_root_dir}/internal/icons.zsh"
|
||||
_p9k_get_icon_names "$@"
|
||||
}
|
||||
|
||||
# _p9k_declare <type> <uppercase-name> [default]...
|
||||
function _p9k_declare() {
|
||||
local -i set=$+parameters[$2]
|
||||
|
@ -7055,7 +7030,7 @@ _p9k_must_init() {
|
|||
[[ $sig == $_p9k__param_sig ]] && return 1
|
||||
_p9k_deinit
|
||||
fi
|
||||
_p9k__param_pat=$'v50\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
|
||||
_p9k__param_pat=$'v51\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'
|
||||
|
@ -7075,7 +7050,6 @@ function _p9k_set_os() {
|
|||
}
|
||||
|
||||
function _p9k_init_cacheable() {
|
||||
(( $+functions[_p9k_init_icons] )) || source "${__p9k_root_dir}/internal/icons.zsh"
|
||||
_p9k_init_icons
|
||||
_p9k_init_params
|
||||
_p9k_init_prompt
|
||||
|
|
|
@ -1827,7 +1827,6 @@ fi
|
|||
|
||||
zmodload zsh/terminfo || return
|
||||
autoload -Uz is-at-least || return
|
||||
source $__p9k_root_dir/internal/icons.zsh || return
|
||||
|
||||
if is-at-least 5.7.1 && [[ $COLORTERM == (24bit|truecolor) ]]; then
|
||||
local -ir has_truecolor=1
|
||||
|
|
Loading…
Reference in a new issue