Re: [PATCH 6/7] completion: teach remote subcommands option completion
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Feb 2, 2017, 01:37 UTC
- Message-ID
- <20170202013759.25789-1-szeder.dev@gmail.com>
- In-Reply-To
- <20170122225724.19360-7-cornelius.weig@tngtech.com>
Show 5 quoted lines
> Git-remote needs to complete remote names, its subcommands, and options > thereof. In addition to the existing subcommand and remote name > completion, do also complete the options > > - add: --track --master --fetch --tags --no-tags --mirror=
Oh, '--track' and '--master' are not even in the manpage or in 'git remote -h', I could only find them after looking at the source code...
Good eyes :)
Show 45 quoted lines
> - set-url: --push --add --delete
> - get-url: --push --all
> - prune: --dry-run
> ---
> contrib/completion/git-completion.bash | 36 +++++++++++++++++++++++++++-------
> 1 file changed, 29 insertions(+), 7 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index e76cbd7..0e09519 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -2384,24 +2384,46 @@ _git_config ()
>
> _git_remote ()
> {
> - local subcommands="add rename remove set-head set-branches set-url show prune update"
> + local subcommands="
> + add rename remove set-head set-branches
> + get-url set-url show prune update
> + "
> local subcommand="$(__git_find_on_cmdline "$subcommands")"
> if [ -z "$subcommand" ]; then
> - __gitcomp "$subcommands"
> + case "$cur" in
> + --*)
> + __gitcomp "--verbose"
> + ;;
> + *)
> + __gitcomp "$subcommands"
> + ;;
> + esac
> return
> fi
>
> - case "$subcommand" in
> - rename|remove|set-url|show|prune)
> - __gitcomp_nl "$(__git_remotes)"
> + case "$subcommand,$cur" in
> + add,--*)
> + __gitcomp "--track --master --fetch --tags --no-tags --mirror="
> ;;
> - set-head|set-branches)
> + add,*)
> + ;;
> + set-head,*|set-branches,*)The 'set-head' subcommand has '--auto' and '--delete' options, and 'set-branches' has '--add'.
> __git_complete_remote_or_refspec > ;; > - update) > + update,*)
The 'update' subcommand has a '--prune' option.
Otherwise it all looks good.
Show 18 quoted lines
> __gitcomp "$(__git_get_config_variables "remotes")" > ;; > + set-url,--*) > + __gitcomp "--push --add --delete" > + ;; > + get-url,--*) > + __gitcomp "--push --all" > + ;; > + prune,--*) > + __gitcomp "--dry-run" > + ;; > *) > + __gitcomp_nl "$(__git_remotes)" > ;; > esac > } > -- > 2.10.2