# HG changeset patch # User Alexis S. L. Carvalho # Date 1143924612 -7200 # Node ID 5e7aff1b6ae1e5b90e9e1a42ecf3f90149661b6e # Parent e3280d35079233583bfe2ad9ae63fc69053c5a52 add --options to debugcomplete and change bash_completion to use it make debugcomplete print one item per line (this is not needed for the bash_completion script, but should be easier to use in other scripts) diff -r e3280d350792 -r 5e7aff1b6ae1 contrib/bash_completion --- a/contrib/bash_completion Sat Apr 01 21:37:08 2006 +0200 +++ b/contrib/bash_completion Sat Apr 01 22:50:12 2006 +0200 @@ -1,18 +1,5 @@ shopt -s extglob -_hg_option_list() -{ - "$hg" -v help $1 2>/dev/null | \ - awk '/^ *-/ { - for (i = 1; i <= NF; i ++) { - if (index($i, "-") != 1) - break; - print $i; - } - }' -} - - _hg_commands() { local commands @@ -89,7 +76,7 @@ done if [[ "$cur" == -* ]]; then - opts=$(_hg_option_list $cmd) + opts=$("$hg" debugcomplete --options "$cmd" 2>/dev/null) COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$opts' -- "$cur")) return diff -r e3280d350792 -r 5e7aff1b6ae1 mercurial/commands.py --- a/mercurial/commands.py Sat Apr 01 21:37:08 2006 +0200 +++ b/mercurial/commands.py Sat Apr 01 22:50:12 2006 +0200 @@ -1272,11 +1272,26 @@ a = r.ancestor(r.lookup(rev1), r.lookup(rev2)) ui.write("%d:%s\n" % (r.rev(a), hex(a))) -def debugcomplete(ui, cmd): +def debugcomplete(ui, cmd='', **opts): """returns the completion list associated with the given command""" + + if opts['options']: + options = [] + otables = [globalopts] + if cmd: + aliases, entry = find(cmd) + otables.append(entry[1]) + for t in otables: + for o in t: + if o[0]: + options.append('-%s' % o[0]) + options.append('--%s' % o[1]) + ui.write("%s\n" % "\n".join(options)) + return + clist = findpossible(cmd).keys() clist.sort() - ui.write("%s\n" % " ".join(clist)) + ui.write("%s\n" % "\n".join(clist)) def debugrebuildstate(ui, repo, rev=None): """rebuild the dirstate as it would look like for the given revision""" @@ -2853,7 +2868,10 @@ ('X', 'exclude', [], _('exclude names matching the given patterns'))], _('hg copy [OPTION]... [SOURCE]... DEST')), "debugancestor": (debugancestor, [], _('debugancestor INDEX REV1 REV2')), - "debugcomplete": (debugcomplete, [], _('debugcomplete CMD')), + "debugcomplete": + (debugcomplete, + [('o', 'options', None, _('show the command options'))], + _('debugcomplete [-o] CMD')), "debugrebuildstate": (debugrebuildstate, [('r', 'rev', '', _('revision to rebuild to'))],