annotate contrib/bash_completion @ 1587:851bc33ff545

Less annoying directory completion (see http://bugs.debian.org/343458) The current bash completion script is quite painful in conjuntion with deep directory trees because it adds a space after each successful directory completion. Eg. "hg clone /ho<tab>" is completed to "hg clone /home " when what you really want is "hg clone /home/" (assuming the complete path to the repository looks like /home/foo/hg...). That's because the 'complete' command does not know about the type of completion it receives from the _hg shell function. When only a single completion is returned, it assumes completion is complete and tells readline to add a trailing space. This behaviour is usually wanted, but not in the case of directory completion. I've attached a patch that circumvents this problem by only returning successful completions for directories that contain a .hg subdirectory. If no repositories are found, no completions are returned either, and bash falls back to ordinary (filename) completion. I find this behaviour a lot less annoying than the current one. Alternative: Use option nospace for the 'complete' command and let _hg itself take care of adding a trailing space where appropriate. That's a far more intrusive change, though.
author Daniel Kobras <kobras@debian.org>
date Thu, 15 Dec 2005 15:40:14 +0100
parents 561b17b7d3a2
children 1c75487badd6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1311
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
1 shopt -s extglob
db8bebb08f8f bash_completion: extended patterns require extglob option
TK Soh <teekaysoh@yahoo.com>
parents: 1308
diff changeset
2
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
3 _hg_commands()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
4 {
1555
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
5 local all commands result
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
6
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
7 all=($(hg --debug help | sed -e '1,/^list of commands:/d' \
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
8 -e '/^global options:/,$d' \
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
9 -e '/^ [^ ]/!d; s/^ //; s/[,:]//g;'))
1556
561b17b7d3a2 Space/Tab cleanup in bash_completion.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1555
diff changeset
10
1555
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
11 commands="${all[*]##debug*}"
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
12 result=$(compgen -W "${commands[*]}" -- "$cur")
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
13
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
14 # hide debug commands from users, but complete them if
1555
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
15 # there is no other possible command
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
16 if [ "$result" = "" ]; then
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
17 local debug
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
18 debug=(${all[*]##!(debug*)})
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
19 debug="${debug[*]/g/debug}"
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
20 result=$(compgen -W "$debug" -- "$cur")
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
21 fi
1555
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
22
01a5121a005a bash_completion: use hg --debug help to get the list of debug commands.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1339
diff changeset
23 COMPREPLY=(${COMPREPLY[@]:-} $result)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
24 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
25
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
26 _hg_paths()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
27 {
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
28 local paths="$(hg paths | sed -e 's/ = .*$//')"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
29 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$paths" -- "$cur" ))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
30 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
31
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
32 _hg_repos()
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
33 {
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
34 local i
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
35 for i in $( compgen -d -- "$cur" ); do
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
36 test ! -d "$i"/.hg || COMPREPLY=(${COMPREPLY[@]:-} "$i")
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
37 done
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
38 }
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
39
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
40 _hg_status()
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
41 {
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
42 local files="$( hg status -$1 | cut -b 3- )"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
43 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -W "$files" -- "$cur" ))
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
44 }
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
45
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
46 _hg_tags()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
47 {
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
48 local tags="$(hg tags | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
49 COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$tags" -- "$cur") )
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
50 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
51
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
52 # this is "kind of" ugly...
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
53 _hg_count_non_option()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
54 {
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
55 local i count=0
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
56 local filters="$1"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
57
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
58 for (( i=1; $i<=$COMP_CWORD; i++ )); do
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
59 if [[ "${COMP_WORDS[i]}" != -* ]]; then
1152
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
60 if [[ ${COMP_WORDS[i-1]} == @($filters|$global_args) ]]; then
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
61 continue
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
62 fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
63 count=$(($count + 1))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
64 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
65 done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
66
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
67 echo $(($count - 1))
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
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
70 _hg()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
71 {
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
72 local cur prev cmd opts i
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
73 # global options that receive an argument
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
74 local global_args='--cwd|-R|--repository'
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
75
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
76 COMPREPLY=()
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
77 cur="$2"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
78 prev="$3"
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
79
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
80 # searching for the command
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
81 # (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
82 # receives an argument)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
83 for (( i=1; $i<=$COMP_CWORD; i++ )); do
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
84 if [[ ${COMP_WORDS[i]} != -* ]]; then
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
85 if [[ ${COMP_WORDS[i-1]} != @($global_args) ]]; then
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
86 cmd="${COMP_WORDS[i]}"
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
87 break
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
88 fi
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
89 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
90 done
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
91
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
92 if [[ "$cur" == -* ]]; then
1149
f82b084bd904 bash_completion: update for new help output format
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1115
diff changeset
93 # this assumes that there are no commands with spaces in the name
f82b084bd904 bash_completion: update for new help output format
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1115
diff changeset
94 opts=$(hg -v help $cmd | sed -e '/^ *-/!d; s/ [^- ].*//')
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
95
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
96 COMPREPLY=( ${COMPREPLY[@]:-} $(compgen -W "$opts" -- "$cur") )
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
97 return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
98 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
99
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
100 # global options
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
101 case "$prev" in
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
102 -R|--repository)
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
103 _hg_repos
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
104 return
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
105 ;;
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
106 --cwd)
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
107 # Stick with default bash completion
1151
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
108 return
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
109 ;;
10b4f2a5ce17 teach bash_completion about --cwd
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1150
diff changeset
110 esac
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
111
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
112 if [ -z "$cmd" ] || [ $COMP_CWORD -eq $i ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
113 _hg_commands
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
114 return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
115 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
116
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
117 # canonicalize command name
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
118 cmd=$(hg -q help "$cmd" | sed -e 's/^hg //; s/ .*//; 1q')
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
119
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
120 if [ "$cmd" != status ] && [ "$prev" = -r ] || [ "$prev" = --rev ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
121 _hg_tags
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
122 return
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
123 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
124
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
125 case "$cmd" in
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
126 help)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
127 _hg_commands
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
128 ;;
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
129 export|manifest|update)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
130 _hg_tags
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
131 ;;
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
132 pull|push|outgoing|incoming)
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
133 _hg_paths
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
134 _hg_repos
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
135 ;;
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
136 paths)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
137 _hg_paths
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
138 ;;
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
139 add)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
140 _hg_status "u"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
141 ;;
1150
4ee09418c8e5 bash_completion: better handling of aliases
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1149
diff changeset
142 commit)
935
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
143 _hg_status "mra"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
144 ;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
145 remove)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
146 _hg_status "r"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
147 ;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
148 forget)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
149 _hg_status "a"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
150 ;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
151 diff)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
152 _hg_status "mra"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
153 ;;
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
154 revert)
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
155 _hg_status "mra"
925563ff1b18 bash: Add smarter completion of add/commit/remove/forget/diff/revert
mpm@selenic.com
parents: 929
diff changeset
156 ;;
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
157 clone)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
158 local count=$(_hg_count_non_option)
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
159 if [ $count = 1 ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
160 _hg_paths
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
161 fi
1587
851bc33ff545 Less annoying directory completion (see http://bugs.debian.org/343458)
Daniel Kobras <kobras@debian.org>
parents: 1556
diff changeset
162 _hg_repos
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
163 ;;
1115
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
164 debugindex|debugindexdot)
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
165 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -X "!*.i" -- "$cur" ))
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
166 ;;
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
167 debugdata)
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
168 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -X "!*.d" -- "$cur" ))
89f54e72581d bash_completion: add debugindex and debugdata support
mpm@selenic.com
parents: 1018
diff changeset
169 ;;
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
170 cat)
1152
ff560ce0c635 bash_completion: small cleanup and bugfix
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1151
diff changeset
171 local count=$(_hg_count_non_option '-o|--output')
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
172 if [ $count = 2 ]; then
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
173 _hg_tags
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
174 else
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
175 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
176 fi
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
177 ;;
1308
2073e5a71008 Cleanup of tabs and trailing spaces.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1263
diff changeset
178 *)
1556
561b17b7d3a2 Space/Tab cleanup in bash_completion.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1555
diff changeset
179 COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
916
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
180 ;;
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
181 esac
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 }
fe094cca9915 Add bash_completion to contrib
mpm@selenic.com
parents:
diff changeset
184
1153
fa9ae7df88a9 bash_completion: try to use bash3 features if they're available
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1152
diff changeset
185 complete -o bashdefault -o default -F _hg hg 2> /dev/null \
fa9ae7df88a9 bash_completion: try to use bash3 features if they're available
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 1152
diff changeset
186 || complete -o default -F _hg hg