Re: [RFC/PATCH] contrib: teach completion about git-worktree options and arguments
On Thu, Jul 23, 2015 at 4:49 PM, Eric Sunshine <sunshine@sunshineco.com> wrote:
> Complete subcommands 'add' and 'prune', as well as their respective
> options --force, --detach, --dry-run, --verbose, and --expire. Also
> complete 'refname' in "git worktree add [-b <newbranch>] <path>
> <refname>".
Ping[1]?
[1]: http://article.gmane.org/gmane.comp.version-control.git/274526
Show 54 quoted lines
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>
> This is RFC since this is my first foray into the Git completion script,
> and there are likely better and more idiomatic ways to accomplish this.
>
> contrib/completion/git-completion.bash | 32 ++++++++++++++++++++++++++++++++
> 1 file changed, 32 insertions(+)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index c97c648..07c34ef 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -2564,6 +2564,38 @@ _git_whatchanged ()
> _git_log
> }
>
> +_git_worktree ()
> +{
> + local subcommands='add prune'
> + local subcommand="$(__git_find_on_cmdline "$subcommands")"
> + local c=2 n=0 refpos=2
> + if [ -z "$subcommand" ]; then
> + __gitcomp "$subcommands"
> + else
> + case "$subcommand,$cur" in
> + add,--*)
> + __gitcomp "--force --detach"
> + ;;
> + add,*)
> + while [ $c -lt $cword ]; do
> + case "${words[c]}" in
> + --*) ;;
> + -[bB]) ((refpos++)) ;;
> + *) ((n++)) ;;
> + esac
> + ((c++))
> + done
> + if [ $n -eq $refpos ]; then
> + __gitcomp_nl "$(__git_refs)"
> + fi
> + ;;
> + prune,--*)
> + __gitcomp "--dry-run --verbose --expire"
> + ;;
> + esac
> + fi
> +}
> +
> __git_main ()
> {
> local i c=1 command __git_dir
> --
> 2.5.0.rc3.407.g68aafd0