Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
91cb7955
Commit
91cb7955
authored
Apr 24, 2013
by
Robby Russell
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1739 from felipec/fc/gitfast
Updates to gifast
parents
e953fcf5
c944f8b4
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
504 additions
and
102 deletions
+504
-102
_git
plugins/gitfast/_git
+9
-0
git-completion.bash
plugins/gitfast/git-completion.bash
+364
-81
git-prompt.sh
plugins/gitfast/git-prompt.sh
+129
-20
gitfast.plugin.zsh
plugins/gitfast/gitfast.plugin.zsh
+2
-1
No files found.
plugins/gitfast/_git
View file @
91cb7955
...
...
@@ -60,6 +60,15 @@ __gitcomp_nl ()
compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0
}
__gitcomp_file ()
{
emulate -L zsh
local IFS=$'\n'
compset -P '*[=:]'
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
}
_git ()
{
local _ret=1
...
...
plugins/gitfast/git-completion.bash
View file @
91cb7955
This diff is collapsed.
Click to expand it.
plugins/gitfast/git-prompt.sh
View file @
91cb7955
...
...
@@ -10,9 +10,22 @@
# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
# 2) Add the following line to your .bashrc/.zshrc:
# source ~/.git-prompt.sh
# 3) Change your PS1 to also show the current branch:
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# 3a) Change your PS1 to call __git_ps1 as
# command-substitution:
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# the optional argument will be used as format string.
# 3b) Alternatively, if you are using bash, __git_ps1 can be
# used for PROMPT_COMMAND with two parameters, <pre> and
# <post>, which are strings you would put in $PS1 before
# and after the status string generated by the git-prompt
# machinery. e.g.
# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
# will show username, at-sign, host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your prompt.
# Optionally, you can supply a third argument with a printf
# format string to finetune the output of the branch status
#
# The argument to __git_ps1 will be displayed only if you are currently
# in a git repository. The %s token will be the name of the current
...
...
@@ -30,7 +43,10 @@
#
# If you would like to see if there're untracked files, then you can set
# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
# files, then a '%' will be shown next to the branch name.
# files, then a '%' will be shown next to the branch name. You can
# configure this per-repository with the bash.showUntrackedFiles
# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
# enabled.
#
# If you would like to see the difference between HEAD and its upstream,
# set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">"
...
...
@@ -49,6 +65,19 @@
# find one, or @{upstream} otherwise. Once you have set
# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
# setting the bash.showUpstream config variable.
#
# If you would like to see more information about the identity of
# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
# to one of these values:
#
# contains relative to newer annotated tag (v1.6.3.2~35)
# branch relative to newer tag or branch (master~4)
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
# default exactly matching tag
#
# If you would like a colored hint about the current dirty state, set
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
# the colored output of "git status -sb".
# __gitdir accepts 0 or 1 arguments (i.e., location)
# returns location of .git repo
...
...
@@ -195,11 +224,43 @@ __git_ps1_show_upstream ()
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
# returns text to add to bash PS1 prompt (includes branch name)
# when called from PS1 using command substitution
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
#
# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
# when two arguments are given, the first is prepended and the second appended
# to the state string when assigned to PS1.
# The optional third parameter will be used as printf format string to further
# customize the output of the git-status string.
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
__git_ps1
()
{
local
pcmode
=
no
local
detached
=
no
local
ps1pc_start
=
'\u@\h:\w '
local
ps1pc_end
=
'\$ '
local
printf_format
=
' (%s)'
case
"$#"
in
2|3
)
pcmode
=
yes
ps1pc_start
=
"
$1
"
ps1pc_end
=
"
$2
"
printf_format
=
"
${
3
:-
$printf_format
}
"
;;
0|1
)
printf_format
=
"
${
1
:-
$printf_format
}
"
;;
*
)
return
;;
esac
local
g
=
"
$(
__gitdir
)
"
if
[
-n
"
$g
"
]
;
then
if
[
-z
"
$g
"
]
;
then
if
[
$pcmode
=
yes
]
;
then
#In PC mode PS1 always needs to be set
PS1
=
"
$ps1pc_start$ps1pc_end
"
fi
else
local
r
=
""
local
b
=
""
if
[
-f
"
$g
/rebase-merge/interactive"
]
;
then
...
...
@@ -226,7 +287,7 @@ __git_ps1 ()
fi
b
=
"
$(
git symbolic-ref HEAD 2>/dev/null
)
"
||
{
detached
=
yes
b
=
"
$(
case
"
${
GIT_PS1_DESCRIBE_STYLE
-
}
"
in
(
contains
)
...
...
@@ -259,24 +320,25 @@ __git_ps1 ()
b
=
"GIT_DIR!"
fi
elif
[
"true"
=
"
$(
git rev-parse
--is-inside-work-tree
2>/dev/null
)
"
]
;
then
if
[
-n
"
${
GIT_PS1_SHOWDIRTYSTATE
-
}
"
]
;
then
if
[
"
$(
git config
--bool
bash.showDirtyState
)
"
!=
"false"
]
;
then
git diff
--no-ext-diff
--quiet
--exit-code
||
w
=
"*"
if
git rev-parse
--quiet
--verify
HEAD
>
/dev/null
;
then
git diff-index
--cached
--quiet
HEAD
--
||
i
=
"+"
else
i
=
"#"
fi
if
[
-n
"
${
GIT_PS1_SHOWDIRTYSTATE
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showDirtyState
)
"
!=
"false"
]
then
git diff
--no-ext-diff
--quiet
--exit-code
||
w
=
"*"
if
git rev-parse
--quiet
--verify
HEAD
>
/dev/null
;
then
git diff-index
--cached
--quiet
HEAD
--
||
i
=
"+"
else
i
=
"#"
fi
fi
if
[
-n
"
${
GIT_PS1_SHOWSTASHSTATE
-
}
"
]
;
then
git rev-parse
--verify
refs/stash
>
/dev/null 2>&1
&&
s
=
"$"
fi
if
[
-n
"
${
GIT_PS1_SHOWUNTRACKEDFILES
-
}
"
]
;
then
if
[
-n
"
$(
git ls-files
--others
--exclude-standard
)
"
]
;
then
u
=
"%%"
fi
if
[
-n
"
${
GIT_PS1_SHOWUNTRACKEDFILES
-
}
"
]
&&
[
"
$(
git config
--bool
bash.showUntrackedFiles
)
"
!=
"false"
]
&&
[
-n
"
$(
git ls-files
--others
--exclude-standard
)
"
]
then
u
=
"%%"
fi
if
[
-n
"
${
GIT_PS1_SHOWUPSTREAM
-
}
"
]
;
then
...
...
@@ -285,6 +347,53 @@ __git_ps1 ()
fi
local
f
=
"
$w$i$s$u
"
printf
--
"
${
1
:-
(%s)
}
"
"
$c
${
b
##refs/heads/
}${
f
:+
$f
}
$r$p
"
if
[
$pcmode
=
yes
]
;
then
local
gitstring
=
if
[
-n
"
${
GIT_PS1_SHOWCOLORHINTS
-
}
"
]
;
then
local
c_red
=
'\e[31m'
local
c_green
=
'\e[32m'
local
c_lblue
=
'\e[1;34m'
local
c_clear
=
'\e[0m'
local
bad_color
=
$c_red
local
ok_color
=
$c_green
local
branch_color
=
"
$c_clear
"
local
flags_color
=
"
$c_lblue
"
local
branchstring
=
"
$c
${
b
##refs/heads/
}
"
if
[
$detached
=
no
]
;
then
branch_color
=
"
$ok_color
"
else
branch_color
=
"
$bad_color
"
fi
# Setting gitstring directly with \[ and \] around colors
# is necessary to prevent wrapping issues!
gitstring
=
"
\[
$branch_color
\]
$branchstring
\[
$c_clear
\]
"
if
[
-n
"
$w$i$s$u$r$p
"
]
;
then
gitstring
=
"
$gitstring
"
fi
if
[
"
$w
"
=
"*"
]
;
then
gitstring
=
"
$gitstring
\[
$bad_color
\]
$w
"
fi
if
[
-n
"
$i
"
]
;
then
gitstring
=
"
$gitstring
\[
$ok_color
\]
$i
"
fi
if
[
-n
"
$s
"
]
;
then
gitstring
=
"
$gitstring
\[
$flags_color
\]
$s
"
fi
if
[
-n
"
$u
"
]
;
then
gitstring
=
"
$gitstring
\[
$bad_color
\]
$u
"
fi
gitstring
=
"
$gitstring
\[
$c_clear
\]
$r$p
"
else
gitstring
=
"
$c
${
b
##refs/heads/
}${
f
:+
$f
}
$r$p
"
fi
gitstring
=
$(
printf
--
"
$printf_format
"
"
$gitstring
"
)
PS1
=
"
$ps1pc_start$gitstring$ps1pc_end
"
else
# NO color option unless in PROMPT_COMMAND mode
printf
--
"
$printf_format
"
"
$c
${
b
##refs/heads/
}${
f
:+
$f
}
$r$p
"
fi
fi
}
plugins/gitfast/gitfast.plugin.zsh
View file @
91cb7955
...
...
@@ -3,5 +3,6 @@ source $dir/../git/git.plugin.zsh
source
$dir
/git-prompt.sh
function
git_prompt_info
()
{
__git_ps1
"
${
ZSH_THEME_GIT_PROMPT_PREFIX
//\%/%%
}
%s
${
ZSH_THEME_GIT_PROMPT_SUFFIX
//\%/%%
}
"
dirty
=
"
$(
parse_git_dirty
)
"
__git_ps1
"
${
ZSH_THEME_GIT_PROMPT_PREFIX
//\%/%%
}
%s
${
dirty
//\%/%%
}${
ZSH_THEME_GIT_PROMPT_SUFFIX
//\%/%%
}
"
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment