Re: [PATCH] bash completion: add basic support for git-reflog

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


On Sun, Nov 21, 2010 at 01:32:48AM +0800, Tay Ray Chuan wrote:
> Add basic completion for the three subcommands - show, expire, delete.
> Try completing refs for these too.

Heh, I've always thought reflog is plumbing, and that's why the
completion script doesn't support it.

> Signed-off-by: Tay Ray Chuan <rctay89@xxxxxxxxx>
> ---
>  contrib/completion/git-completion.bash |   16 ++++++++++++++++
>  1 files changed, 16 insertions(+), 0 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index f710469..4007ca1 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1632,6 +1632,22 @@ _git_rebase ()
>  	__gitcomp "$(__git_refs)"
>  }
>  
> +_git_reflog ()
> +{
> +	local SUB_CMDS=(show delete expire)
> +	local cur="${COMP_WORDS[COMP_CWORD-1]}"
> +
> +	for val in ${SUB_CMDS[*]}; do
> +		if [[ "$val" == "$cur" ]]; then
> +			# this is a subcommand
> +			__gitcomp "$(__git_refs)"
> +			return

This only looks at the previous word on the command line, and leads to
wrong behavior when an option is used:

  $ git reflog expire --verbose <TAB><TAB>
  delete   expire   show     

To prevent this you could use the __git_find_on_cmdline() helper
function and follow how other completion functions use it.


> +		fi
> +	done
> +
> +	__gitcomp "${SUB_CMDS[*]}"
> +}
> +
>  __git_send_email_confirm_options="always never auto cc compose"
>  __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all"
>  
> -- 
> 1.7.3.2.496.g9c54
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]