aboutsummaryrefslogtreecommitdiff
path: root/internal/p10k.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'internal/p10k.zsh')
-rwxr-xr-xinternal/p10k.zsh52
1 files changed, 29 insertions, 23 deletions
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index 38c79132..2db3f023 100755
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -888,28 +888,32 @@ prompt_custom() {
################################################################
# Display the duration the command needed to run.
-typeset -gF _P9K_COMMAND_DURATION
set_default -i POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD 3
set_default -i POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION 2
+set_default POWERLEVEL9K_COMMAND_EXECUTION_TIME_DISABLE_FORMATTING false
prompt_command_execution_time() {
- (( _P9K_COMMAND_DURATION < POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD )) && return
+ (( $+P9K_COMMAND_DURATION_SECONDS && P9K_COMMAND_DURATION_SECONDS >= POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD )) || return
- if (( _P9K_COMMAND_DURATION < 60 )); then
- if [[ $POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION == 0 ]]; then
- local -i sec=$((_P9K_COMMAND_DURATION + 0.5))
- else
- local -F $POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION sec=_P9K_COMMAND_DURATION
- fi
- local text=${sec}s
+ if [[ $POWERLEVEL9K_COMMAND_EXECUTION_TIME_DISABLE_FORMATTING == true ]]; then
+ local text=''
else
- local -i d=_P9K_COMMAND_DURATION
- local text=${(l.2..0.)$((d % 60))}
- if (( d >= 60 )); then
- text=${(l.2..0.)$((d / 60 % 60))}:$text
- if (( d >= 36000 )); then
- text=$((d / 3600)):$text
- elif (( d >= 3600 )); then
- text=0$((d / 3600)):$text
+ if (( _P9K_COMMAND_DURATION < 60 )); then
+ if [[ $POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION == 0 ]]; then
+ local -i sec=$((_P9K_COMMAND_DURATION + 0.5))
+ else
+ local -F $POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION sec=_P9K_COMMAND_DURATION
+ fi
+ local text=${sec}s
+ else
+ local -i d=_P9K_COMMAND_DURATION
+ local text=${(l.2..0.)$((d % 60))}
+ if (( d >= 60 )); then
+ text=${(l.2..0.)$((d / 60 % 60))}:$text
+ if (( d >= 36000 )); then
+ text=$((d / 3600)):$text
+ elif (( d >= 3600 )); then
+ text=0$((d / 3600)):$text
+ fi
fi
fi
fi
@@ -2457,8 +2461,6 @@ prompt_java_version() {
set_default -a POWERLEVEL9K_LEFT_PROMPT_ELEMENTS context dir vcs
set_default -a POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS status root_indicator background_jobs history time
-typeset -gF _P9K_TIMER_START
-
powerlevel9k_preexec() {
if (( _P9K_EMULATE_ZERO_RPROMPT_INDENT )); then
if [[ -n $_P9K_REAL_ZLE_RPROMPT_INDENT ]]; then
@@ -2467,7 +2469,7 @@ powerlevel9k_preexec() {
unset ZLE_RPROMPT_INDENT
fi
fi
- _P9K_TIMER_START=$EPOCHREALTIME
+ typeset -gF _P9K_TIMER_START=EPOCHREALTIME
}
typeset -g _P9K_PROMPT
@@ -2559,8 +2561,12 @@ powerlevel9k_refresh_prompt_inplace() {
powerlevel9k_prepare_prompts() {
_P9K_EXIT_CODE=$?
_P9K_PIPE_EXIT_CODES=( "$pipestatus[@]" )
- _P9K_COMMAND_DURATION=$((EPOCHREALTIME - _P9K_TIMER_START))
- _P9K_TIMER_START=1e10
+ if (( $+_P9K_TIMER_START )); then
+ P9K_COMMAND_DURATION_SECONDS=$((EPOCHREALTIME - _P9K_TIMER_START))
+ unset _P9K_TIMER_START
+ else
+ unset P9K_COMMAND_DURATION_SECONDS
+ fi
_P9K_REGION_ACTIVE=0
unsetopt localoptions
@@ -3168,7 +3174,7 @@ prompt_powerlevel9k_setup() {
add-zsh-hook precmd powerlevel9k_prepare_prompts
add-zsh-hook preexec powerlevel9k_preexec
- _P9K_TIMER_START=1e10
+ unset _P9K_TIMER_START
_P9K_ENABLED=1
}