aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Hieber <rhi@pengutronix.de>2024-04-25 12:18:44 +0200
committerJunio C Hamano <gitster@pobox.com>2024-04-25 09:23:27 -0700
commit6b7c45e8c9f7e6b6a602b9ba0727073573da552f (patch)
tree32549c132b33c8050cc62b28d922d4837d1cf488
parentd13a2950747214567f1685802da523d009c543d9 (diff)
downloadgit-6b7c45e8c9f7e6b6a602b9ba0727073573da552f.tar.gz
completion: add docs on how to add subcommand completions
Signed-off-by: Roland Hieber <rhi@pengutronix.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--contrib/completion/git-completion.bash7
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 2cc5997401..43ee14a8ee 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -31,6 +31,13 @@
# Note that "git" is optional --- '!f() { : commit; ...}; f' would complete
# just like the 'git commit' command.
#
+# To add completion for git subcommands that are implemented in external
+# scripts, define a function of the form '_git_${subcommand}' while replacing
+# all dashes with underscores, and the main git completion will make use of it.
+# For example, to add completion for 'git do-stuff' (which could e.g. live
+# in /usr/bin/git-do-stuff), name the completion function '_git_do_stuff'.
+# See _git_show, _git_bisect etc. below for more examples.
+#
# If you have a shell command that is not part of git (and is not called as a
# git subcommand), but you would still like git-style completion for it, use
# __git_complete. For example, to use the same completion as for 'git log' also