mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-23 23:51:58 +00:00
Add dir_truncate_root option
This commit is contained in:
parent
a58e8bdc8c
commit
ebf808c533
2 changed files with 30 additions and 2 deletions
|
@ -208,3 +208,18 @@ function truncatePathFromRight() {
|
|||
echo $1 | sed $SED_EXTENDED_REGEX_PARAMETER \
|
||||
"s@(([^/]{$((POWERLEVEL9K_SHORTEN_DIR_LENGTH))})([^/]{$delim_len}))[^/]+/@\2$POWERLEVEL9K_SHORTEN_DELIMITER/@g"
|
||||
}
|
||||
|
||||
# Search recursively in parent folders for given file.
|
||||
function upsearch () {
|
||||
if test -e "$1"; then
|
||||
echo "$PWD"
|
||||
else
|
||||
if [[ "$PWD" == "/" || "$PWD" == "$HOME" ]]; then
|
||||
echo "$PWD";
|
||||
else
|
||||
pushd .. > /dev/null
|
||||
upsearch "$1"
|
||||
popd > /dev/null
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -571,8 +571,7 @@ prompt_custom() {
|
|||
set_default POWERLEVEL9K_DIR_PATH_SEPARATOR "/"
|
||||
prompt_dir() {
|
||||
local current_path='%~'
|
||||
if [[ -n "$POWERLEVEL9K_SHORTEN_DIR_LENGTH" ]]; then
|
||||
|
||||
if [[ -n "$POWERLEVEL9K_SHORTEN_DIR_LENGTH" || "$POWERLEVEL9K_SHORTEN_STRATEGY" == "truncate_with_root_marker" ]]; then
|
||||
set_default POWERLEVEL9K_SHORTEN_DELIMITER $'\U2026'
|
||||
|
||||
case "$POWERLEVEL9K_SHORTEN_STRATEGY" in
|
||||
|
@ -610,6 +609,20 @@ prompt_dir() {
|
|||
current_path=$(truncatePathFromRight "$(pwd | sed -e "s,^$HOME,~,")" )
|
||||
fi
|
||||
;;
|
||||
truncate_with_root_marker)
|
||||
local dir_truncate_root
|
||||
|
||||
dir_truncate_root=$(upsearch $POWERLEVEL9K_ROOT_MARKER_FILE)
|
||||
zero='%([BSUbfksu]|([FB]|){*})'
|
||||
|
||||
if [[ "$dir_truncate_root" == "/" || "$dir_truncate_root" == "$HOME" ]]; then
|
||||
current_path='%~'
|
||||
elif [[ "$dir_truncate_root" == "$HOME"* ]]; then
|
||||
current_path="~/$POWERLEVEL9K_SHORTEN_DELIMITER/${dir_truncate_root##*/}${PWD:${#${(S%%)dir_truncate_root//$~zero/}}}"
|
||||
else
|
||||
current_path="/$POWERLEVEL9K_SHORTEN_DELIMITER/${dir_truncate_root##*/}${PWD:${#${(S%%)dir_truncate_root//$~zero/}}}"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
current_path="%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:$POWERLEVEL9K_SHORTEN_DELIMITER/:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c"
|
||||
;;
|
||||
|
|
Loading…
Reference in a new issue