diff --git a/roles/zsh/files/config/configs/prompt.zsh b/roles/zsh/files/config/configs/prompt.zsh index fecd9fc8..350368bc 100644 --- a/roles/zsh/files/config/configs/prompt.zsh +++ b/roles/zsh/files/config/configs/prompt.zsh @@ -1,15 +1,34 @@ -setopt prompt_subst +autoload -Uz colors && colors -git_branch() { +prompt_color() { + [[ -n "$1" ]] && print "%{$fg_bold[$2]%}$1%{$reset_color%}" +} + +prompt_blue() { print "$(prompt_color "$1" blue)" } +prompt_green() { print "$(prompt_color "$1" green)" } +prompt_red() { print "$(prompt_color "$1" red)" } +prompt_yellow() { print "$(prompt_color "$1" yellow)" } + +prompt_full_path() { + print "$(prompt_blue %~)" +} + +prompt_shortened_path() { + print "$(prompt_blue %2~)" +} + +prompt_git_branch() { local branch="$(git symbolic-ref HEAD 2> /dev/null | cut -d'/' -f3)" - [ -n "${branch}" ] && echo " ${branch}" + [ -n "${branch}" ] && print "$(prompt_green $branch)" } -git_commit() { +prompt_git_commit() { local commit_sha="$(git rev-parse --short HEAD 2> /dev/null)" - [ -n "${commit_sha}" ] && echo " [%{$fg[yellow]%}${commit_sha}%{$reset_color%}]" + [ -n "${commit_sha}" ] && echo [$(prompt_yellow $commit_sha)] } -export PS1='%{$fg[blue]%}%~%{$reset_color%}%{$fg[green]%}$(git_branch)%{$reset_color%}$(git_commit) $ ' +setopt prompt_subst + +PROMPT='$(prompt_shortened_path) $(prompt_git_branch) $(prompt_git_commit) $ '