equal
deleted
inserted
replaced
12 # option) any later version. |
12 # option) any later version. |
13 # |
13 # |
14 |
14 |
15 local curcontext="$curcontext" state line |
15 local curcontext="$curcontext" state line |
16 typeset -A opt_args |
16 typeset -A opt_args |
17 local subcmds repos tags newFiles addedFiles includeExclude |
17 local subcmds repos tags newFiles addedFiles includeExclude commitMessage |
|
18 |
|
19 _mq_state () { |
|
20 case "$state" in |
|
21 (qapplied) |
|
22 compadd $(hg qapplied) |
|
23 ;; |
|
24 (qunapplied) |
|
25 compadd $(hg qunapplied) |
|
26 ;; |
|
27 esac |
|
28 } |
18 |
29 |
19 tags=($(hg tags 2> /dev/null | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')) |
30 tags=($(hg tags 2> /dev/null | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//')) |
20 subcmds=($(hg -v help | sed -e '1,/^list of commands:/d' \ |
31 subcmds=($(hg -v help | sed -e '1,/^list of commands:/d' \ |
21 -e '/^global options:/,$d' -e '/^ [^ ]/!d; s/[,:].*//g;')) |
32 -e '/^global options:/,$d' -e '/^ [^ ]/!d; s/[,:].*//g;')) |
22 |
33 |
24 includeExclude=( |
35 includeExclude=( |
25 '*-I-[include names matching the given patterns]:dir:_files -W $(hg root) -/' |
36 '*-I-[include names matching the given patterns]:dir:_files -W $(hg root) -/' |
26 '*--include-[include names matching the given patterns]:dir:_files -W $(hg root) -/' |
37 '*--include-[include names matching the given patterns]:dir:_files -W $(hg root) -/' |
27 '*-X-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/' |
38 '*-X-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/' |
28 '*--exclude-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/') |
39 '*--exclude-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/') |
|
40 |
|
41 commitMessage=( |
|
42 '(-m --message -l --logfile --edit)-e[edit commit message]' |
|
43 '(-m --message -l --logfile -e)--edit[edit commit message]' |
|
44 '(-e --edit -l --logfile --message)-m[use <text> as commit message]:message:' |
|
45 '(-e --edit -l --logfile -m)--message[use <text> as commit message]:message:' |
|
46 '(-e --edit -m --message --logfile)-l[read the commit message from <file>]:log file:_files' |
|
47 '(-e --edit -m --message -l)--logfile[read the commit message from <file>]:log file:_files') |
29 |
48 |
30 if [[ $service == "hg" ]]; then |
49 if [[ $service == "hg" ]]; then |
31 _arguments -C -A "-*" \ |
50 _arguments -C -A "-*" \ |
32 '(--repository)-R[repository root directory]:root:_files -/' \ |
51 '(--repository)-R[repository root directory]:root:_files -/' \ |
33 '(-R)--repository[repository root directory]:root:_files -/' \ |
52 '(-R)--repository[repository root directory]:root:_files -/' \ |
417 |
436 |
418 (identify|recover|root|undo|view|verify|version|ct|tags) |
437 (identify|recover|root|undo|view|verify|version|ct|tags) |
419 # no arguments for these commands |
438 # no arguments for these commands |
420 ;; |
439 ;; |
421 |
440 |
|
441 # MQ commands |
|
442 (qdel*|qrm|qrem*) |
|
443 _arguments \ |
|
444 {-k,--keep}'[keep patch file]' \ |
|
445 {-r,--rev}'[revision]:applied patch:->qapplied' \ |
|
446 '*:unapplied patches:->qunapplied' |
|
447 _mq_state |
|
448 ;; |
|
449 |
|
450 (qnew) |
|
451 _arguments $commitMessage \ |
|
452 {-f,--force}'[import uncommitted changes into patch]' \ |
|
453 ':patch name:' |
|
454 ;; |
|
455 |
|
456 (qpo*) |
|
457 applied=( $(hg qapplied) ) |
|
458 _arguments \ |
|
459 (1){-a,--all}'[pop all patches]' \ |
|
460 {-f,--force}'[forget any local changes]' \ |
|
461 ':applied patch:->qapplied' |
|
462 _mq_state |
|
463 ;; |
|
464 |
|
465 (qpu*) |
|
466 _arguments \ |
|
467 (1){-a,--all}'[apply all patches]' \ |
|
468 {-f,--force}'[apply if the patch has rejects]' \ |
|
469 ':unapplied patch:->qunapplied' |
|
470 _mq_state |
|
471 ;; |
|
472 (qref*) |
|
473 _arguments $commitMessage $includeExclude \ |
|
474 {-g,--git}'[use git extended diff format]' \ |
|
475 {-s,--short}'[short refresh]' |
|
476 ;; |
|
477 |
422 (*) |
478 (*) |
423 _message "unknown hg command completion: $service" |
479 _message "unknown hg command completion: $service" |
424 ;; |
480 ;; |
425 esac |
481 esac |