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
Ohmyzsh
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
Hide whitespace changes
Inline
Side-by-side
plugins/gitfast/_git
View file @
e92a4667
...
@@ -45,71 +45,49 @@ fi
...
@@ -45,71 +45,49 @@ fi
local old_complete="$functions[complete]"
local old_complete="$functions[complete]"
functions[complete]=:
functions[complete]=:
COMP_WORDBREAKS=':'
GIT_SOURCING_ZSH_COMPLETION=y . "$script"
GIT_SOURCING_ZSH_COMPLETION=y . "$script"
functions[complete]="$old_complete"
functions[complete]="$old_complete"
__gitcompadd ()
{
compadd -Q -p "${2-}" -S "${3- }" ${@[4,-1]} -- ${=1} && _ret=0
}
__gitcomp ()
__gitcomp ()
{
{
emulate -L zsh
emulate -L zsh
local cur_="${3-$cur}"
local cur_="${3-$cur}"
case "$cur_" in
[[ "$cur_" == *= ]] && return
--*=)
;;
--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
for c in ${=1}; do
if [[ $c == "--" ]]; then
c="--no-...${4-}"
array+=("$c ")
break
fi
c="$c${4-}"
case $c in
--*=|*.) ;;
*) c="$c " ;;
esac
array+=("$c")
done
compset -P '*[=:]'
compadd -Q -S '' -p "${2-}" -a -- array && _ret=0
;;
esac
}
__gitcomp_direct ()
local c IFS=$' \t\n' sfx
{
for c in ${=1}; do
emulate -L zsh
if [[ $c == "--" ]]; then
[[ "$cur_" == --no-* ]] && continue
__gitcompadd "--no-..."
break
fi
compset -P '*[=:]'
if [[ -z "${4-}" ]]; then
compadd -Q -S '' -- ${(f)1} && _ret=0
case $c in
*=) c="${c%=}"; sfx="=" ;;
*.) sfx="" ;;
*) sfx=" " ;;
esac
else
sfx="$4"
fi
__gitcompadd "$c" "${2-}" "$sfx" -q
done
}
}
__gitcomp_nl ()
__gitcomp_nl ()
{
{
emulate -L zsh
emulate -L zsh
compset -P '*[=:]'
IFS=$'\n' __gitcompadd "$1" "${2-}" "${4- }"
compadd -Q -S "${4- }" -p "${2-}" -- ${(f)1} && _ret=0
}
}
__gitcomp_file ()
__gitcomp_file ()
...
@@ -119,9 +97,14 @@ __gitcomp_file ()
...
@@ -119,9 +97,14 @@ __gitcomp_file ()
compadd -f -p "${2-}" -- ${(f)1} && _ret=0
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 ()
__gitcomp_nl_append ()
...
@@ -129,25 +112,30 @@ __gitcomp_nl_append ()
...
@@ -129,25 +112,30 @@ __gitcomp_nl_append ()
__gitcomp_nl "$@"
__gitcomp_nl "$@"
}
}
__gitcomp_
file_
direct ()
__gitcomp_direct
_append
()
{
{
__gitcomp_
file "$1" "
"
__gitcomp_
direct "$@
"
}
}
_git_zsh ()
_git_zsh ()
{
{
__gitcomp "v1.
0
"
__gitcomp "v1.
2
"
}
}
__git_complete_command ()
__git_complete_command ()
{
{
emulate -L zsh
emulate -L zsh
compset -P '*[=:]'
local command="$1"
local command="$1"
local completion_func="_git_${command//-/_}"
local completion_func="_git_${command//-/_}"
if (( $+functions[$completion_func] )); then
if (( $+functions[$completion_func] )); then
emulate ksh -c $completion_func
emulate ksh -c $completion_func
return 0
return 0
elif emulate ksh -c "__git_support_parseopt_helper $command"; then
emulate ksh -c "__git_complete_common $command"
return 0
else
else
return 1
return 1
fi
fi
...
@@ -218,24 +206,27 @@ __git_zsh_main ()
...
@@ -218,24 +206,27 @@ __git_zsh_main ()
{
{
local curcontext="$curcontext" state state_descr line
local curcontext="$curcontext" state state_descr line
typeset -A opt_args
typeset -A opt_args
local -a orig_words
local -a orig_words
__git_C_args
orig_words=( ${words[@]} )
orig_words=( ${words[@]} )
_arguments -C \
_arguments -C \
'(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
'(-p --paginate
-P
--no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
'(-p --paginate
)
--no-pager[do not pipe git output into a pager]' \
'(-p --paginate
-P --no-pager)'{-P,
--no-pager
}'
[do not pipe git output into a pager]' \
'--git-dir=
-
[set the path to the repository]: :_directories' \
'
(--bare)
--git-dir=[set the path to the repository]: :_directories' \
'--bare[treat the repository as a bare repository]' \
'
(--git-dir)
--bare[treat the repository as a bare repository]' \
'(- :)--version[prints the git suite version]' \
'(- :)--version[prints the git suite version]' \
'--exec-path=-[path to where your core git programs are installed]:: :_directories' \
'--exec-path=[path to where your core git programs are installed]: :_directories' \
'--html-path[print the path where git''s HTML documentation is installed]' \
'(- :)--exec-path[print the path where your core git programs are installed]' \
'--info-path[print the path where the Info files are installed]' \
'(- :)--html-path[print the path where git''s HTML documentation is installed]' \
'--man-path[print the manpath (see `man(1)`) for the man pages]' \
'(- :)--info-path[print the path where the Info files are installed]' \
'--work-tree=-[set the path to the working tree]: :_directories' \
'(- :)--man-path[print the manpath (see `man(1)`) for the man pages]' \
'--namespace=-[set the git namespace]' \
'--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]' \
'--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' \
'(- :)--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' \
'(-): :->command' \
'(-)*:: :->arg' && return
'(-)*:: :->arg' && return
...
@@ -249,15 +240,23 @@ __git_zsh_main ()
...
@@ -249,15 +240,23 @@ __git_zsh_main ()
let _ret || break
let _ret || break
done
done
;;
;;
(config)
compset -P '*[=:]'
emulate ksh -c __git_complete_config_variable_name_and_value
;;
(arg)
(arg)
local command="${words[1]}" __git_dir
local command="${words[1]}" __git_dir
if (( $+opt_args[--bare] )); then
if (( $+opt_args[--bare] )); then
__git_dir='.'
__git_dir='.'
else
else
__git_dir=${opt_args[--git-dir]}
__git_dir=${
~
opt_args[--git-dir]}
fi
fi
for x in ${(s.:.)opt_args[-C]}; do
__git_C_args+=('-C' ${~x})
done
(( $+opt_args[--help] )) && command='help'
(( $+opt_args[--help] )) && command='help'
words=( ${orig_words[@]} )
words=( ${orig_words[@]} )
...
...
plugins/gitfast/git-completion.bash
View file @
e92a4667
...
@@ -45,11 +45,6 @@
...
@@ -45,11 +45,6 @@
# When set to "1" suggest all options, including options which are
# When set to "1" suggest all options, including options which are
# typically hidden (e.g. '--allow-empty' for 'git commit').
# 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
# 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
# '-C <path>' options into account and stores it in the $__git_repo_path
# variable.
# variable.
...
@@ -347,7 +342,7 @@ __gitcomp ()
...
@@ -347,7 +342,7 @@ __gitcomp ()
local cur_="${3-$cur}"
local cur_="${3-$cur}"
case "$cur_" in
case "$cur_" in
--
*=)
*=)
;;
;;
--no-*)
--no-*)
local c i=0 IFS=$'
\t\n
'
local c i=0 IFS=$'
\t\n
'
...
@@ -519,7 +514,7 @@ __gitcomp_builtin ()
...
@@ -519,7 +514,7 @@ __gitcomp_builtin ()
local incl="
${
2
-
}
"
local incl="
${
2
-
}
"
local excl="
${
3
-
}
"
local excl="
${
3
-
}
"
local var=__gitcomp_builtin_"
${
cmd
/-/_
}
"
local var=__gitcomp_builtin_"
${
cmd
/
/
-/_
}
"
local options
local options
eval "
options
=\
${
$var
-
}
"
eval "
options
=\
${
$var
-
}
"
...
@@ -1231,26 +1226,44 @@ __git_pretty_aliases ()
...
@@ -1231,26 +1226,44 @@ __git_pretty_aliases ()
# __git_aliased_command requires 1 argument
# __git_aliased_command requires 1 argument
__git_aliased_command ()
__git_aliased_command ()
{
{
local word cmdline=
$(
__git config
--get
"alias.
$1
"
)
local cur=
$1
last list word cmdline
for word in
$cmdline
; do
case "
$word
" in
while [[ -n "
$cur
" ]]; do
\!
gitk|gitk)
if [[ "
$list
" == *"
$cur
"* ]]; then
echo "
gitk
"
# loop detected
return
;;
\!
*) : shell command alias ;;
-*) : option ;;
*=*) : setting env ;;
git) : git itself ;;
\(\)
) : skip parens of shell function definition ;;
{) : skip start of shell helper function ;;
:) : skip null command ;;
\'
*) : skip opening quote after sh -c ;;
*)
echo "
$word
"
return
return
esac
fi
cmdline=
$(
__git config
--get
"alias.
$cur
"
)
list="
$cur
$list
"
last=
$cur
cur=
for word in
$cmdline
; do
case "
$word
" in
\!
gitk|gitk)
cur="
gitk
"
break
;;
\!
*) : shell command alias ;;
-*) : option ;;
*=*) : setting env ;;
git) : git itself ;;
\(\)
) : skip parens of shell function definition ;;
{) : skip start of shell helper function ;;
:) : skip null command ;;
\'
*) : skip opening quote after sh -c ;;
*)
cur="
$word
"
break
esac
done
done
done
cur=
$last
if [[ "
$cur
" != "
$1
" ]]; then
echo "
$cur
"
fi
}
}
# Check whether one of the given words is present on the command line,
# Check whether one of the given words is present on the command line,
...
@@ -2723,10 +2736,10 @@ __git_complete_config_variable_name ()
...
@@ -2723,10 +2736,10 @@ __git_complete_config_variable_name ()
return
return
;;
;;
branch.
*
)
branch.
*
)
local
pfx
=
"
${
cur
%.*
}
."
local
pfx
=
"
${
cur
_
%.*
}
."
cur_
=
"
${
cur
#*.
}
"
cur_
=
"
${
cur
_
#*.
}
"
__gitcomp_direct
"
$(
__git_heads
"
$pfx
"
"
$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
return
;;
;;
guitool.
*
.
*
)
guitool.
*
.
*
)
...
@@ -2760,7 +2773,7 @@ __git_complete_config_variable_name ()
...
@@ -2760,7 +2773,7 @@ __git_complete_config_variable_name ()
local
pfx
=
"
${
cur_
%.*
}
."
local
pfx
=
"
${
cur_
%.*
}
."
cur_
=
"
${
cur_
#*.
}
"
cur_
=
"
${
cur_
#*.
}
"
__git_compute_all_commands
__git_compute_all_commands
__gitcomp_nl
"
$__git_all_commands
"
"
$pfx
"
"
$cur_
"
"
$sfx
"
__gitcomp_nl
"
$__git_all_commands
"
"
$pfx
"
"
$cur_
"
"
$
{
sfx
:-
}
"
return
return
;;
;;
remote.
*
.
*
)
remote.
*
.
*
)
...
@@ -2776,7 +2789,7 @@ __git_complete_config_variable_name ()
...
@@ -2776,7 +2789,7 @@ __git_complete_config_variable_name ()
local
pfx
=
"
${
cur_
%.*
}
."
local
pfx
=
"
${
cur_
%.*
}
."
cur_
=
"
${
cur_
#*.
}
"
cur_
=
"
${
cur_
#*.
}
"
__gitcomp_nl
"
$(
__git_remotes
)
"
"
$pfx
"
"
$cur_
"
"."
__gitcomp_nl
"
$(
__git_remotes
)
"
"
$pfx
"
"
$cur_
"
"."
__gitcomp_nl_append
"pushDefault"
"
$pfx
"
"
$cur_
"
"
$sfx
"
__gitcomp_nl_append
"pushDefault"
"
$pfx
"
"
$cur_
"
"
$
{
sfx
:-
}
"
return
return
;;
;;
url.
*
.
*
)
url.
*
.
*
)
...
...
plugins/gitfast/update
View file @
e92a4667
#!/bin/sh
#!/bin/sh
url
=
"https://raw.githubusercontent.com/felipec/git-completion"
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
"
${
url
}
/v
${
version
}
/git-completion.zsh"
&&
curl
-s
-o
git-completion.bash
"
${
url
}
/v
${
version
}
/git-completion.bash"
&&
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