Show More
@@ -14,7 +14,18 b'' | |||||
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' \ | |
@@ -27,6 +38,14 b' includeExclude=(' | |||||
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) -/') | |
29 |
|
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') | |||
|
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 -/' \ | |
@@ -419,6 +438,43 b' case $service in' | |||||
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 | ;; |
General Comments 0
You need to be logged in to leave comments.
Login now