mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-12-21 06:41:57 +00:00
Merge pull request #412 from dritter/truncate_composer_json
Truncate via name in composer json
This commit is contained in:
commit
349b2c315f
3 changed files with 16 additions and 2 deletions
|
@ -24,6 +24,11 @@ Added an option to configure the path separator. If you want something
|
||||||
else than an ordinary slash, you could set
|
else than an ordinary slash, you could set
|
||||||
`POWERLEVEL9K_DIR_PATH_SEPARATOR` to whatever you want.
|
`POWERLEVEL9K_DIR_PATH_SEPARATOR` to whatever you want.
|
||||||
|
|
||||||
|
#### `truncate_with_package_name` now searches for `composer.json` as well
|
||||||
|
|
||||||
|
Now `composer.json` files are searched as well. By default `package.json` still takes
|
||||||
|
precedence. If you want to change that, set `POWERLEVEL9K_DIR_PACKAGE_FILES=(composer.json package.json)`.
|
||||||
|
|
||||||
### New segment 'command_execution_time' added
|
### New segment 'command_execution_time' added
|
||||||
|
|
||||||
Shows the duration a command needed to run. By default only durations over 3 seconds
|
Shows the duration a command needed to run. By default only durations over 3 seconds
|
||||||
|
|
|
@ -312,7 +312,7 @@ Customizations available are:
|
||||||
|Default|Truncate whole directories from left. How many is defined by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`|
|
|Default|Truncate whole directories from left. How many is defined by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`|
|
||||||
|`truncate_middle`|Truncates the middle part of a folder. E.g. you are in a folder named "~/MySuperProjects/AwesomeFiles/BoringOffice", then it will truncated to "~/MyS..cts/Awe..les/BoringOffice", if `POWERLEVEL9K_SHORTEN_DIR_LENGTH=3` is also set (controls the amount of characters to be left).|
|
|`truncate_middle`|Truncates the middle part of a folder. E.g. you are in a folder named "~/MySuperProjects/AwesomeFiles/BoringOffice", then it will truncated to "~/MyS..cts/Awe..les/BoringOffice", if `POWERLEVEL9K_SHORTEN_DIR_LENGTH=3` is also set (controls the amount of characters to be left).|
|
||||||
|`truncate_from_right`|Just leaves the beginning of a folder name untouched. E.g. your folders will be truncated like so: "/ro../Pr../office". How many characters will be untouched is controlled by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`.|
|
|`truncate_from_right`|Just leaves the beginning of a folder name untouched. E.g. your folders will be truncated like so: "/ro../Pr../office". How many characters will be untouched is controlled by `POWERLEVEL9K_SHORTEN_DIR_LENGTH`.|
|
||||||
|`truncate_with_package_name`|Use the `package.json` `name` field to abbreviate the directory path. If you have [jq](https://stedolan.github.io/jq/) installed, it will dramatically improve the speed of this strategy.|
|
|`truncate_with_package_name`|Search for a `package.json` or `composer.json` and prints the `name` field to abbreviate the directory path. The precedence and/or files could be set by `POWERLEVEL9K_DIR_PACKAGE_FILES=(package.json composer.json)`. If you have [jq](https://stedolan.github.io/jq/) installed, it will dramatically improve the speed of this strategy.|
|
||||||
|`truncate_with_folder_marker`|Search for a file that is specified by `POWERLEVEL9K_SHORTEN_FOLDER_MARKER` and truncate everything before that (if found, otherwise stop on $HOME and ROOT).|
|
|`truncate_with_folder_marker`|Search for a file that is specified by `POWERLEVEL9K_SHORTEN_FOLDER_MARKER` and truncate everything before that (if found, otherwise stop on $HOME and ROOT).|
|
||||||
|
|
||||||
For example, if you wanted the truncation behavior of the `fish` shell, which
|
For example, if you wanted the truncation behavior of the `fish` shell, which
|
||||||
|
|
|
@ -655,7 +655,16 @@ prompt_dir() {
|
||||||
subdirectory_path=$(truncatePathFromRight "${current_dir:${#${(S%%)package_path//$~zero/}}}")
|
subdirectory_path=$(truncatePathFromRight "${current_dir:${#${(S%%)package_path//$~zero/}}}")
|
||||||
# Parse the 'name' from the package.json; if there are any problems, just
|
# Parse the 'name' from the package.json; if there are any problems, just
|
||||||
# print the file path
|
# print the file path
|
||||||
local pkgFile="${package_path}/package.json"
|
defined POWERLEVEL9K_DIR_PACKAGE_FILES || POWERLEVEL9K_DIR_PACKAGE_FILES=(package.json composer.json)
|
||||||
|
|
||||||
|
local pkgFile="unknown"
|
||||||
|
for file in "${POWERLEVEL9K_DIR_PACKAGE_FILES[@]}"; do
|
||||||
|
if [[ -f "${package_path}/${file}" ]]; then
|
||||||
|
pkgFile="${package_path}/${file}"
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
local packageName=$(jq '.name' ${pkgFile} 2> /dev/null \
|
local packageName=$(jq '.name' ${pkgFile} 2> /dev/null \
|
||||||
|| node -e 'console.log(require(process.argv[1]).name);' ${pkgFile} 2>/dev/null \
|
|| node -e 'console.log(require(process.argv[1]).name);' ${pkgFile} 2>/dev/null \
|
||||||
|| cat "${pkgFile}" 2> /dev/null | grep -m 1 "\"name\"" | awk -F ':' '{print $2}' | awk -F '"' '{print $2}' 2>/dev/null \
|
|| cat "${pkgFile}" 2> /dev/null | grep -m 1 "\"name\"" | awk -F ':' '{print $2}' | awk -F '"' '{print $2}' 2>/dev/null \
|
||||||
|
|
Loading…
Reference in a new issue