my way of shorting path was way slower than the one originally implemented
redoing the dirtrim feature though
This commit is contained in:
parent
ea5d844819
commit
fd9e15c737
32
liquidprompt
32
liquidprompt
@ -398,7 +398,7 @@ _lp_proxy()
|
|||||||
# + keep some left part of the path if asked
|
# + keep some left part of the path if asked
|
||||||
_lp_shorten_path()
|
_lp_shorten_path()
|
||||||
{
|
{
|
||||||
if [[ "$LP_ENABLE_SHORTEN_PATH" != 1 ]] ; then
|
if [[ "$LP_ENABLE_SHORTEN_PATH" != 1 || -n "$PROMPT_DIRTRIM" ]] ; then
|
||||||
if [[ "$_LP_WORKING_SHELL" == "bash" ]]; then
|
if [[ "$_LP_WORKING_SHELL" == "bash" ]]; then
|
||||||
echo "\\w"
|
echo "\\w"
|
||||||
else
|
else
|
||||||
@ -490,6 +490,35 @@ _lp_shorten_path()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_lp_get_dirtrim() {
|
||||||
|
if [[ "$LP_ENABLE_SHORTEN_PATH" != 1 ]]; then
|
||||||
|
[[ -n "$PROMPT_DIRTRIM" ]] && echo "$PROMPT_DIRTRIM"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local tot
|
||||||
|
[[ "$PWD" == *$HOME* ]] && tot="$((${#PWD}-${#HOME}+1))" || tot="${#PWD}"
|
||||||
|
local max_len=$((${COLUMNS:-80}*$LP_PATH_LENGTH/100))
|
||||||
|
local PROMPT_DIRTRIM=0
|
||||||
|
|
||||||
|
if [[ "$((tot))" -gt "$((max_len))" ]]; then
|
||||||
|
local i
|
||||||
|
local len=0
|
||||||
|
local p="$(echo $PWD | rev)"
|
||||||
|
|
||||||
|
local IFS="/"
|
||||||
|
for i in $p
|
||||||
|
do
|
||||||
|
len="$((len+${#i}))"
|
||||||
|
[[ "$((len))" -gt "$((max_len))" ]] && break
|
||||||
|
PROMPT_DIRTRIM=$((PROMPT_DIRTRIM+1))
|
||||||
|
done
|
||||||
|
[[ "$((PROMPT_DIRTRIM))" -eq 0 ]] && PROMPT_DIRTRIM=1
|
||||||
|
fi
|
||||||
|
echo "$PROMPT_DIRTRIM"
|
||||||
|
}
|
||||||
|
|
||||||
# Display a ":"
|
# Display a ":"
|
||||||
# colored in green if user have write permission on the current directory
|
# colored in green if user have write permission on the current directory
|
||||||
# colored in red if it have not.
|
# colored in red if it have not.
|
||||||
@ -991,6 +1020,7 @@ _lp_set_prompt()
|
|||||||
# LP_HOST is a global set at load time
|
# LP_HOST is a global set at load time
|
||||||
LP_PERM=$(_lp_permissions_color)
|
LP_PERM=$(_lp_permissions_color)
|
||||||
LP_PWD=$(_lp_shorten_path)
|
LP_PWD=$(_lp_shorten_path)
|
||||||
|
PROMPT_DIRTRIM=$(_lp_get_dirtrim)
|
||||||
LP_PROXY="${LP_COLOR_PROXY}$(_lp_proxy)${NO_COL}"
|
LP_PROXY="${LP_COLOR_PROXY}$(_lp_proxy)${NO_COL}"
|
||||||
|
|
||||||
# right of main prompt: space at left
|
# right of main prompt: space at left
|
||||||
|
Loading…
x
Reference in New Issue
Block a user