contrib/zsh_completion
author Thomas Arendsen Hein <thomas@intevation.de>
Fri, 01 Dec 2006 23:27:53 +0100
changeset 3755 05120e210c65
parent 3629 adbf440a81e0
child 3805 248a952c0d17
permissions -rw-r--r--
Use unsigned version format. This way can use one additional bit, and when encountering invalid revlogs with the first bit set don't produce python warnings or strange error messages.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     1
#compdef hg
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     2
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     3
# Zsh completion script for mercurial.  Rename this file to _hg and copy
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     4
# it into your zsh function path (/usr/share/zsh/site-functions for
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     5
# instance)
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     6
#
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     7
# Copyright (C) 2005 Steve Borho
3534
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
     8
# Copyright (C) 2006 Brendan Cully <brendan@kublai.com>
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
     9
#
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    10
# This is free software; you can redistribute it and/or modify it under
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    11
# the terms of the GNU General Public License as published by the Free
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    12
# Software Foundation; either version 2 of the License, or (at your
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    13
# option) any later version.
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    14
#
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    15
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
    16
local curcontext="$curcontext" state line
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    17
typeset -A _hg_cmd_globals
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    18
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    19
_hg() {
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    20
  local cmd _hg_root
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    21
  integer i=2
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    22
  _hg_cmd_globals=()
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    23
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    24
  while (( i < $#words ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    25
  do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    26
    case "$words[$i]" in
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    27
      -R|--repository)
3605
9d815b074dcb zsh: perform ~ expansion on _hg_root
Brendan Cully <brendan@kublai.com>
parents: 3603
diff changeset
    28
        eval _hg_root="$words[$i+1]"
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    29
        _hg_cmd_globals+=("$words[$i]" "$_hg_root")
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    30
        (( i += 2 ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    31
        continue
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    32
      ;;
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    33
      -R*)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    34
        _hg_cmd_globals+="$words[$i]"
3605
9d815b074dcb zsh: perform ~ expansion on _hg_root
Brendan Cully <brendan@kublai.com>
parents: 3603
diff changeset
    35
        eval _hg_root="${words[$i]#-R}"
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    36
       (( i++ ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    37
       continue
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    38
      ;;
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    39
      --cwd|--config)
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    40
        # pass along arguments to hg completer
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    41
        _hg_cmd_globals+=("$words[$i]" "$words[$i+1]")
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    42
        (( i += 2 ))
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    43
        continue
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
    44
      ;;
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    45
      -*)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    46
        # skip option
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    47
        (( i++ ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    48
        continue
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    49
      ;;
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    50
    esac
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    51
    if [[ -z "$cmd" ]]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    52
    then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    53
      cmd="$words[$i]"
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    54
      words[$i]=()
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    55
      (( CURRENT-- ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    56
    fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    57
    (( i++ ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    58
  done
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    59
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    60
  if [[ -z "$cmd" ]]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    61
  then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    62
    _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    63
    ':mercurial command:_hg_commands'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    64
    return
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    65
  fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    66
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    67
  # resolve abbreviations and aliases
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    68
  if ! (( $+functions[_hg_cmd_${cmd}] ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    69
  then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    70
    local cmdexp
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    71
    (( $#_hg_cmd_list )) || _hg_get_commands
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    72
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    73
    cmdexp=$_hg_cmd_list[(r)${cmd}*]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    74
    if [[ $cmdexp == $_hg_cmd_list[(R)${cmd}*] ]]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    75
    then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    76
      # might be nice to rewrite the command line with the expansion
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    77
      cmd="$cmdexp"
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    78
    fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    79
    if [[ -n $_hg_alias_list[$cmd] ]]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    80
    then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    81
      cmd=$_hg_alias_list[$cmd]
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    82
    fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    83
  fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    84
3600
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    85
  curcontext="${curcontext%:*:*}:hg-${cmd}:"
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    86
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    87
  zstyle -s ":completion:$curcontext:" cache-policy update_policy
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    88
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    89
  if [[ -z "$update_policy" ]]
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    90
  then
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    91
    zstyle ":completion:$curcontext:" cache-policy _hg_cache_policy
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    92
  fi
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
    93
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    94
  if (( $+functions[_hg_cmd_${cmd}] ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    95
  then
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
    96
    _hg_cmd_${cmd}
3597
0d253ec988a6 zsh: complete unknown commands normally
Brendan Cully <brendan@kublai.com>
parents: 3587
diff changeset
    97
  else
0d253ec988a6 zsh: complete unknown commands normally
Brendan Cully <brendan@kublai.com>
parents: 3587
diff changeset
    98
    # complete unknown commands normally
0d253ec988a6 zsh: complete unknown commands normally
Brendan Cully <brendan@kublai.com>
parents: 3587
diff changeset
    99
    _arguments -s -w : $_hg_global_opts \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   100
      '*:files:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   101
  fi
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   102
}
3491
459e7cd943d4 zsh: complete according to the -R option if specified
Brendan Cully <brendan@kublai.com>
parents: 3490
diff changeset
   103
3600
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   104
_hg_cache_policy() {
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   105
  typeset -a old
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   106
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   107
  # cache for a minute
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   108
  old=( "$1"(mm+10) )
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   109
  (( $#old )) && return 0
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   110
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   111
  return 1
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   112
}
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   113
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   114
_hg_get_commands() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   115
  typeset -ga _hg_cmd_list
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   116
  typeset -gA _hg_alias_list
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   117
  local hline cmd cmdalias
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   118
  _call_program help hg --verbose help | while read -A hline
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   119
  do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   120
    cmd="$hline[1]"
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   121
    case $cmd in
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   122
      *:)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   123
        cmd=${cmd%:}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   124
        _hg_cmd_list+=($cmd)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   125
      ;;
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   126
      *,)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   127
        cmd=${cmd%,}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   128
        _hg_cmd_list+=($cmd)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   129
        integer i=2
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   130
        while (( i <= $#hline ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   131
        do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   132
          cmdalias=${hline[$i]%(:|,)}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   133
          _hg_cmd_list+=($cmdalias)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   134
          _hg_alias_list+=($cmdalias $cmd)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   135
          (( i++ ))
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   136
        done
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   137
      ;;
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   138
    esac
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   139
  done
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   140
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   141
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   142
_hg_commands() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   143
  (( $#_hg_cmd_list )) || _hg_get_commands
3534
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   144
  _describe -t commands 'mercurial command' _hg_cmd_list
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   145
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   146
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   147
_hg_revrange() {
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   148
  compset -P 1 '*:'
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   149
  _hg_tags "$@"
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   150
}
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   151
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   152
_hg_tags() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   153
  typeset -a tags
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   154
  local tag rev
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   155
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   156
  _hg_cmd tags 2> /dev/null | while read tag rev
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   157
  do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   158
    tags+=($tag)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   159
  done
3534
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   160
  (( $#tags )) && _describe -t tags 'tags' tags
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   161
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   162
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   163
_hg_files() {
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   164
  if [[ -n "$_hg_root" ]]
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   165
  then
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   166
    [[ -d "$_hg_root/.hg" ]] || return
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   167
    case "$_hg_root" in
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   168
      /*)
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   169
        _files -W $_hg_root
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   170
      ;;
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   171
      *)
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   172
        _files -W $PWD/$_hg_root
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   173
      ;;
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   174
    esac
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   175
  else
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   176
    _files
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   177
  fi
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   178
}
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   179
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   180
_hg_status() {
3544
733835602365 zsh: suppress error message for status completion outside of repository
Brendan Cully <brendan@kublai.com>
parents: 3536
diff changeset
   181
  status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 . 2>/dev/null)"})
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   182
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   183
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   184
_hg_unknown() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   185
  typeset -a status_files
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   186
  _hg_status u
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   187
  _wanted files expl 'unknown files' _multi_parts / status_files
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   188
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   189
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   190
_hg_missing() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   191
  typeset -a status_files
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   192
  _hg_status d
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   193
  _wanted files expl 'missing files' _multi_parts / status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   194
}
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   195
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   196
_hg_modified() {
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   197
  typeset -a status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   198
  _hg_status m
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   199
  _wanted files expl 'modified files' _multi_parts / status_files
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   200
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   201
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   202
_hg_addremove() {
3534
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   203
  _alternative 'files:unknown files:_hg_unknown' \
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   204
    'files:missing files:_hg_missing'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   205
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   206
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   207
_hg_ssh_urls() {
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   208
  if [[ -prefix */ ]]
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   209
  then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   210
    if zstyle -T ":completion:${curcontext}:files" remote-access
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   211
    then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   212
      local host=${PREFIX%%/*}
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   213
      typeset -a remdirs
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   214
      compset -p $(( $#host + 1 ))
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   215
      local rempath=${(M)PREFIX##*/}
3602
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   216
      local cacheid="hg:${host}-${rempath//\//_}"
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   217
      cacheid=${cacheid%[-_]}
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   218
      compset -P '*/'
3600
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   219
      if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid"
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   220
      then
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   221
        remdirs=(${${(M)${(f)"$(_call_program files ssh -a -x $host ls -1FL "${(q)rempath}" 2> /dev/null)"}##*/}%/})
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   222
        _store_cache "$cacheid" remdirs
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   223
      fi
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   224
      _describe -t directories 'remote directory' remdirs -S/
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   225
    else
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   226
      _message 'remote directory'
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   227
    fi
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   228
  else
3602
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   229
    if compset -P '*@'
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   230
    then
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   231
      _hosts -S/
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   232
    else
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   233
      _alternative 'hosts:remote host name:_hosts -S/' \
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   234
        'users:user:_users -S@'
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   235
    fi
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   236
  fi
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   237
}
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   238
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   239
_hg_urls() {
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   240
  if compset -P bundle://
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   241
  then
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   242
    _files
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   243
  elif compset -P ssh://
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   244
  then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   245
    _hg_ssh_urls
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   246
  elif [[ -prefix *: ]]
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   247
  then
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   248
    _urls
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   249
  else
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   250
    local expl
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   251
    compset -S '[^:]*'
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   252
    _wanted url-schemas expl 'URL schema' compadd -S '' - \
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   253
      http:// https:// ssh:// bundle://
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   254
  fi
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   255
}
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   256
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   257
_hg_paths() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   258
  typeset -a paths pnames
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   259
  _hg_cmd paths 2> /dev/null | while read -A pnames
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   260
  do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   261
    paths+=($pnames[1])
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   262
  done
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   263
  (( $#paths )) && _describe -t path-aliases 'repository alias' paths
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   264
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   265
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   266
_hg_remote() {
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   267
  _alternative 'path-aliases:repository alias:_hg_paths' \
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   268
    'directories:directory:_files -/' \
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   269
    'urls:URL:_hg_urls'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   270
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   271
3601
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   272
_hg_clone_dest() {
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   273
  _alternative 'directories:directory:_files -/' \
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   274
    'urls:URL:_hg_urls'
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   275
}
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   276
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   277
# Common options
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   278
_hg_global_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   279
    '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   280
    '--cwd[change working directory]:new working directory:_files -/'
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   281
    '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   282
    '(--verbose -v)'{-v,--verbose}'[enable additional output]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   283
    '(--quiet -q)'{-q,--quiet}'[suppress output]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   284
    '(--help -h)'{-h,--help}'[display help and exit]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   285
    '--debug[debug mode]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   286
    '--debugger[start debugger]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   287
    '--traceback[print traceback on exception]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   288
    '--time[time how long the command takes]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   289
    '--profile[profile]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   290
    '--version[output version information and exit]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   291
)
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   292
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   293
_hg_pat_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   294
  '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   295
  '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/')
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   296
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   297
_hg_diff_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   298
  '(--text -a)'{-a,--text}'[treat all files as text]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   299
  '(--git -g)'{-g,--git}'[use git extended diff format]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   300
  "--nodates[don't include dates in diff headers]")
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   301
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   302
_hg_dryrun_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   303
  '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]')
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   304
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   305
_hg_style_opts=(
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   306
  '--style[display using template map file]:'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   307
  '--template[display with template]:')
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   308
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   309
_hg_commit_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   310
  '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   311
  '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use <text> as commit message]:message:'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   312
  '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from <file>]:log file:_files')
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   313
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   314
_hg_remote_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   315
  '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   316
  '--remotecmd[specify hg command to run on the remote side]:')
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   317
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   318
_hg_cmd() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   319
  _call_program hg hg "$_hg_cmd_globals[@]" "$@"
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   320
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   321
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   322
_hg_cmd_add() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   323
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   324
  '*:unknown files:_hg_unknown'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   325
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   326
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   327
_hg_cmd_addremove() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   328
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   329
  '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   330
  '*:unknown or missing files:_hg_addremove'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   331
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   332
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   333
_hg_cmd_annotate() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   334
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   335
  '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   336
  '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   337
  '(--text -a)'{-a,--text}'[treat all files as text]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   338
  '(--user -u)'{-u,--user}'[list the author]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   339
  '(--date -d)'{-d,--date}'[list the date]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   340
  '(--number -n)'{-n,--number}'[list the revision number (default)]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   341
  '(--changeset -c)'{-c,--changeset}'[list the changeset]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   342
  '*:files:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   343
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   344
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   345
_hg_cmd_archive() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   346
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   347
  '--no-decode[do not pass files through decoders]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   348
  '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   349
  '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   350
  '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   351
  '*:destination:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   352
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   353
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   354
_hg_cmd_bundle() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   355
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   356
  '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   357
  '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   358
  ':output file:_files' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   359
  ':destination repository:_files -/'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   360
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   361
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   362
_hg_cmd_cat() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   363
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   364
  '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   365
  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   366
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   367
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   368
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   369
_hg_cmd_clone() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   370
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   371
  '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   372
  '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   373
  '--uncompressed[use uncompressed transfer (fast over LAN)]' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   374
  ':source repository:_hg_remote' \
3601
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   375
  ':destination:_hg_clone_dest'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   376
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   377
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   378
_hg_cmd_commit() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   379
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3629
adbf440a81e0 zsh: typo in commit completion
Brendan Cully <brendan@kublai.com>
parents: 3605
diff changeset
   380
  '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   381
  '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   382
  '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_file -g \*.txt' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   383
  '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   384
  '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   385
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   386
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   387
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   388
_hg_cmd_copy() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   389
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   390
  '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   391
  '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   392
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   393
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   394
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   395
_hg_cmd_diff() {
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   396
  typeset -A opt_args
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   397
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   398
  '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   399
  '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   400
  '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   401
  '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   402
  '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   403
  '*:file:->diff_files'
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   404
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   405
  if [[ $state == 'diff_files' ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   406
  then
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   407
    if [[ -n $opt_args[-r] ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   408
    then
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   409
      _hg_files
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   410
    else
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   411
      _hg_modified
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   412
    fi
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   413
  fi
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   414
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   415
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   416
_hg_cmd_export() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   417
  _arguments -s -w : $_hg_global_opts $_hg_diff_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   418
  '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   419
  '--switch-parent[diff against the second parent]' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   420
  '*:revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   421
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   422
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   423
_hg_cmd_grep() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   424
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   425
  '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   426
  '--all[print all revisions with matches]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   427
  '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   428
  '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   429
  '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   430
  '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   431
  '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   432
  '(--user -u)'{-u,--user}'[print user who committed change]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   433
  '*:search pattern:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   434
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   435
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   436
_hg_cmd_heads() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   437
  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   438
  '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   439
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   440
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   441
_hg_cmd_help() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   442
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   443
  '*:mercurial command:_hg_commands'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   444
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   445
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   446
_hg_cmd_import() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   447
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   448
  '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   449
  '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   450
  '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   451
  '*:patch:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   452
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   453
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   454
_hg_cmd_incoming() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   455
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   456
  '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   457
  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   458
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   459
  '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   460
  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   461
  '--bundle[file to store the bundles into]:bundle file:_files' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   462
  ':source:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   463
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   464
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   465
_hg_cmd_init() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   466
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   467
  ':dir:_files -/'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   468
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   469
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   470
_hg_cmd_locate() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   471
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   472
  '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   473
  '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   474
  '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   475
  '*:search pattern:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   476
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   477
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   478
_hg_cmd_log() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   479
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   480
  '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   481
  '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   482
  '(--copies -C)'{-C,--copies}'[show copied files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   483
  '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   484
  '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   485
  '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   486
  '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   487
  '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   488
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   489
  '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   490
  '*:files:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   491
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   492
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   493
_hg_cmd_manifest() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   494
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   495
  ':revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   496
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   497
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   498
_hg_cmd_outgoing() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   499
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   500
  '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   501
  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   502
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   503
  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   504
  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   505
  ':destination:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   506
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   507
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   508
_hg_cmd_parents() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   509
  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   510
  '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   511
  ':revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   512
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   513
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   514
_hg_cmd_paths() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   515
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   516
  ':path:_hg_paths'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   517
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   518
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   519
_hg_cmd_pull() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   520
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   521
  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   522
  '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   523
  ':source:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   524
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   525
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   526
_hg_cmd_push() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   527
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   528
  '(--force -f)'{-f,--force}'[force push]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   529
  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   530
  ':destination:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   531
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   532
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   533
_hg_cmd_remove() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   534
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   535
  '(--after -A)'{-A,--after}'[record remove that has already occurred]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   536
  '(--force -f)'{-f,--force}'[remove file even if modified]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   537
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   538
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   539
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   540
_hg_cmd_rename() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   541
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   542
  '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   543
  '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   544
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   545
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   546
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   547
_hg_cmd_revert() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   548
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   549
  '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   550
  '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   551
  '--no-backup[do not save backup copies of files]' \
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   552
  '*:file:->diff_files'
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   553
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   554
  if [[ $state == 'diff_files' ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   555
  then
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   556
    if [[ -n $opt_args[-r] ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   557
    then
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   558
      _hg_files
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   559
    else
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   560
      typeset -a status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   561
      _hg_status mard
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   562
      _wanted files expl 'modified, added, removed or deleted file' _multi_parts / status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   563
    fi
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   564
  fi
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   565
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   566
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   567
_hg_cmd_serve() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   568
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   569
  '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   570
  '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   571
  '(--daemon -d)'{-d,--daemon}'[run server in background]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   572
  '(--port -p)'{-p+,--port}'[listen port]:listen port:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   573
  '(--address -a)'{-a+,--address}'[interface address]:interface address:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   574
  '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   575
  '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   576
  '--style[web template style]:style' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   577
  '--stdio[for remote clients]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   578
  '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   579
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   580
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   581
_hg_cmd_status() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   582
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   583
  '(--all -A)'{-A,--all}'[show status of all files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   584
  '(--modified -m)'{-m,--modified}'[show only modified files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   585
  '(--added -a)'{-a,--added}'[show only added files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   586
  '(--removed -r)'{-r,--removed}'[show only removed files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   587
  '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   588
  '(--clean -c)'{-c,--clean}'[show only files without changes]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   589
  '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   590
  '(--ignored -i)'{-i,--ignored}'[show ignored files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   591
  '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   592
  '(--copies -C)'{-C,--copies}'[show source of copied files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   593
  '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   594
  '--rev[show difference from revision]:revision:_hg_tags' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   595
  '*:files:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   596
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   597
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   598
_hg_cmd_tag() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   599
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   600
  '(--local -l)'{-l,--local}'[make the tag local]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   601
  '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   602
  '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   603
  '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   604
  '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   605
  ':tag name:'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   606
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   607
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   608
_hg_cmd_tip() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   609
  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   610
  '(--patch -p)'{-p,--patch}'[show patch]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   611
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   612
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   613
_hg_cmd_unbundle() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   614
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   615
  '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   616
  ':files:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   617
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   618
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   619
_hg_cmd_update() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   620
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   621
  '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   622
  '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   623
  ':revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   624
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   625
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   626
# HGK
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   627
_hg_cmd_view() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   628
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   629
  '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   630
  ':revision range:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   631
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   632
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   633
# MQ
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   634
_hg_qseries() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   635
  typeset -a patches
3545
35b99f076d02 zsh: suppress mq completion error messages outside of repository
Brendan Cully <brendan@kublai.com>
parents: 3544
diff changeset
   636
  patches=($(_hg_cmd qseries 2>/dev/null))
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   637
  (( $#patches )) && _describe -t hg-patches 'patches' patches
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   638
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   639
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   640
_hg_qapplied() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   641
  typeset -a patches
3545
35b99f076d02 zsh: suppress mq completion error messages outside of repository
Brendan Cully <brendan@kublai.com>
parents: 3544
diff changeset
   642
  patches=($(_hg_cmd qapplied 2>/dev/null))
3535
3dbec3f6d3a2 zsh: add qbase and qtip to qapplied completions
Brendan Cully <brendan@kublai.com>
parents: 3534
diff changeset
   643
  if (( $#patches ))
3dbec3f6d3a2 zsh: add qbase and qtip to qapplied completions
Brendan Cully <brendan@kublai.com>
parents: 3534
diff changeset
   644
  then
3dbec3f6d3a2 zsh: add qbase and qtip to qapplied completions
Brendan Cully <brendan@kublai.com>
parents: 3534
diff changeset
   645
    patches+=(qbase qtip)
3dbec3f6d3a2 zsh: add qbase and qtip to qapplied completions
Brendan Cully <brendan@kublai.com>
parents: 3534
diff changeset
   646
    _describe -t hg-applied-patches 'applied patches' patches
3dbec3f6d3a2 zsh: add qbase and qtip to qapplied completions
Brendan Cully <brendan@kublai.com>
parents: 3534
diff changeset
   647
  fi
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   648
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   649
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   650
_hg_qunapplied() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   651
  typeset -a patches
3545
35b99f076d02 zsh: suppress mq completion error messages outside of repository
Brendan Cully <brendan@kublai.com>
parents: 3544
diff changeset
   652
  patches=($(_hg_cmd qunapplied 2>/dev/null))
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   653
  (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   654
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   655
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   656
_hg_qguards() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   657
  typeset -a guards
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   658
  local guard
3529
fe9c1e886b5e zsh: complete qguard with +/- guard prefixes
Brendan Cully <brendan@kublai.com>
parents: 3527
diff changeset
   659
  compset -P "+|-"
3545
35b99f076d02 zsh: suppress mq completion error messages outside of repository
Brendan Cully <brendan@kublai.com>
parents: 3544
diff changeset
   660
  _hg_cmd qselect -s 2>/dev/null | while read guard
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   661
  do
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   662
    guards+=(${guard#(+|-)})
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   663
  done
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   664
  (( $#guards )) && _describe -t hg-guards 'guards' guards
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   665
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   666
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   667
_hg_qseries_opts=(
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   668
  '(--summary -s)'{-s,--summary}'[print first line of patch header]')
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   669
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   670
_hg_cmd_qapplied() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   671
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   672
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   673
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   674
_hg_cmd_qdelete() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   675
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   676
  '(--keep -k)'{-k,--keep}'[keep patch file]' \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   677
  '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_revrange' \
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   678
  '*:unapplied patch:_hg_qunapplied'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   679
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   680
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   681
_hg_cmd_qdiff() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   682
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   683
  '*:pattern:_hg_files'
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   684
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   685
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   686
_hg_cmd_qfold() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   687
  _arguments -s -w : $_hg_global_opts $_h_commit_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   688
  '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   689
  '*:unapplied patch:_hg_qunapplied'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   690
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   691
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   692
_hg_cmd_qguard() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   693
  _arguments -s -w : $_hg_global_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   694
  '(--list -l)'{-l,--list}'[list all patches and guards]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   695
  '(--none -n)'{-n,--none}'[drop all guards]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   696
  ':patch:_hg_qseries' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   697
  '*:guards:_hg_qguards'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   698
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   699
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   700
_hg_cmd_qheader() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   701
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   702
  ':patch:_hg_qseries'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   703
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   704
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   705
_hg_cmd_qimport() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   706
  _arguments -s -w : $_hg_global_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   707
  '(--existing -e)'{-e,--existing}'[import file in patch dir]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   708
  '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   709
  '(--force -f)'{-f,--force}'[overwrite existing files]' \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   710
  '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_revrange' \
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   711
  '*:patch:_files'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   712
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   713
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   714
_hg_cmd_qnew() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   715
  _arguments -s -w : $_hg_global_opts $_hg_commit_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   716
  '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   717
  ':patch:'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   718
}
1368
d1d605d1e839 Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
Steve Borho <steve@borho.org>
parents: 1365
diff changeset
   719
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   720
_hg_cmd_qnext() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   721
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   722
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   723
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   724
_hg_cmd_qpop() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   725
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   726
  '(--all -a :)'{-a,--all}'[pop all patches]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   727
  '(--name -n)'{-n+,--name}'[queue name to pop]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   728
  '(--force -f)'{-f,--force}'[forget any local changes]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   729
  ':patch:_hg_qapplied'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   730
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   731
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   732
_hg_cmd_qprev() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   733
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   734
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   735
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   736
_hg_cmd_qpush() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   737
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   738
  '(--all -a :)'{-a,--all}'[apply all patches]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   739
  '(--list -l)'{-l,--list}'[list patch name in commit text]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   740
  '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   741
  '(--name -n)'{-n+,--name}'[merge queue name]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   742
  '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   743
  ':patch:_hg_qunapplied'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   744
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   745
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   746
_hg_cmd_qrefresh() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   747
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   748
  '(--git -g)'{-g,--git}'[use git extended diff format]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   749
  '(--short -s)'{-s,--short}'[short refresh]' \
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   750
  '*:files:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   751
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   752
3527
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   753
_hg_cmd_qrename() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   754
  _arguments -s -w : $_hg_global_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   755
  ':patch:_hg_qseries' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   756
  ':destination:'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   757
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   758
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   759
_hg_cmd_qselect() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   760
  _arguments -s -w : $_hg_global_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   761
  '(--none -n :)'{-n,--none}'[disable all guards]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   762
  '(--series -s :)'{-s,--series}'[list all guards in series file]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   763
  '--pop[pop to before first guarded applied patch]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   764
  '--reapply[pop and reapply patches]' \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   765
  '*:guards:_hg_qguards'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   766
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   767
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   768
_hg_cmd_qseries() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   769
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   770
  '(--missing -m)'{-m,--missing}'[print patches not in series]'
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   771
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   772
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   773
_hg_cmd_qunapplied() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   774
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   775
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   776
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   777
_hg_cmd_qtop() {
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   778
  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   779
}
ee6b8de6df3c zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev
Brendan Cully <brendan@kublai.com>
parents: 3517
diff changeset
   780
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   781
_hg_cmd_strip() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   782
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   783
  '(--force -f)'{-f,--force}'[force multi-head removal]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   784
  '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   785
  '(--nobackup -n)'{-n,--nobackup}'[no backups]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   786
  ':revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   787
}
3487
1b9494d2b070 zsh: expand tags lazily
Brendan Cully <brendan@kublai.com>
parents: 3482
diff changeset
   788
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   789
_hg "$@"