From ce7b99cdaf4459afb7d7043cae25e4f02489ba87 Mon Sep 17 00:00:00 2001 From: Dominik Ritter Date: Tue, 17 Nov 2015 01:39:49 +0100 Subject: [PATCH 1/2] Added a mechanism to make deprecated segments visible to the user. --- functions/utilities.zsh | 15 +++++++++++++++ powerlevel9k.zsh-theme | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/functions/utilities.zsh b/functions/utilities.zsh index 80a38977..3c6a4d49 100644 --- a/functions/utilities.zsh +++ b/functions/utilities.zsh @@ -118,3 +118,18 @@ if [[ "$OS" == 'OSX' ]]; then SED_EXTENDED_REGEX_PARAMETER="-E" fi fi + +# Print a deprecation warning if an old segment is in use. +# Takes the name of an associative array that contains the +# deprecated segments as keys, the values contain the new +# segment names. +print_deprecation_warning() { + local -A raw_deprecated_segments=(${(kvP)1}) + + for key in ${(@k)raw_deprecated_segments}; do + if [[ -n "${POWERLEVEL9K_LEFT_PROMPT_ELEMENTS[(r)$key]}" ]] || [[ -n "${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[(r)$key]}" ]]; then + # segment is deprecated + print -P "%F{yellow}Warning!%f The '$key' segment is deprecated. Use '%F{blue}${raw_deprecated_segments[$key]}%f' instead. For more informations, have a look at the CHANGELOG.md." + fi + done +} diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 0707276d..7f3af8a7 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -754,6 +754,14 @@ powerlevel9k_init() { print -P "You should put: %F{blue}export TERM=\"xterm-256color\"%f in your \~\/.zshrc" fi + typeset -Ah deprecated_segments + # old => new + deprecated_segments=( + 'longstatus' 'status' + ) + print_deprecation_warning deprecated_segments + + setopt prompt_subst setopt LOCAL_OPTIONS From f9957ca5592df0ab992d3750e18ee6f61b3e3002 Mon Sep 17 00:00:00 2001 From: Dominik Ritter Date: Tue, 17 Nov 2015 18:34:18 +0100 Subject: [PATCH 2/2] Used typeset to define the local array. This does the trick on linux. --- functions/utilities.zsh | 3 ++- powerlevel9k.zsh-theme | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/functions/utilities.zsh b/functions/utilities.zsh index 3c6a4d49..f855caf5 100644 --- a/functions/utilities.zsh +++ b/functions/utilities.zsh @@ -124,7 +124,8 @@ fi # deprecated segments as keys, the values contain the new # segment names. print_deprecation_warning() { - local -A raw_deprecated_segments=(${(kvP)1}) + typeset -AH raw_deprecated_segments + raw_deprecated_segments=(${(kvP@)1}) for key in ${(@k)raw_deprecated_segments}; do if [[ -n "${POWERLEVEL9K_LEFT_PROMPT_ELEMENTS[(r)$key]}" ]] || [[ -n "${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[(r)$key]}" ]]; then diff --git a/powerlevel9k.zsh-theme b/powerlevel9k.zsh-theme index 7f3af8a7..cdcb9a96 100755 --- a/powerlevel9k.zsh-theme +++ b/powerlevel9k.zsh-theme @@ -754,14 +754,14 @@ powerlevel9k_init() { print -P "You should put: %F{blue}export TERM=\"xterm-256color\"%f in your \~\/.zshrc" fi - typeset -Ah deprecated_segments + # Display a warning if deprecated segments are in use. + typeset -AH deprecated_segments # old => new deprecated_segments=( 'longstatus' 'status' ) print_deprecation_warning deprecated_segments - setopt prompt_subst setopt LOCAL_OPTIONS