aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2020-04-28 22:14:06 +0300
committerromkatv <roman.perepelitsa@gmail.com>2020-04-28 22:14:06 +0300
commit7c4b0f36c0b5d3dc1049115ecca192463c19278d (patch)
tree2ea46b1e42911a00cc2a936b49e6587bdbcbe56f /internal
parenteb66d0e66aa506c8055d2b9284634024b0b87b1f (diff)
support POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=first; see #669v1.7.0
Diffstat (limited to 'internal')
-rw-r--r--internal/p10k.zsh26
1 files changed, 18 insertions, 8 deletions
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 1ae7a14f..1f5253bf 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -1765,7 +1765,7 @@ prompt_dir() {
shortenlen=${_POWERLEVEL9K_SHORTEN_DIR_LENGTH:-1}
(( shortenlen >= 0 )) || shortenlen=1
local -i i=2 e=$(($#parts - shortenlen))
- if (( _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER )); then
+ if [[ -n $_POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER ]]; then
(( e += shortenlen ))
local orig=("$parts[2]" "${(@)parts[$((shortenlen > $#parts ? -$#parts : -shortenlen)),-1]}")
elif [[ $p[1] == / ]]; then
@@ -1777,7 +1777,7 @@ prompt_dir() {
else
local key=
fi
- if ! _p9k_cache_ephemeral_get $0 $e $i $_p9k__cwd || [[ $key != $_p9k__cache_val[1] ]] ; then
+ if ! _p9k_cache_ephemeral_get $0 $e $i $_p9k__cwd || [[ $key != $_p9k__cache_val[1] ]]; then
local tail=${(j./.)parts[i,-1]}
local parent=$_p9k__cwd[1,-2-$#tail]
_p9k_prompt_length $delim
@@ -1821,10 +1821,14 @@ prompt_dir() {
fi
parent+=/$sub
done
- if (( _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER )); then
+ if [[ -n $_POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER ]]; then
local _2=$'\2'
- (( e = ${parts[(I)*$_2]} ))
- if (( e > 1 )); then
+ if [[ $_POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER == last ]]; then
+ (( e = ${parts[(I)*$_2]} ))
+ else
+ (( e = ${parts[(ib:2:)*$_2]} ))
+ fi
+ if (( e > 1 && e <= $#parts )); then
parts[1,e-1]=()
fake_first=1
elif [[ $p == /?* ]]; then
@@ -6852,8 +6856,14 @@ _p9k_init_params() {
_p9k_declare -a POWERLEVEL9K_DIR_CLASSES
_p9k_declare -i POWERLEVEL9K_SHORTEN_DELIMITER_LENGTH
_p9k_declare -e POWERLEVEL9K_SHORTEN_DELIMITER
- _p9k_declare -b POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER
- [[ -z $_POWERLEVEL9K_SHORTEN_FOLDER_MARKER ]] && _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=0
+ _p9k_declare -s POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER ''
+ case $_POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER in
+ first) ;;
+ last) ;;
+ true) _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=last;;
+ *) _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=;;
+ esac
+ [[ -z $_POWERLEVEL9K_SHORTEN_FOLDER_MARKER ]] && _POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=
_p9k_declare -i POWERLEVEL9K_SHORTEN_DIR_LENGTH
_p9k_declare -s POWERLEVEL9K_IP_INTERFACE ""
: ${_POWERLEVEL9K_IP_INTERFACE:='.*'}
@@ -7568,7 +7578,7 @@ _p9k_must_init() {
[[ $sig == $_p9k__param_sig ]] && return 1
_p9k_deinit
fi
- _p9k__param_pat=$'v78\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
+ _p9k__param_pat=$'v79\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\1'