Added a mechanism to make deprecated segments visible to the user.

This commit is contained in:
Dominik Ritter 2015-11-17 01:39:49 +01:00
parent 9b067ea29c
commit ce7b99cdaf
2 changed files with 23 additions and 0 deletions

View File

@ -118,3 +118,18 @@ if [[ "$OS" == 'OSX' ]]; then
SED_EXTENDED_REGEX_PARAMETER="-E" SED_EXTENDED_REGEX_PARAMETER="-E"
fi fi
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
}

View File

@ -754,6 +754,14 @@ powerlevel9k_init() {
print -P "You should put: %F{blue}export TERM=\"xterm-256color\"%f in your \~\/.zshrc" print -P "You should put: %F{blue}export TERM=\"xterm-256color\"%f in your \~\/.zshrc"
fi fi
typeset -Ah deprecated_segments
# old => new
deprecated_segments=(
'longstatus' 'status'
)
print_deprecation_warning deprecated_segments
setopt prompt_subst setopt prompt_subst
setopt LOCAL_OPTIONS setopt LOCAL_OPTIONS