@@ -0,0 +1,106 @@+#!bash+#+# bash completion support for Stacked Git (StGit).+#+# Copyright (c) 2009 by Theodore P. Pavlic <ted@tedpavlic.com>+# Distributed under the GNU General Public License, version 2.0.+#+# Design is highly influenced by completion scripts for Mercurial and+# git.+#+# To use these routines:+#+# 1) Copy this file to somewhere (e.g. ~/.stg-completion.sh).+# 2) Added the following line to your .bashrc or .bash_profile:+# source ~/.stg-completion.sh+#+# To submit patches:+#+# *) Read Documentation/SubmittingPatches+# *) Send all patches to the Git mailing list+#+# git@vger.kernel.org+#+# and CC the message to the StGit maintainer+#+# catalin.marinas@gmail.com+#+# Prefix the subject with something like "[StGit PATCH]",+# "[StGit PATCH i/n]", "[StGit PATCH RFC]", or similar. Patches+# should be "Signed-off-by:" you as described in+# Documentation/SubmittingPatches.+#+# It is recommended that editors submit patches using utilities+# like+#+# stg mail+# git send-email+# git format-patch+#+# In the latter case, make sure e-amils submitted to the list do+# not have "format=flowed" and do not "word wrap" your patch.+#++# This 'extglob' bash option allows for+# if [[ $param == @(-h|--help) ]]+# type statements. That is, the pattern is true if $param matches -h OR+# --help+shopt-sextglob++__stg_commands()+{+localcommands+commands="$("$stg"help|grep'^ '|cut-f3-d' '2>/dev/null)"||commands=""+COMPREPLY=(${COMPREPLY[@]:-}$(compgen-W'$commands'--"$cur"))+}++__stg()+{+localcurprevcmd+localstg="$1"++COMPREPLY=()+cur="$2"+prev="$3"++if[$COMP_CWORD-gt1];then+# Try to complete the argument to an already complete stg command+# (e.g., "stg command partial<tab>")+cmd=${COMP_WORDS[${COMP_CWORD}-1]}+__stg_specific_command+else+# Try to complete an incomplete stg command (possibly blank)+# (e.g., "stg partial<tab>")+__stg_commands+fi++}++# Handle "stg command <tab>" completion+__stg_specific_command()+{+# Here, try to find (possibly user-defined) functions that match the+# command+if["$(type-t"__stg_cmd_$cmd")"=function];then+"__stg_cmd_$cmd"+return0+fi++# Special handling of particular stg commands can be placed here+case"$cmd"in+help)+# Complete help with all possible help commands+__stg_commands+;;+*)+# Bail out to normal bash completion+return1+;;+esac++return0+}++# Use __stg for stg completion and bail out to normal bash completion+complete-obashdefault-odefault-F__stgstg2>/dev/null\+||complete-odefault-F__stgstg
+# Use __stg for stg completion and bail out to normal bash completion
+complete -o bashdefault -o default -F __stg stg 2>/dev/null \
+ || complete -o default -F __stg stg
Somehow I didn't see the existing
stgit-completion.bash
in stgit.git. I was looking in stgit.git/contrib, which is where Git
(and Mercurial) puts its completion script.
So it looks like there's no need for this patch.
Thanks --
Ted
--
Ted Pavlic [off-list ref]
Please visit my ALS association page:
http://web.alsa.org/goto/tedpavlic
My family appreciates your support in the fight to defeat ALS.
+# Use __stg for stg completion and bail out to normal bash completion
+complete -o bashdefault -o default -F __stg stg 2>/dev/null \
+ || complete -o default -F __stg stg
Somehow I didn't see the existing
stgit-completion.bash
I didn't see it because it is generated in the build process. :(
Sorry for the bother --
Ted
--
Ted Pavlic [off-list ref]
Please visit my ALS association page:
http://web.alsa.org/goto/tedpavlic
My family appreciates your support in the fight to defeat ALS.
From: Karl Hasselström <hidden> Date: 2016-06-15 22:46:00
On 2009-01-19 18:35:39 -0500, Ted Pavlic wrote:
I didn't see it because it is generated in the build process. :(
Yeah, sorry about that. I made it that way so it would be kept
up-to-date automatically (which works quite well, by the way).
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle
I didn't see it because it is generated in the build process. :(
Yeah, sorry about that. I made it that way so it would be kept
up-to-date automatically (which works quite well, by the way).
The only downside is that it's a little harder to keep track of when the
completion script changes (e.g., when you have made your own local
changes). However, the method you use provides very *fast* completion
(as opposed to git and hg completion, which generate their keywords on
the fly and thus run relatively slowly).
HOWEVER, please see the threads (which modify the Python that generates
the script):
[StGit PATCH 1/2] Modify bash completion to support help, version, and
copyright.
[StGit PATCH 2/2] Make bash completion fail to bashdefault before
default completion.
The former thread could be implemented by making help, version, and
copyright modules like the rest of the commands, but I think this method
is fine (and it makes stg help <tab> show fewer entries).
Thanks --
Ted
--
Ted Pavlic [off-list ref]
Please visit my ALS association page:
http://web.alsa.org/goto/tedpavlic
My family appreciates your support in the fight to defeat ALS.
From: Karl Hasselström <hidden> Date: 2016-06-15 22:46:00
On 2009-01-22 11:09:03 -0500, Ted Pavlic wrote:
The only downside is that it's a little harder to keep track of when
the completion script changes (e.g., when you have made your own
local changes).
It's a generated file -- you're not supposed to edit it! Wouldn't it
be a better idea to edit the program that generates it instead?
However, the method you use provides very *fast* completion (as
opposed to git and hg completion, which generate their keywords on
the fly and thus run relatively slowly).
Yes, I was always irritated by how slow the StGit completion was
compared to git's. Python sucks in this respect.
HOWEVER, please see the threads (which modify the Python that
generates the script):
Yes, I'll take a look.
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle