From ce7b99cdaf4459afb7d7043cae25e4f02489ba87 Mon Sep 17 00:00:00 2001 From: Dominik Ritter Date: Tue, 17 Nov 2015 01:39:49 +0100 Subject: [PATCH] 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