zsh: clear exit code between prompts
This commit is contained in:
parent
8ce74ac85e
commit
0ed7c6f650
|
@ -23,23 +23,22 @@ else
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# The two functions below follow the naming convention `prompt_<theme>_<hook>`
|
# The two functions below follow the naming convention `prompt_<theme>_<hook>`
|
||||||
# for compatibility with Zsh's prompt system. See
|
# for compatibility with Zsh's prompt system. See
|
||||||
# https://github.com/zsh-users/zsh/blob/2876c25a28b8052d6683027998cc118fc9b50157/Functions/Prompts/promptinit#L155
|
# https://github.com/zsh-users/zsh/blob/2876c25a28b8052d6683027998cc118fc9b50157/Functions/Prompts/promptinit#L155
|
||||||
|
|
||||||
# Runs before each new command line.
|
# Runs before each new command line.
|
||||||
prompt_starship_precmd() {
|
prompt_starship_precmd() {
|
||||||
# Save the status, because commands in this pipeline will change $?
|
# Save the status, because subsequent commands in this function will change $?
|
||||||
STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]})
|
STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]})
|
||||||
|
|
||||||
# Compute cmd_duration, if we have a time to consume, otherwise clear the
|
# Calculate duration if a command was executed
|
||||||
# previous duration
|
|
||||||
if (( ${+STARSHIP_START_TIME} )); then
|
if (( ${+STARSHIP_START_TIME} )); then
|
||||||
__starship_get_time && (( STARSHIP_DURATION = STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME ))
|
__starship_get_time && (( STARSHIP_DURATION = STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME ))
|
||||||
unset STARSHIP_START_TIME
|
unset STARSHIP_START_TIME
|
||||||
|
# Drop status and duration otherwise
|
||||||
else
|
else
|
||||||
unset STARSHIP_DURATION
|
unset STARSHIP_DURATION STARSHIP_CMD_STATUS STARSHIP_PIPE_STATUS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use length of jobstates array as number of jobs. Expansion fails inside
|
# Use length of jobstates array as number of jobs. Expansion fails inside
|
||||||
|
@ -47,7 +46,8 @@ prompt_starship_precmd() {
|
||||||
STARSHIP_JOBS_COUNT=${#jobstates}
|
STARSHIP_JOBS_COUNT=${#jobstates}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Runs after the user submits the command line, but before it is executed.
|
# Runs after the user submits the command line, but before it is executed and
|
||||||
|
# only if there's an actual command to run
|
||||||
prompt_starship_preexec() {
|
prompt_starship_preexec() {
|
||||||
__starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME
|
__starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME
|
||||||
}
|
}
|
||||||
|
@ -76,8 +76,6 @@ else
|
||||||
zle -N zle-keymap-select starship_zle-keymap-select-wrapped;
|
zle -N zle-keymap-select starship_zle-keymap-select-wrapped;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
__starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME
|
|
||||||
|
|
||||||
export STARSHIP_SHELL="zsh"
|
export STARSHIP_SHELL="zsh"
|
||||||
|
|
||||||
# Set up the session key that will be used to store logs
|
# Set up the session key that will be used to store logs
|
||||||
|
@ -92,4 +90,3 @@ setopt promptsubst
|
||||||
PROMPT='$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")'
|
PROMPT='$(::STARSHIP:: prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")'
|
||||||
RPROMPT='$(::STARSHIP:: prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")'
|
RPROMPT='$(::STARSHIP:: prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")'
|
||||||
PROMPT2="$(::STARSHIP:: prompt --continuation)"
|
PROMPT2="$(::STARSHIP:: prompt --continuation)"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue