mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-11 00:00:06 +00:00
speed up dotnet
This commit is contained in:
parent
daee88bc01
commit
c6c0ee59d7
1 changed files with 37 additions and 7 deletions
|
@ -1990,12 +1990,41 @@ prompt_dotnet_version() {
|
||||||
(( $+commands[dotnet] )) || return
|
(( $+commands[dotnet] )) || return
|
||||||
|
|
||||||
if (( _POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY )); then
|
if (( _POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY )); then
|
||||||
local dir=$_p9k_pwd
|
case $_p9k_pwd in
|
||||||
while true; do
|
~|/) return;;
|
||||||
[[ $dir == / ]] && return
|
~/*)
|
||||||
[[ -n $dir/(project.json|global.json|packet.dependencies|*.csproj|*.fsproj|*.xproj|*.sln)(#qN^/) ]] && break
|
local parent=~/
|
||||||
dir=${dir:h}
|
local parts=(${(s./.)_p9k_pwd#$parent})
|
||||||
done
|
;;
|
||||||
|
*)
|
||||||
|
local parent=/
|
||||||
|
local parts=(${(s./.)_p9k_pwd})
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
local MATCH
|
||||||
|
local dirs=(${(@)${:-{1..$#parts}}/(#m)*/$parent${(pj./.)parts[i,$MATCH]}})
|
||||||
|
local mtimes=()
|
||||||
|
zstat -A mtimes +mtime -- $dirs 2>/dev/null || mtimes=()
|
||||||
|
local key="${(pj.:.)mtimes}"
|
||||||
|
if ! _p9k_cache_ephemeral_get $0 $_p9k_pwd || [[ $key != $_p9k_cache_val[1] ]] ; then
|
||||||
|
echo big miss
|
||||||
|
local -i i found
|
||||||
|
for i in {1..$#dirs}; do
|
||||||
|
local dir=$dirs[i] mtime=$mtimes[i]
|
||||||
|
local pair=$_p9k__dotnet_cache[$dir]
|
||||||
|
if [[ $pair == ${mtime:-x}:* ]]; then
|
||||||
|
(( $pair[-1] )) && found=1
|
||||||
|
else
|
||||||
|
echo miss $dir
|
||||||
|
[[ -z $dir/(project.json|global.json|packet.dependencies|*.csproj|*.fsproj|*.xproj|*.sln)(#qN^/) ]]
|
||||||
|
local -i has=$?
|
||||||
|
(( has )) && found=1
|
||||||
|
[[ -n $mtime ]] && _p9k__dotnet_cache[$dir]="$mtime:$has"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[[ -n $key ]] && _p9k_cache_ephemeral_set "$key" $found
|
||||||
|
fi
|
||||||
|
(( _p9k_cache_val[2] )) || return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
_p9k_cached_cmd_stdout dotnet --version || return
|
_p9k_cached_cmd_stdout dotnet --version || return
|
||||||
|
@ -4349,6 +4378,7 @@ _p9k_init_vars() {
|
||||||
typeset -g _p9k_uname_m
|
typeset -g _p9k_uname_m
|
||||||
|
|
||||||
typeset -gi _p9k__transient_rprompt_active
|
typeset -gi _p9k__transient_rprompt_active
|
||||||
|
typeset -gA _p9k__dotnet_cache
|
||||||
|
|
||||||
typeset -g P9K_VISUAL_IDENTIFIER
|
typeset -g P9K_VISUAL_IDENTIFIER
|
||||||
typeset -g P9K_CONTENT
|
typeset -g P9K_CONTENT
|
||||||
|
@ -4977,7 +5007,7 @@ _p9k_must_init() {
|
||||||
[[ $sig == $_p9k__param_sig ]] && return 1
|
[[ $sig == $_p9k__param_sig ]] && return 1
|
||||||
_p9k_deinit
|
_p9k_deinit
|
||||||
fi
|
fi
|
||||||
_p9k__param_pat=$'v0\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
|
_p9k__param_pat=$'v1\1'${ZSH_VERSION}$'\1'${ZSH_PATCHLEVEL}$'\1'
|
||||||
_p9k__param_pat+=$'${#parameters[(I)POWERLEVEL9K_*]}\1${(%):-%n%#}\1$GITSTATUS_LOG_LEVEL\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+=$'$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'
|
_p9k__param_pat+=$'$DEFAULT_USER\1${ZLE_RPROMPT_INDENT:-1}\1$P9K_SSH\1$__p9k_ksh_arrays'
|
||||||
|
|
Loading…
Reference in a new issue