diff --git a/dotfiles/config/zsh/p10k.mise.zsh b/dotfiles/config/zsh/p10k.mise.zsh index c18765e..b1b68b0 100644 --- a/dotfiles/config/zsh/p10k.mise.zsh +++ b/dotfiles/config/zsh/p10k.mise.zsh @@ -9,59 +9,14 @@ # [[ -f ~/.config/zsh/p10k.mise.zsh ]] && source ~/.config/zsh/p10k.mise.zsh () { - function _prompt_mise_has_visual_identifier() { - local tool="$1" - local icon_name="${tool}_ICON" - local icon_override="POWERLEVEL9K_${icon_name}" - local state_visual_identifier="POWERLEVEL9K_MISE_${tool}_VISUAL_IDENTIFIER_EXPANSION" - local segment_visual_identifier="POWERLEVEL9K_MISE_VISUAL_IDENTIFIER_EXPANSION" - local parameter value - - for parameter in "$state_visual_identifier" "$segment_visual_identifier" "$icon_override"; do - if (( ${+parameters[$parameter]} )); then - value="${(P)parameter}" - [[ -n "$value" ]] && return 0 - return 1 - fi - done - - if (( ${+functions[print_icon]} )); then - [[ -n "$(print_icon "$icon_name")" ]] && return 0 - elif (( ${+functions[_p9k_init_icons]} )); then - _p9k_init_icons - (( ${+icons[$icon_name]} )) && [[ -n "${icons[$icon_name]}" ]] && return 0 - fi - - return 1 - } - - function _prompt_mise_fallback_label() { - local label="${1:t}" - label="${label##*:}" - print -r -- "${label:-$1}" - } - function prompt_mise() { local plugins=("${(@f)$(mise ls --current --offline 2>/dev/null | awk '!/\(symlink\)/ && $3!="~/.tool-versions" && $3!="~/.config/mise/config.toml" && $3!="(missing)" {if ($1) print $1, $2}')}") local plugin - - for plugin in "${plugins[@]}"; do + for plugin in ${(k)plugins}; do local parts=("${(@s/ /)plugin}") - local tool_raw="${parts[1]}" - local version="${parts[2]}" - - [[ -z "$tool_raw" || -z "$version" ]] && continue - - # P10k segment state/icon names must be zsh-identifier-safe. - # Example: aqua:raviqqe/muffet -> AQUA_RAVIQQE_MUFFET - local tool="${(U)tool_raw}" - tool="${tool//[^A-Z0-9_]/_}" - - if _prompt_mise_has_visual_identifier "$tool"; then - p10k segment -r -i "${tool}_ICON" -s "$tool" -t "$version" - else - p10k segment -r -s "$tool" -t "$version $(_prompt_mise_fallback_label "$tool_raw")" - fi + local tool=${(U)parts[1]} + local version=${parts[2]} + p10k segment -r -i "${tool}_ICON" -s $tool -t "$version" done } @@ -84,8 +39,8 @@ typeset -g POWERLEVEL9K_MISE_PYTHON_BACKGROUND=33 typeset -g POWERLEVEL9K_MISE_RUBY_BACKGROUND=196 typeset -g POWERLEVEL9K_MISE_RUST_BACKGROUND=208 - typeset -g POWERLEVEL9K_MISE_AQUA_RAVIQQE_MUFFET_BACKGROUND=33 # Substitute the default asdf prompt element typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=("${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[@]/asdf/mise}") } +