Allow git submodule subcommands to be completed. This allows the '--remote' in the command 'git submodule update --remote', for example, to be fully completed. Signed-off-by: Denton Liu <liu.denton@xxxxxxxxx> --- Hi Shawn, sorry this is my first contribution to a mailing-list based project. If I've done anything wrong, please let me know. Thanks, Denton Liu --- contrib/completion/git-completion.bash | 46 ++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 21016bf8d..941fbdfe2 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -2556,17 +2556,41 @@ _git_submodule () __git_has_doubledash && return local subcommands="add status init deinit update summary foreach sync" - if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then - case "$cur" in - --*) - __gitcomp "--quiet --cached" - ;; - *) - __gitcomp "$subcommands" - ;; - esac - return - fi + local subcommand="$(__git_find_on_cmdline "$subcommands")" + + case "$subcommand,$cur" in + ,--*) + __gitcomp "--quiet" + ;; + ,*) + __gitcomp "$subcommands --quiet" + ;; + add,--*) + __gitcomp "--force --name --reference --depth" + ;; + status,--*) + __gitcomp "--cached --recursive" + ;; + deinit,--*) + __gitcomp "--force --all" + ;; + update,--*) + __gitcomp " + --init --remote --no-fetch --no-recommended-shallow + --recommended-shallow --force --rebase --merge --reference + --depth --recursive --jobs + " + ;; + summary,--*) + __gitcomp "--cached --files --summary-limit" + ;; + summary,*) + __gitcomp_nl "$(__git_refs)" + ;; + foreach,--*|sync,--*) + __gitcomp "--recursive" + ;; + esac } _git_svn () -- 2.11.0