49 lines
1.7 KiB
Bash
49 lines
1.7 KiB
Bash
# vim: ft=zsh
|
|
|
|
function prompt_elatella_precmd {
|
|
if (( $+functions[git-info] )); then
|
|
git-info
|
|
fi
|
|
}
|
|
|
|
function prompt_elatella_setup {
|
|
setopt LOCAL_OPTIONS
|
|
unsetopt XTRACE KSH_ARRAYS
|
|
prompt_opts=(cr percent sp subst)
|
|
|
|
# Load required functions
|
|
autoload -Uz add-zsh-hook
|
|
|
|
# Add hook for calling git-info before each command
|
|
add-zsh-hook precmd prompt_elatella_precmd
|
|
|
|
# Tell prezto we can manage this prompt
|
|
zstyle ':prezto:module:prompt' managed 'yes'
|
|
|
|
# Set git-info parameters
|
|
zstyle ':prezto:module:git:info' verbose 'yes'
|
|
zstyle ':prezto:module:git:info:branch' format '%b'
|
|
zstyle ':prezto:module:git:info:position' format '%p'
|
|
zstyle ':prezto:module:git:info:commit' format '%.7c'
|
|
zstyle ':prezto:module:git:info:action' format '%F{yellow}[%s]%f'
|
|
zstyle ':prezto:module:git:info:deleted' format '%F{yellow}●%f'
|
|
zstyle ':prezto:module:git:info:modified' format '%F{yellow}●%f'
|
|
zstyle ':prezto:module:git:info:untracked' format '%F{yellow}●%f'
|
|
zstyle ':prezto:module:git:info:renamed' format '%F{green}●%f'
|
|
zstyle ':prezto:module:git:info:added' format '%F{green}●%f'
|
|
zstyle ':prezto:module:git:info:ahead' format '%F{yellow} ⬆%f'
|
|
zstyle ':prezto:module:git:info:behind' format '%F{yellow} ⬇%f'
|
|
zstyle ':prezto:module:git:info:stashed' format '%F{yellow} ★%f'
|
|
zstyle ':prezto:module:git:info:keys' format \
|
|
'prompt' ' %F{cyan}[$(coalesce "%b" "%p" "%c")%f${(e)git_info[status]}%F{cyan}]%f%s' \
|
|
'status' '$(coalesce "%a" "%r")$(coalesce "%d" "%m" "%u")%A%B%S' \
|
|
|
|
# Define prompts
|
|
PROMPT='%F{magenta}%c%f${(e)git_info[prompt]} '
|
|
}
|
|
|
|
function prompt_elatella_help {
|
|
echo 'This prompt is as minimalist as possible and cannot be customized.'
|
|
}
|
|
|
|
prompt_elatella_setup "$@"
|