1
0
Fork 0

update comments:

- Describe short-circuit logic better
    - Make the Sample smaller and simpler
pull/2/head
Ashley Dev 14 years ago
parent 9c4f4f501f
commit c4a2588a76

@ -12,152 +12,49 @@
# Add 'git' to your list of oh-my-zsh plugins (in your .zshrc) otherwise this
# git prompt info will not show up in your prompt.
#
# This example shows some of the things you can do with this plugin. This is
# how the author uses it:
# This simple example shows some of the things you can do with this plugin.
# (See the ashleydev theme for more complex usage.)
# ---------------------- SAMPLE THEME FILE ------------------------
#
# # this is a simple example PROMPT with only git
# # info from this plugin in it:
# PROMPT='$__GIT_PROMPT_INFO# '
#
# # Set GIT_PROMPT_SHORTCIRCUIT='off' to turn the
# # short-circuit logic off. The short-circuit
# # logic will turn off the showing of dirty
# # state in your git prompt if ctrl-c is pressed
# # while the prompt is updating the dirty state
# # info. Gathering dirty-state info can take a
# # long time on large repositories, so if you
# # find that your prompt is taking for ever to
# # return, and you press ctrl-c, the short-
# # circuit logic will turn off the showing of
# # dirty state for this repository (locally) and
# # let you know, that way you won't be slowed
# # down waiting for your prompt in large git
# # repositories.
# #GIT_PROMPT_SHORTCIRCUIT='off'
#
# GIT_PROMPT_SHOWUPSTREAM="verbose"
# #GIT_PROMPT_SHOWREBASEINFO='off'
# #GIT_PROMPT_SHOWBRANCH='off'
# #GIT_PROMPT_SHOWSTASHSTATE='off'
# #GIT_PROMPT_SHORTCIRCUIT='off'
# #GIT_PROMPT_SHOWDIRTYSTATE='off'
#
# # Some color settings for my prompt format
# # '_C' for color:
# if [[ "$DISABLE_COLOR" != "true" ]]; then
# local _Cerror_="%{$fg[yellow]%}" # bad (empty) .git/ directory
# local _Cb_new_repo_="%{$fg_bold[default]%}" # branch color of new repo
# local _Cb_clean_="%{$fg_no_bold[green]%}" # branch color when clean
# local _Cb_dirty_="%{$fg_no_bold[red]%}" # branch color when dirty
# local _Cr_="%{$bold_color$fg[yellow]%}" # rebase info
# local _Ci_="%{$bold_color$fg[red]%}" # index info
# local _Cu_clean_="" # untracked files state when clean
# local _Cu_dirty_="%{$fg_bold[red]%}" # untracked files state when dirty
# local _Cp_="%{${fg[cyan]}%}" # upstream info
# local _Cs_="" # stash state
# # 'R'eset formating
# local R="%{$terminfo[sgr0]%}"
# fi
#
# # GIT_PROMPT_INFO_FUNC must be set to the
# # function that defines your prompt info
# # in order to turn this plugin on.
# # $GIT_PROMPT_INFO_FUNC to be called when the
# # git prompt info variable needs to be updated.
# GIT_PROMPT_INFO_FUNC='update__GIT_PROMPT_INFO'
#
# # update__GIT_PROMPT_INFO creates the format and
# # content of the git prompt info and puts the
# # result in $__GIT_PROMPT_INFO. Which you can
# # use in your $PROMPT (see above). This is an
# # example of some of the ways you can set up
# # your prompt with this plugin.
# #
# # NOTE: This function must set a global variable
# # (with the your git prompt format) that you
# # include in your PROMPT string.
# # It cannot echo this info as in:
# # PROMPT="$(update__GIT_PROMPT_INFO)"
# # or the short-circuit logic will not work.
# #
# local __GIT_PROMPT_INFO=''
# update__GIT_PROMPT_INFO ()
# {
# local g="$(_git_promt__git_dir)"
# # short circuit if we're not in a git repo:
# if [ -z "$g" ]; then
# __GIT_PROMPT_INFO=''
# return
# fi
#
# _git_prompt__stash
# local s=$GIT_PROMPT_STASH_STATE_DIRTY
#
# _git_prompt__upstream
# local p=$GIT_PROMPT_UPSTREAM_STATE
#
# _git_prompt__branch
# local b=$GIT_PROMPT_BRANCH
#
# _git_prompt__rebase_info
# local r=$GIT_PROMPT_REBASE_INFO
#
# _git_prompt__dirty_state
# local w=$GIT_PROMPT_DIRTY_STATE_WORKTREE_DIRTY
# local i=$GIT_PROMPT_DIRTY_STATE_INDEX_DIRTY
# local u=$GIT_PROMPT_DIRTY_STATE_WORKTREE_UNTRACKED
# local f=$GIT_PROMPT_DIRTY_STATE_FRESH_REPO
#
# if [ -z "$b$i$w$u" ]; then
# if [ -n "$g" ]; then
# __GIT_PROMPT_INFO="$R$_Cerror_(Error: bad ./$g dir)$R"
# return
# fi
# fi
#
# if [ "$s" = 'yes' ]; then
# s="$_Cs_\$$R"
# else
# s=""
# fi
#
# if [ -n "$p" ]; then
# p="$_Cp_$p$R"
# fi
# # Reset color
# local R="%{$terminfo[sgr0]%}"
#
# if [ "$i" = "yes" ]; then
# i="$_Ci_+$R"
# i="%{$bold_color$fg[red]%}+$R"
# else
# i=""
# fi
#
# if [ -n "$b" ]; then
# if [ "$f" = "yes" ]; then
# # this is a fresh repo, nothing here...
# b="$_Cb_new_repo_$b$R"
# elif [ "$w" = 'yes' ]; then
# b="$_Cb_dirty_$b$R"
# if [ "$w" = 'yes' ]; then
# b="%{$fg_no_bold[red]%}$b$R"
# elif [ "$w" = 'no' ]; then
# b="$_Cb_clean_$b$R"
# b="%{$fg_no_bold[green]%}$b$R"
# fi
# fi
#
# if [ -n "$r" ]; then
# r="$_Cr_$r$R"
# fi
#
# local _prompt="$b$r$i$s$p"
# # add ( ) around _prompt:
# if [ "$u" = "yes" ]; then
# _prompt="$_Cu_dirty_($_prompt$_Cu_dirty_)"
# elif [ "$u" = "no" ]; then
# _prompt="$_Cu_clean_($_prompt$_Cu_clean_)"
# else
# _prompt="($_prompt$)"
# fi
#
# __GIT_PROMPT_INFO="$R$_prompt$R"
# __GIT_PROMPT_INFO="$R($b$i)$R"
# }
# -----------------------------------------------------------------
#
@ -438,6 +335,40 @@ _git_prompt__stash ()
# This is the short-circuit logic:
#
# Set GIT_PROMPT_SHORTCIRCUIT='off' to turn the short-circuit logic off.
#
# Gathering dirty-state info can take a long time on large repositories. The
# short-circuit logic is engaged by pressing ctrl-c while the prompt is trying
# to gather information about a large repository. When this happens the
# short-circuit logic will display a warning and turn off the showing of dirty
# state in your git prompt (for the local repo only).
#
# NOTE: To make the short-circuit logic work, the GIT_PROMPT_INFO_FUNC function
# must set a global variable (with your git prompt format), rather than echo it.
# Correct:
#
# PROMPT='$__GIT_PROMPT_INFO > '
#
# # this function sets $__GIT_PROMPT_INFO
# function update_prompt_func ()
# {
# #...
# __GIT_PROMPT_INFO="$info"
# }
# GIT_PROMPT_INFO_FUNC=update_prompt_func
#
# Incorrect:
#
# PROMPT='$(update_prompt_func) > '
#
# function update_prompt_func ()
# {
# #...
# echo "$info"
# }
# GIT_PROMPT_INFO_FUNC=update_prompt_func
#
local _big_repo='init'
__git_prompt_shortcircuit ()
{

Loading…
Cancel
Save