zmodload zsh/parameter
if [[ $ZSH_VERSION == ([1-4]*) ]]; then
__starship_get_time() {
STARSHIP_CAPTURED_TIME=$(::STARSHIP:: time)
}
else
zmodload zsh/datetime
zmodload zsh/mathfunc
__starship_get_time() {
(( STARSHIP_CAPTURED_TIME = int(rint(EPOCHREALTIME * 1000)) ))
}
fi
prompt_starship_precmd() {
STARSHIP_CMD_STATUS=$? STARSHIP_PIPE_STATUS=(${pipestatus[@]})
if (( ${+STARSHIP_START_TIME} )); then
__starship_get_time && STARSHIP_DURATION=$(( STARSHIP_CAPTURED_TIME - STARSHIP_START_TIME ))
unset STARSHIP_START_TIME
else
unset STARSHIP_DURATION STARSHIP_CMD_STATUS STARSHIP_PIPE_STATUS
fi
STARSHIP_JOBS_COUNT="${#jobstates[*]}"
}
prompt_starship_preexec() {
__starship_get_time && STARSHIP_START_TIME=$STARSHIP_CAPTURED_TIME
}
autoload -Uz add-zsh-hook
add-zsh-hook precmd prompt_starship_precmd
add-zsh-hook preexec prompt_starship_preexec
starship_zle-keymap-select() {
zle reset-prompt
}
if [[ -v widgets[zle-keymap-select] ]]; then
__starship_preserved_zle_keymap_select=${widgets[zle-keymap-select]#user:}
fi
if [[ -z ${__starship_preserved_zle_keymap_select:-} ]]; then
zle -N zle-keymap-select starship_zle-keymap-select;
else
starship_zle-keymap-select-wrapped() {
$__starship_preserved_zle_keymap_select "$@";
starship_zle-keymap-select "$@";
}
zle -N zle-keymap-select starship_zle-keymap-select-wrapped;
fi
export STARSHIP_SHELL="zsh"
STARSHIP_SESSION_KEY="$RANDOM$RANDOM$RANDOM$RANDOM$RANDOM"; STARSHIP_SESSION_KEY="${STARSHIP_SESSION_KEY}0000000000000000" export STARSHIP_SESSION_KEY=${STARSHIP_SESSION_KEY:0:16};
VIRTUAL_ENV_DISABLE_PROMPT=1
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")'
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)"