Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
e92a4667
Unverified
Commit
e92a4667
authored
Nov 19, 2020
by
Felipe Contreras
Committed by
GitHub
Nov 19, 2020
Browse files
feat(gitfast): update to git-completion 1.2 (#9458)
Signed-off-by:
Felipe Contreras
<
felipe.contreras@gmail.com
>
parent
ce836647
Changes
3
Show whitespace changes
Inline
Side-by-side
plugins/gitfast/_git
View file @
e92a4667
...
...
@@ -45,71 +45,49 @@ fi
local old_complete="$functions[complete]"
functions[complete]=:
COMP_WORDBREAKS=':'
GIT_SOURCING_ZSH_COMPLETION=y . "$script"
functions[complete]="$old_complete"
__gitcompadd ()
{
compadd -Q -p "${2-}" -S "${3- }" ${@[4,-1]} -- ${=1} && _ret=0
}
__gitcomp ()
{
emulate -L zsh
local cur_="${3-$cur}"
case "$cur_" in
--*=)
;;
--no-*)
local c IFS=$' \t\n'
local -a array
for c in ${=1}; do
if [[ $c == "--" ]]; then
continue
fi
c="$c${4-}"
case $c in
--*=|*.) ;;
*) c="$c " ;;
esac
array+=("$c")
done
compset -P '*[=:]'
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
;;
*)
local c IFS=$' \t\n'
local -a array
[[ "$cur_" == *= ]] && return
local c IFS=$' \t\n' sfx
for c in ${=1}; do
if [[ $c == "--" ]]; then
c="--no-...${4-}"
array+=("$c ")
[[ "$cur_" == --no-* ]] && continue
__gitcompadd "--no-..."
break
fi
c="$c${4-}"
if [[ -z "${4-}" ]]; then
case $c in
--*=|*.) ;;
*) c="$c " ;;
*=) c="${c%=}"; sfx="=" ;;
*.) sfx="" ;;
*) sfx=" " ;;
esac
array+=("$c")
else
sfx="$4"
fi
__gitcompadd "$c" "${2-}" "$sfx" -q
done
compset -P '*[=:]'
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
;;
esac
}
__gitcomp_direct ()
{
emulate -L zsh
compset -P '*[=:]'
compadd -Q -S '' -- ${(f)1} && _ret=0
}
__gitcomp_nl ()
{
emulate -L zsh
compset -P '*[=:]'
compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
IFS=$'\n' __gitcompadd "$1" "${2-}" "${4- }"
}
__gitcomp_file ()
...
...
@@ -119,9 +97,14 @@ __gitcomp_file ()
compadd -f -p "${2-}" -- ${(f)1} && _ret=0
}
__gitcomp_direct
_append
()
__gitcomp_direct ()
{
__gitcomp_direct "$@"
__gitcomp_nl "$1" "" "" ""
}
__gitcomp_file_direct ()
{
__gitcomp_file "$1" ""
}
__gitcomp_nl_append ()
...
...
@@ -129,25 +112,30 @@ __gitcomp_nl_append ()
__gitcomp_nl "$@"
}
__gitcomp_
file_
direct ()
__gitcomp_direct
_append
()
{
__gitcomp_
file "$1" "
"
__gitcomp_
direct "$@
"
}
_git_zsh ()
{
__gitcomp "v1.
0
"
__gitcomp "v1.
2
"
}
__git_complete_command ()
{
emulate -L zsh
compset -P '*[=:]'
local command="$1"
local completion_func="_git_${command//-/_}"
if (( $+functions[$completion_func] )); then
emulate ksh -c $completion_func
return 0
elif emulate ksh -c "__git_support_parseopt_helper $command"; then
emulate ksh -c "__git_complete_common $command"
return 0
else
return 1
fi
...
...
@@ -218,24 +206,27 @@ __git_zsh_main ()
{
local curcontext="$curcontext" state state_descr line
typeset -A opt_args
local -a orig_words
local -a orig_words
__git_C_args
orig_words=( ${words[@]} )
_arguments -C \
'(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
'(-p --paginate
)
--no-pager[do not pipe git output into a pager]' \
'--git-dir=
-
[set the path to the repository]: :_directories' \
'--bare[treat the repository as a bare repository]' \
'(-p --paginate
-P
--no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
'(-p --paginate
-P --no-pager)'{-P,
--no-pager
}'
[do not pipe git output into a pager]' \
'
(--bare)
--git-dir=[set the path to the repository]: :_directories' \
'
(--git-dir)
--bare[treat the repository as a bare repository]' \
'(- :)--version[prints the git suite version]' \
'--exec-path=-[path to where your core git programs are installed]:: :_directories' \
'--html-path[print the path where git''s HTML documentation is installed]' \
'--info-path[print the path where the Info files are installed]' \
'--man-path[print the manpath (see `man(1)`) for the man pages]' \
'--work-tree=-[set the path to the working tree]: :_directories' \
'--namespace=-[set the git namespace]' \
'--exec-path=[path to where your core git programs are installed]: :_directories' \
'(- :)--exec-path[print the path where your core git programs are installed]' \
'(- :)--html-path[print the path where git''s HTML documentation is installed]' \
'(- :)--info-path[print the path where the Info files are installed]' \
'(- :)--man-path[print the manpath (see `man(1)`) for the man pages]' \
'--work-tree=[set the path to the working tree]: :_directories' \
'--namespace=[set the git namespace]:' \
'--no-replace-objects[do not use replacement refs to replace git objects]' \
'(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \
'*-C[run as if git was started in the given path]: :_directories' \
'*-c[pass a configuration parameter to the command]: :->config' \
'(-): :->command' \
'(-)*:: :->arg' && return
...
...
@@ -249,15 +240,23 @@ __git_zsh_main ()
let _ret || break
done
;;
(config)
compset -P '*[=:]'
emulate ksh -c __git_complete_config_variable_name_and_value
;;
(arg)
local command="${words[1]}" __git_dir
if (( $+opt_args[--bare] )); then
__git_dir='.'
else
__git_dir=${opt_args[--git-dir]}
__git_dir=${
~
opt_args[--git-dir]}
fi
for x in ${(s.:.)opt_args[-C]}; do
__git_C_args+=('-C' ${~x})
done
(( $+opt_args[--help] )) && command='help'
words=( ${orig_words[@]} )
...
...
plugins/gitfast/git-completion.bash
View file @
e92a4667
...
...
@@ -45,11 +45,6 @@
# When set to "1" suggest all options, including options which are
# typically hidden (e.g. '--allow-empty' for 'git commit').
case
"
$COMP_WORDBREAKS
"
in
*
:
*
)
: great
;;
*
)
COMP_WORDBREAKS
=
"
$COMP_WORDBREAKS
:"
esac
# Discovers the path to the git repository taking any '--git-dir=<path>' and
# '-C <path>' options into account and stores it in the $__git_repo_path
# variable.
...
...
@@ -347,7 +342,7 @@ __gitcomp ()
local cur_="${3-$cur}"
case "$cur_" in
--
*=)
*=)
;;
--no-*)
local c i=0 IFS=$'
\t\n
'
...
...
@@ -519,7 +514,7 @@ __gitcomp_builtin ()
local incl="
${
2
-
}
"
local excl="
${
3
-
}
"
local var=__gitcomp_builtin_"
${
cmd
/-/_
}
"
local var=__gitcomp_builtin_"
${
cmd
/
/
-/_
}
"
local options
eval "
options
=\
${
$var
-
}
"
...
...
@@ -1231,12 +1226,24 @@ __git_pretty_aliases ()
# __git_aliased_command requires 1 argument
__git_aliased_command ()
{
local word cmdline=
$(
__git config
--get
"alias.
$1
"
)
local cur=
$1
last list word cmdline
while [[ -n "
$cur
" ]]; do
if [[ "
$list
" == *"
$cur
"* ]]; then
# loop detected
return
fi
cmdline=
$(
__git config
--get
"alias.
$cur
"
)
list="
$cur
$list
"
last=
$cur
cur=
for word in
$cmdline
; do
case "
$word
" in
\!
gitk|gitk)
echo
"
gitk
"
return
cur=
"
gitk
"
break
;;
\!
*) : shell command alias ;;
-*) : option ;;
...
...
@@ -1247,10 +1254,16 @@ __git_aliased_command ()
:) : skip null command ;;
\'
*) : skip opening quote after sh -c ;;
*)
echo
"
$word
"
return
cur=
"
$word
"
break
esac
done
done
cur=
$last
if [[ "
$cur
" != "
$1
" ]]; then
echo "
$cur
"
fi
}
# Check whether one of the given words is present on the command line,
...
...
@@ -2723,10 +2736,10 @@ __git_complete_config_variable_name ()
return
;;
branch.
*
)
local
pfx
=
"
${
cur
%.*
}
."
cur_
=
"
${
cur
#*.
}
"
local
pfx
=
"
${
cur
_
%.*
}
."
cur_
=
"
${
cur
_
#*.
}
"
__gitcomp_direct
"
$(
__git_heads
"
$pfx
"
"
$cur_
"
"."
)
"
__gitcomp_nl_append
$'autoSetupMerge
\n
autoSetupRebase
\n
'
"
$pfx
"
"
$cur_
"
"
$sfx
"
__gitcomp_nl_append
$'autoSetupMerge
\n
autoSetupRebase
\n
'
"
$pfx
"
"
$cur_
"
"
$
{
sfx
:-
}
"
return
;;
guitool.
*
.
*
)
...
...
@@ -2760,7 +2773,7 @@ __git_complete_config_variable_name ()
local
pfx
=
"
${
cur_
%.*
}
."
cur_
=
"
${
cur_
#*.
}
"
__git_compute_all_commands
__gitcomp_nl
"
$__git_all_commands
"
"
$pfx
"
"
$cur_
"
"
$sfx
"
__gitcomp_nl
"
$__git_all_commands
"
"
$pfx
"
"
$cur_
"
"
$
{
sfx
:-
}
"
return
;;
remote.
*
.
*
)
...
...
@@ -2776,7 +2789,7 @@ __git_complete_config_variable_name ()
local
pfx
=
"
${
cur_
%.*
}
."
cur_
=
"
${
cur_
#*.
}
"
__gitcomp_nl
"
$(
__git_remotes
)
"
"
$pfx
"
"
$cur_
"
"."
__gitcomp_nl_append
"pushDefault"
"
$pfx
"
"
$cur_
"
"
$sfx
"
__gitcomp_nl_append
"pushDefault"
"
$pfx
"
"
$cur_
"
"
$
{
sfx
:-
}
"
return
;;
url.
*
.
*
)
...
...
plugins/gitfast/update
View file @
e92a4667
#!/bin/sh
url
=
"https://raw.githubusercontent.com/felipec/git-completion"
version
=
"1.
0
"
version
=
"1.
2
"
curl
-s
-o
_git
"
${
url
}
/v
${
version
}
/git-completion.zsh"
&&
curl
-s
-o
git-completion.bash
"
${
url
}
/v
${
version
}
/git-completion.bash"
&&
...
...
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