> 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 :) > - 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. > __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