annotate contrib/bash_completion @ 38526:313a940d49a3

ui: add an uninterruptable context manager that can block SIGINT The blocking of SIGINT is not done by default, but my hope is that we will one day. This was inspired by Facebook's "nointerrupt" extension, which is a bit more heavy-handed than this (whole commands are treated as unsafe to interrupt). A future patch will enable this for varying bits of Mercurial that are performing unsafe operations. It's intentional that the KeyboardInterrupt is raised as the context manager exits: during the span of the context manager interrupting Mercurial could lead to data loss, but typically those spans are fairly narrow, so we can let the unsafe block complete and then terminate hg (which will leave the repo in a consistent state, even if it's not the user's desired state). .. api:: New context manager ``ui.uninterruptable()`` to mark portions of a command as potentially unsafe places to interrupt Mercurial with Control-C or similar. Differential Revision: https://phab.mercurial-scm.org/D3716
author Augie Fackler <augie@google.com>
date Wed, 27 Jun 2018 10:47:14 -0400
parents 2c47986505ff
children 8ab79580047f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18769
83a99f10c45c bash_completion: tell an editor what type of file this is
Bryan O'Sullivan <bryano@fb.com>
parents: 18768
diff changeset
1 # bash completion for the Mercurial distributed SCM -*- sh -*-
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
2
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
3 # Docs:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
4 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
5 # If you source this file from your .bashrc, bash should be able to
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
6 # complete a command line that uses hg with all the available commands
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
7 # and options and sometimes even arguments.
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
8 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
9 # Mercurial allows you to define additional commands through extensions.
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
10 # Bash should be able to automatically figure out the name of these new
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
11 # commands and their options. See below for how to define _hg_opt_foo
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
12 # and _hg_cmd_foo functions to fine-tune the completion for option and
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
13 # non-option arguments, respectively.
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
14 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
15 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
16 # Notes about completion for specific commands:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
17 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
18 # - the completion function for the email command from the patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
19 # extension will try to call _hg_emails to get a list of e-mail
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
20 # addresses. It's up to the user to define this function. For
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
21 # example, put the addresses of the lists that you usually patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
22 # in ~/.patchbomb-to and the addresses that you usually use to send
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
23 # the patchbombs in ~/.patchbomb-from and use something like this:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
24 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
25 # _hg_emails()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
26 # {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
27 # if [ -r ~/.patchbomb-$1 ]; then
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
28 # cat ~/.patchbomb-$1
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
29 # fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
30 # }
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
31 #
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
32 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
33 # Writing completion functions for additional commands:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
34 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
35 # If it exists, the function _hg_cmd_foo will be called without
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
36 # arguments to generate the completion candidates for the hg command
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
37 # "foo". If the command receives some arguments that aren't options
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
38 # even though they start with a "-", you can define a function called
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
39 # _hg_opt_foo to generate the completion candidates. If _hg_opt_foo
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
40 # doesn't return 0, regular completion for options is attempted.
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
41 #
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
42 # In addition to the regular completion variables provided by bash,
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
43 # the following variables are also set:
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
44 # - $hg - the hg program being used (e.g. /usr/bin/hg)
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
45 # - $cmd - the name of the hg command being completed
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
46 # - $cmd_index - the index of $cmd in $COMP_WORDS
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
47 # - $cur - the current argument being completed
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
48 # - $prev - the argument before $cur
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
49 # - $global_args - "|"-separated list of global options that accept
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
50 # an argument (e.g. '--cwd|-R|--repository')
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
51 # - $canonical - 1 if we canonicalized $cmd before calling the function
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
52 # 0 otherwise
5081
ea7b982b6c08 Remove trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3993
diff changeset
53 #
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
54
1311
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
55 shopt -s extglob
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
56
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
57 _hg_cmd()
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
58 {
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
59 HGPLAIN=1 "$hg" "$@" 2>/dev/null
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
60 }
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
61
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
62 _hg_commands()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
63 {
1888
283d2ab1e020 Make bash_completion more robust for e.g. broken hgrc or old hg installations.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1887
diff changeset
64 local commands
14374
51f444e85734 bash_completion: enable alias auto-complete
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 14332
diff changeset
65 commands="$(HGPLAINEXCEPT=alias _hg_cmd debugcomplete "$cur")" || commands=""
1887
913397c27cd8 new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1820
diff changeset
66 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$commands' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
67 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
68
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
69 _hg_paths()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
70 {
14332
a2f0f61a6988 bash_completion: Use "hg paths -q" instead of piping through sed
Thomas Arendsen Hein <thomas@intevation.de>
parents: 13509
diff changeset
71 local paths="$(_hg_cmd paths -q)"
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
72 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$paths' -- "$cur"))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
73 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
74
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
75 _hg_repos()
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
76 {
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
77 local i
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
78 for i in $(compgen -d -- "$cur"); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
79 test ! -d "$i"/.hg || COMPREPLY=(${COMPREPLY[@]:-} "$i")
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
80 done
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
81 }
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
82
18793
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
83 _hg_debugpathcomplete()
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
84 {
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
85 local files="$(_hg_cmd debugpathcomplete $1 "$cur")"
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
86 local IFS=$'\n'
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
87 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
88 }
a821ec835223 completion: selectively use debugpathcomplete in bash_completion
Bryan O'Sullivan <bryano@fb.com>
parents: 18790
diff changeset
89
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
90 _hg_status()
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
91 {
30199
ba22059602e3 bashcompletion: allow skipping completion for 'hg status'
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 29386
diff changeset
92 if [ -z "$HGCOMPLETE_NOSTATUS" ]; then
ba22059602e3 bashcompletion: allow skipping completion for 'hg status'
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 29386
diff changeset
93 local files="$(_hg_cmd status -n$1 "glob:$cur**")"
ba22059602e3 bashcompletion: allow skipping completion for 'hg status'
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 29386
diff changeset
94 local IFS=$'\n'
ba22059602e3 bashcompletion: allow skipping completion for 'hg status'
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 29386
diff changeset
95 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
ba22059602e3 bashcompletion: allow skipping completion for 'hg status'
Mathias De Maré <mathias.de_mare@nokia.com>
parents: 29386
diff changeset
96 fi
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
97 }
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
98
20131
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
99 _hg_branches()
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
100 {
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
101 local branches="$(_hg_cmd branches -q)"
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
102 local IFS=$'\n'
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
103 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$branches' -- "$cur"))
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
104 }
56df59cc4212 bash_completion: add _hg_branches for list of branches
Sean Farley <sean.michael.farley@gmail.com>
parents: 20130
diff changeset
105
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
106 _hg_bookmarks()
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
107 {
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
108 local bookmarks="$(_hg_cmd bookmarks -q)"
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
109 local IFS=$'\n'
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
110 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$bookmarks' -- "$cur"))
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
111 }
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
112
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
113 _hg_labels()
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
114 {
23762
0390cc327dd5 debugnamecomplete: rename from debuglabelcomplete
Sean Farley <sean.michael.farley@gmail.com>
parents: 21719
diff changeset
115 local labels="$(_hg_cmd debugnamecomplete "$cur")"
18790
1e28a7f58f33 completion: add a debuglabelcomplete command
Bryan O'Sullivan <bryano@fb.com>
parents: 18789
diff changeset
116 local IFS=$'\n'
1e28a7f58f33 completion: add a debuglabelcomplete command
Bryan O'Sullivan <bryano@fb.com>
parents: 18789
diff changeset
117 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$labels' -- "$cur"))
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
118 }
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
119
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
120 # this is "kind of" ugly...
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
121 _hg_count_non_option()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
122 {
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
123 local i count=0
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
124 local filters="$1"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
125
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
126 for ((i=1; $i<=$COMP_CWORD; i++)); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
127 if [[ "${COMP_WORDS[i]}" != -* ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
128 if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
129 continue
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
130 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
131 count=$(($count + 1))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
132 fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
133 done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
134
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
135 echo $(($count - 1))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
136 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
137
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
138 _hg_fix_wordlist()
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
139 {
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
140 local LASTCHAR=' '
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
141 if [ ${#COMPREPLY[@]} = 1 ]; then
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
142 [ -d "$COMPREPLY" ] && LASTCHAR=/
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
143 COMPREPLY=$(printf %q%s "$COMPREPLY" "$LASTCHAR")
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
144 else
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
145 for ((i=0; i < ${#COMPREPLY[@]}; i++)); do
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
146 [ -d "${COMPREPLY[$i]}" ] && COMPREPLY[$i]=${COMPREPLY[$i]}/
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
147 done
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
148 fi
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
149 }
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
150
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
151 _hg()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
152 {
20125
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
153 local cur prev cmd cmd_index opts i aliashg
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
154 # global options that receive an argument
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
155 local global_args='--cwd|-R|--repository'
1683
063e04831a09 Use user specified path to hg in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1643
diff changeset
156 local hg="$1"
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
157 local canonical=0
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
158
20125
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
159 aliashg=$(alias $hg 2>/dev/null)
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
160 if [[ -n "$aliashg" ]]; then
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
161 aliashg=${aliashg#"alias $hg='"}
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
162 aliashg=${aliashg%"'"}
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
163 hg=$aliashg
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
164 fi
191ab08e7099 bash_completion: determine root executable in case of alias
Sean Farley <sean.michael.farley@gmail.com>
parents: 20124
diff changeset
165
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
166 COMPREPLY=()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
167 cur="$2"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
168 prev="$3"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
169
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
170 # searching for the command
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
171 # (first non-option argument that doesn't follow a global option that
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
172 # receives an argument)
1684
cf930b2452d3 Cleanup of spacing in bash_completion
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1683
diff changeset
173 for ((i=1; $i<=$COMP_CWORD; i++)); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
174 if [[ ${COMP_WORDS[i]} != -* ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
175 if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
176 cmd="${COMP_WORDS[i]}"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
177 cmd_index=$i
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
178 break
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
179 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
180 fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
181 done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
182
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
183 if [[ "$cur" == -* ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
184 if [ "$(type -t "_hg_opt_$cmd")" = function ] && "_hg_opt_$cmd"; then
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
185 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
186 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
187 fi
3485
26285469db9b bash_completion: allow overriding completion for arguments that start with "-"
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3484
diff changeset
188
29386
63fad6235369 bashcompletion: show available command-line switches for aliases
Martijn Pieters <mjpieters@fb.com>
parents: 26904
diff changeset
189 opts=$(HGPLAINEXCEPT=alias _hg_cmd debugcomplete --options "$cmd")
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
190
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
191 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$opts' -- "$cur"))
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
192 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
193 return
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
194 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
195
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
196 # global options
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
197 case "$prev" in
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
198 -R|--repository)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
199 _hg_paths
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
200 _hg_repos
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
201 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
202 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
203 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
204 --cwd)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
205 # Stick with default bash completion
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
206 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
207 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
208 ;;
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
209 esac
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
210
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
211 if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
212 _hg_commands
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
213 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
214 return
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
215 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
216
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
217 # try to generate completion candidates for whatever command the user typed
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
218 local help
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
219 if _hg_command_specific; then
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
220 _hg_fix_wordlist
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
221 return
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
222 fi
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
223
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
224 # canonicalize the command name and try again
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
225 help=$(_hg_cmd help "$cmd")
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
226 if [ $? -ne 0 ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
227 # Probably either the command doesn't exist or it's ambiguous
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
228 return
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
229 fi
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
230 cmd=${help#hg }
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
231 cmd=${cmd%%[$' \n']*}
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
232 canonical=1
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
233 _hg_command_specific
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
234 _hg_fix_wordlist
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
235 }
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
236
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
237 _hg_command_specific()
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
238 {
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
239 if [ "$(type -t "_hg_cmd_$cmd")" = function ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
240 "_hg_cmd_$cmd"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
241 return 0
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
242 fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
243
20133
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
244 if [ "$cmd" != status ]; then
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
245 case "$prev" in
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
246 -r|--rev)
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
247 if [[ $canonical = 1 || status != "$cmd"* ]]; then
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
248 _hg_labels
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
249 return 0
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
250 fi
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
251 return 1
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
252 ;;
20134
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
253 -B|--bookmark)
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
254 if [[ $canonical = 1 || status != "$cmd"* ]]; then
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
255 _hg_bookmarks
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
256 return 0
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
257 fi
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
258 return 1
bc9735855598 bash_completion: add global support for -B|--bookmark
Sean Farley <sean.michael.farley@gmail.com>
parents: 20133
diff changeset
259 ;;
20135
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
260 -b|--branch)
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
261 if [[ $canonical = 1 || status != "$cmd"* ]]; then
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
262 _hg_branches
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
263 return 0
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
264 fi
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
265 return 1
e39bd4b7be78 bash_completion: add global support for -b|--branch
Sean Farley <sean.michael.farley@gmail.com>
parents: 20134
diff changeset
266 ;;
20133
f6c33fc59dbd bash_completion: change --rev if-else block into a case
Sean Farley <sean.michael.farley@gmail.com>
parents: 20132
diff changeset
267 esac
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
268 fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
269
20124
dd3af304b3c8 bash_completion: expand aliased commands
Sean Farley <sean.michael.farley@gmail.com>
parents: 20123
diff changeset
270 local aliascmd=$(_hg_cmd showconfig alias.$cmd | awk '{print $1}')
dd3af304b3c8 bash_completion: expand aliased commands
Sean Farley <sean.michael.farley@gmail.com>
parents: 20123
diff changeset
271 [ -n "$aliascmd" ] && cmd=$aliascmd
dd3af304b3c8 bash_completion: expand aliased commands
Sean Farley <sean.michael.farley@gmail.com>
parents: 20123
diff changeset
272
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
273 case "$cmd" in
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
274 help)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
275 _hg_commands
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
276 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
277 export)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
278 if _hg_ext_mq_patchlist qapplied && [ "${COMPREPLY[*]}" ]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
279 return 0
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
280 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
281 _hg_labels
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
282 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
283 manifest|update|up|checkout|co)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
284 _hg_labels
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
285 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
286 pull|push|outgoing|incoming)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
287 _hg_paths
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
288 _hg_repos
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
289 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
290 paths)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
291 _hg_paths
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
292 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
293 add)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
294 _hg_status "u"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
295 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
296 merge)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
297 _hg_labels
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
298 ;;
35457
2c47986505ff completion: add support for new "amend" command
Martin von Zweigbergk <martinvonz@google.com>
parents: 35456
diff changeset
299 commit|ci|record|amend)
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
300 _hg_status "mar"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
301 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
302 remove|rm)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
303 _hg_debugpathcomplete -n
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
304 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
305 forget)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
306 _hg_debugpathcomplete -fa
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
307 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
308 diff)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
309 _hg_status "mar"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
310 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
311 revert)
35456
fdbe4eafa9c2 completion: don't suggest clean files to revert
Martin von Zweigbergk <martinvonz@google.com>
parents: 30199
diff changeset
312 _hg_status "mard"
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
313 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
314 clone)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
315 local count=$(_hg_count_non_option)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
316 if [ $count = 1 ]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
317 _hg_paths
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
318 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
319 _hg_repos
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
320 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
321 debugindex|debugindexdot)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
322 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.i" -- "$cur"))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
323 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
324 debugdata)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
325 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -f -X "!*.d" -- "$cur"))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
326 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
327 *)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
328 return 1
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
329 ;;
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
330 esac
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
331
2039
0c438fd25e6e bash_completion: small optimization
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2035
diff changeset
332 return 0
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
333 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
334
20126
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
335 complete -o bashdefault -o default -o nospace -F _hg hg \
25cb1d96c307 bash_completion: fix issue with subdirectories not being completed
Sean Farley <sean.michael.farley@gmail.com>
parents: 20125
diff changeset
336 || complete -o default -o nospace -F _hg hg
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
337
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
338
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
339 # Completion for commands provided by extensions
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
340
9460
552c5a5a3502 contrib/bash_completion: add tab completion for some bookmark commands
Steve Losh <steve@stevelosh.com>
parents: 8719
diff changeset
341 # bookmarks
552c5a5a3502 contrib/bash_completion: add tab completion for some bookmark commands
Steve Losh <steve@stevelosh.com>
parents: 8719
diff changeset
342 _hg_cmd_bookmarks()
552c5a5a3502 contrib/bash_completion: add tab completion for some bookmark commands
Steve Losh <steve@stevelosh.com>
parents: 8719
diff changeset
343 {
20127
6b771bcd1a62 bash_completion: remove restriction on bookmark completion
Sean Farley <sean.michael.farley@gmail.com>
parents: 20126
diff changeset
344 _hg_bookmarks
6b771bcd1a62 bash_completion: remove restriction on bookmark completion
Sean Farley <sean.michael.farley@gmail.com>
parents: 20126
diff changeset
345 return
9460
552c5a5a3502 contrib/bash_completion: add tab completion for some bookmark commands
Steve Losh <steve@stevelosh.com>
parents: 8719
diff changeset
346 }
552c5a5a3502 contrib/bash_completion: add tab completion for some bookmark commands
Steve Losh <steve@stevelosh.com>
parents: 8719
diff changeset
347
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
348 # mq
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
349 _hg_ext_mq_patchlist()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
350 {
3480
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
351 local patches
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
352 patches=$(_hg_cmd $1)
3480
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
353 if [ $? -eq 0 ] && [ "$patches" ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
354 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$patches' -- "$cur"))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
355 return 0
3480
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
356 fi
03932425cfd8 bash_completion: don't complete export with "garbage" when mq is not around
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2695
diff changeset
357 return 1
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
358 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
359
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
360 _hg_ext_mq_queues()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
361 {
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
362 local root=$(_hg_cmd root)
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
363 local n
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
364 for n in $(cd "$root"/.hg && compgen -d -- "$cur"); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
365 # I think we're usually not interested in the regular "patches" queue
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
366 # so just filter it.
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
367 if [ "$n" != patches ] && [ -e "$root/.hg/$n/series" ]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
368 COMPREPLY=(${COMPREPLY[@]:-} "$n")
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
369 fi
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
370 done
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
371 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
372
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
373 _hg_cmd_qpop()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
374 {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
375 if [[ "$prev" = @(-n|--name) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
376 _hg_ext_mq_queues
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
377 return
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
378 fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
379 _hg_ext_mq_patchlist qapplied
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
380 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
381
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
382 _hg_cmd_qpush()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
383 {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
384 if [[ "$prev" = @(-n|--name) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
385 _hg_ext_mq_queues
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
386 return
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
387 fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
388 _hg_ext_mq_patchlist qunapplied
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
389 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
390
5507
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
391 _hg_cmd_qgoto()
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
392 {
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
393 if [[ "$prev" = @(-n|--name) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
394 _hg_ext_mq_queues
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
395 return
5507
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
396 fi
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
397 _hg_ext_mq_patchlist qseries
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
398 }
bb417470d62a Support qgoto in contrib/bash_completion.
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 5081
diff changeset
399
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
400 _hg_cmd_qdelete()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
401 {
3482
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
402 local qcmd=qunapplied
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
403 if [[ "$prev" = @(-r|--rev) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
404 qcmd=qapplied
3482
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
405 fi
e762c0e95eac bash_completion: qdelete --rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3481
diff changeset
406 _hg_ext_mq_patchlist $qcmd
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
407 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
408
9840
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
409 _hg_cmd_qfinish()
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
410 {
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
411 if [[ "$prev" = @(-a|--applied) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
412 return
9840
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
413 fi
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
414 _hg_ext_mq_patchlist qapplied
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
415 }
18d5935c0c62 Add missing bash_completion for qfinish
Thomas Arendsen Hein <thomas@intevation.de>
parents: 9602
diff changeset
416
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
417 _hg_cmd_qsave()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
418 {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
419 if [[ "$prev" = @(-n|--name) ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
420 _hg_ext_mq_queues
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
421 return
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
422 fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
423 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
424
17463
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
425 _hg_cmd_rebase() {
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
426 if [[ "$prev" = @(-s|--source|-d|--dest|-b|--base|-r|--rev) ]]; then
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
427 _hg_labels
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
428 return
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
429 fi
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
430 }
e49771e2d071 bash_completion: add rebase rev completion
Kevin Bullock <kbullock@ringworld.org>
parents: 15969
diff changeset
431
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
432 _hg_cmd_strip()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
433 {
20130
7c78c7eff119 bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com>
parents: 20129
diff changeset
434 if [[ "$prev" = @(-B|--bookmark) ]]; then
7c78c7eff119 bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com>
parents: 20129
diff changeset
435 _hg_bookmarks
7c78c7eff119 bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com>
parents: 20129
diff changeset
436 return
7c78c7eff119 bash_completion: add -B|--bookmark support for strip
Sean Farley <sean.michael.farley@gmail.com>
parents: 20129
diff changeset
437 fi
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
438 _hg_labels
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
439 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
440
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
441 _hg_cmd_qcommit()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
442 {
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
443 local root=$(_hg_cmd root)
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
444 # this is run in a sub-shell, so we can't use _hg_status
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
445 local files=$(cd "$root/.hg/patches" && _hg_cmd status -nmar)
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
446 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$files' -- "$cur"))
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
447 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
448
3484
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
449 _hg_cmd_qfold()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
450 {
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
451 _hg_ext_mq_patchlist qunapplied
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
452 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
453
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
454 _hg_cmd_qrename()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
455 {
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
456 _hg_ext_mq_patchlist qseries
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
457 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
458
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
459 _hg_cmd_qheader()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
460 {
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
461 _hg_ext_mq_patchlist qseries
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
462 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
463
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
464 _hg_cmd_qclone()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
465 {
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
466 local count=$(_hg_count_non_option)
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
467 if [ $count = 1 ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
468 _hg_paths
3484
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
469 fi
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
470 _hg_repos
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
471 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
472
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
473 _hg_ext_mq_guards()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
474 {
11646
91af149b5cd7 bash/zsh completion: use HGPLAIN when invoking hg (issue2297)
Brodie Rao <brodie@bitheap.org>
parents: 10456
diff changeset
475 _hg_cmd qselect --series | sed -e 's/^.//'
3484
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
476 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
477
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
478 _hg_cmd_qselect()
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
479 {
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
480 local guards=$(_hg_ext_mq_guards)
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
481 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$guards' -- "$cur"))
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
482 }
a8823e6824fc bash_completion: qfold, qrename, qheader, qclone and qselect
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3483
diff changeset
483
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
484 _hg_cmd_qguard()
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
485 {
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
486 local prefix=''
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
487
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
488 if [[ "$cur" == +* ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
489 prefix=+
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
490 elif [[ "$cur" == -* ]]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
491 prefix=-
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
492 fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
493 local ncur=${cur#[-+]}
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
494
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
495 if ! [ "$prefix" ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
496 _hg_ext_mq_patchlist qseries
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
497 return
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
498 fi
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
499
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
500 local guards=$(_hg_ext_mq_guards)
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
501 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -P $prefix -W '$guards' -- "$ncur"))
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
502 }
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
503
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
504 _hg_opt_qguard()
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
505 {
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
506 local i
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
507 for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
508 if [[ ${COMP_WORDS[i]} != -* ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
509 if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
510 _hg_cmd_qguard
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
511 return 0
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
512 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
513 elif [ "${COMP_WORDS[i]}" = -- ]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
514 _hg_cmd_qguard
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
515 return 0
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
516 fi
3486
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
517 done
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
518 return 1
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
519 }
f699d4eb25d9 bash_completion: qguard
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3485
diff changeset
520
11768
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
521 _hg_cmd_qqueue()
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
522 {
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
523 local q
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
524 local queues
11968
66521d25c2a6 mq/qqueue: update bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11768
diff changeset
525 local opts="--list --create --rename --delete --purge"
11768
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
526
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
527 queues=$( _hg_cmd qqueue --quiet )
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
528
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
529 COMPREPLY=( $( compgen -W "${opts} ${queues}" "${cur}" ) )
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
530 }
dc5ce9c95d00 mq/qqueue: enable bash completion
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
parents: 11646
diff changeset
531
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
532
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
533 # hbisect
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
534 _hg_cmd_bisect()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
535 {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
536 local i subcmd
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
537
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
538 # find the sub-command
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
539 for ((i=cmd_index+1; i<=COMP_CWORD; i++)); do
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
540 if [[ ${COMP_WORDS[i]} != -* ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
541 if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
542 subcmd="${COMP_WORDS[i]}"
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
543 break
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
544 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
545 fi
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
546 done
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
547
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
548 if [ -z "$subcmd" ] || [ $COMP_CWORD -eq $i ] || [ "$subcmd" = help ]; then
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
549 COMPREPLY=(${COMPREPLY[@]:-}
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
550 $(compgen -W 'bad good help init next reset' -- "$cur"))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
551 return
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
552 fi
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
553
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
554 case "$subcmd" in
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
555 good|bad)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
556 _hg_labels
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
557 ;;
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
558 esac
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
559
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
560 return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
561 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
562
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
563
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
564 # patchbomb
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
565 _hg_cmd_email()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
566 {
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
567 case "$prev" in
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
568 -c|--cc|-t|--to|-f|--from|--bcc)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
569 # we need an e-mail address. let the user provide a function
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
570 # to get them
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
571 if [ "$(type -t _hg_emails)" = function ]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
572 local arg=to
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
573 if [[ "$prev" == @(-f|--from) ]]; then
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
574 arg=from
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
575 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
576 local addresses=$(_hg_emails $arg)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
577 COMPREPLY=(${COMPREPLY[@]:-}
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
578 $(compgen -W '$addresses' -- "$cur"))
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
579 fi
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
580 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
581 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
582 -m|--mbox)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
583 # fallback to standard filename completion
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
584 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
585 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
586 -s|--subject)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
587 # free form string
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
588 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
589 ;;
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
590 esac
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
591
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
592 _hg_labels
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
593 return
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
594 }
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
595
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
596
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
597 # gpg
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
598 _hg_cmd_sign()
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
599 {
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
600 _hg_labels
2041
077a2da7f1de bash_completion: completion for commands provided by extensions
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2039
diff changeset
601 }
3993
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
602
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
603
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
604 # transplant
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
605 _hg_cmd_transplant()
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
606 {
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
607 case "$prev" in
20123
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
608 -s|--source)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
609 _hg_paths
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
610 _hg_repos
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
611 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
612 ;;
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
613 --filter)
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
614 # standard filename completion
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
615 return
f16240c8e959 bash_completion: untabify
Sean Farley <sean.michael.farley@gmail.com>
parents: 18794
diff changeset
616 ;;
3993
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
617 esac
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
618
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
619 # all other transplant options values and command parameters are revisions
13509
8aea95ec128f bash_completion: complete bookmarks
Kevin Bullock <kbullock@ringworld.org>
parents: 13243
diff changeset
620 _hg_labels
3993
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
621 return
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
622 }
04d919cdf263 expanded bash_completion for transplant extension
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3992
diff changeset
623
9511
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
624 # shelve
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
625 _hg_shelves()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
626 {
20128
56108ee1edb6 bash_completion: use correct command for listing shelves
Sean Farley <sean.michael.farley@gmail.com>
parents: 20127
diff changeset
627 local shelves="$(_hg_cmd shelve -ql)"
9511
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
628 local IFS=$'\n'
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
629 COMPREPLY=(${COMPREPLY[@]:-} $(compgen -W '$shelves' -- "$cur"))
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
630 }
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
631
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
632 _hg_cmd_shelve()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
633 {
26904
8aacac09e222 bash_completion: add -p|--patch|--stat support for shelve
Anton Shestakov <av6@dwimlabs.net>
parents: 23762
diff changeset
634 if [[ "$prev" = @(-d|--delete|-l|--list|-p|--patch|--stat) ]]; then
20129
da8fb88bd757 bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com>
parents: 20128
diff changeset
635 _hg_shelves
da8fb88bd757 bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com>
parents: 20128
diff changeset
636 else
da8fb88bd757 bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com>
parents: 20128
diff changeset
637 _hg_status "mard"
da8fb88bd757 bash_completion: add completion for deleting a shelve
Sean Farley <sean.michael.farley@gmail.com>
parents: 20128
diff changeset
638 fi
9511
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
639 }
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
640
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
641 _hg_cmd_unshelve()
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
642 {
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
643 _hg_shelves
33033af09308 bash_completion: add completions for shelve extension
Kevin Bullock <kbullock@ringworld.org>
parents: 8719
diff changeset
644 }