mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-16 17:50:09 +00:00
Add shortening strategy based on package.json name
This commit is contained in:
parent
d0e9baf453
commit
daa7255e85
1 changed files with 37 additions and 1 deletions
|
@ -446,6 +446,42 @@ prompt_dir() {
|
|||
truncate_from_right)
|
||||
current_path=$(pwd | sed -e "s,^$HOME,~," | sed $SED_EXTENDED_REGEX_PARAMETER "s/([^/]{$POWERLEVEL9K_SHORTEN_DIR_LENGTH})[^/]+\//\1$POWERLEVEL9K_SHORTEN_DELIMITER\//g")
|
||||
;;
|
||||
truncate_with_package_name)
|
||||
local name repo_path package_path current_dir zero
|
||||
|
||||
# Get the path of the Git repo, which should have the package.json file
|
||||
if repo_path=$(git rev-parse --git-dir 2>/dev/null); then
|
||||
if [[ "$repo_path" == ".git" ]]; then
|
||||
# If the current path is the root of the project, then the package path is
|
||||
# the current directory and we don't want to append anything to represent
|
||||
# the path to a subdirectory
|
||||
package_path="."
|
||||
subdirectory_path=""
|
||||
else
|
||||
# If the current path is something else, get the path to the package.json
|
||||
# file by finding the repo path and removing the '.git` from the path
|
||||
package_path=${repo_path:0:-4}
|
||||
zero='%([BSUbfksu]|([FB]|){*})'
|
||||
current_dir=$(pwd)
|
||||
# Then, find the length of the package_path string, and save the
|
||||
# subdirectory path as a substring of the current directory's path from 0
|
||||
# to the length of the package path's string
|
||||
subdirectory_path="/${current_dir:${#${(S%%)package_path//$~zero/}}}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Parse the 'name' from the package.json; if there are any problems, just
|
||||
# print the file path
|
||||
if name=$( cat "$package_path/package.json" 2> /dev/null | grep "\"name\""); then
|
||||
name=$(echo $name | awk -F ':' '{print $2}' | awk -F '"' '{print $2}')
|
||||
|
||||
# Instead of printing out the full path, print out the name of the package
|
||||
# from the package.json and append the current subdirectory
|
||||
current_path="`echo $name | tr -d '"'`$subdirectory_path"
|
||||
else
|
||||
current_path='%~'
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
current_path="%$((POWERLEVEL9K_SHORTEN_DIR_LENGTH+1))(c:$POWERLEVEL9K_SHORTEN_DELIMITER/:)%${POWERLEVEL9K_SHORTEN_DIR_LENGTH}c"
|
||||
;;
|
||||
|
@ -572,7 +608,7 @@ prompt_nodeenv() {
|
|||
local nodeenv_path="$NODE_VIRTUAL_ENV"
|
||||
if [[ -n "$nodeenv_path" && "$NODE_VIRTUAL_ENV_DISABLE_PROMPT" != true ]]; then
|
||||
local info="$(node -v)[$(basename "$nodeenv_path")]"
|
||||
"$1_prompt_segment" "$0" "$2" "black" "green" "$info" 'NODE_ICON'
|
||||
"$1_prompt_segment" "$0" "$2" "black" "green" "$info" 'NODE_ICON'
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue