diff options
Diffstat (limited to 'oh-my-zsh')
-rw-r--r-- | oh-my-zsh/xcolour.zsh-theme | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/oh-my-zsh/xcolour.zsh-theme b/oh-my-zsh/xcolour.zsh-theme index 3ab82ff..1578a47 100644 --- a/oh-my-zsh/xcolour.zsh-theme +++ b/oh-my-zsh/xcolour.zsh-theme @@ -6,9 +6,53 @@ function prompt_char { echo '$' } +function return_code { + code=$(echo $?) + if [[ $code == "0" ]]; then + return + else + echo "%{$fg[red]%}$code%{$reset_color%} " + fi +} + +function parse_git_branch { + echo "${ref#refs/heads/}" +} + +function parse_git_staged { + $(git diff-index --quiet --cached HEAD) && return + echo "staged" +} +function parse_git_unstaged { + $(git diff-files --quiet) && return + echo "unstaged" +} + +function my_git_prompt_info { + ref=$(git symbolic-ref HEAD 2> /dev/null) || return +# # staged +# git diff-index --quiet --cached HEAD +# if [ $? -eq 1 ]; then +# echo "(%{$fg[yellow]%}${ref#refs/heads/}%{$reset_color%}) " +# return +# fi +# # uunstaged +# git ls-files --exclude-standard --others +# if [ $? -eq 1 ]; then +# echo "(%{$fg[red]%}${ref#refs/heads/}%{$reset_color%}) " +# return +# fi +# # untracked and unignored +# git diff-files --quiet +# if [ $? -eq 1 ]; then +# echo "(%{$fg[red]%}${ref#refs/heads/}%{$reset_color%}) " +# return +# fi + echo "(${ref#refs/heads/}) " +} + PROMPT='%{$fg[yellow]%}%n%{$reset_color%}@%{$fg[green]%}%m%{$reset_color%}:%{$fg[blue]%}%~%{$reset_color%} -$(prompt_char) %{$reset_color%}' -RPROMPT='%D{%r}' +$(return_code)$(my_git_prompt_info)$(prompt_char) %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="(" ZSH_THEME_GIT_PROMPT_SUFFIX=") " |