contrib/zsh_completion
author Brendan Cully <brendan@kublai.com>
Wed, 15 Aug 2007 14:38:18 -0700
changeset 5173 7e05bdeee7de
parent 4448 2d3379c598c1
child 5309 e21644bbf01e
permissions -rw-r--r--
convert: raise Abort instead of NoRepo when CVS pserver auth fails. At this point we know the source is CVS, so we should not go through the rest of the converters.
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() {
3875
729f354f3f09 zsh: better fix for partial completions
Steve Borho <steve@borho.org>
parents: 3806
diff changeset
   181
  [[ -d $PREFIX ]] || PREFIX=$PREFIX:h
3806
45a751d73080 zsh: fix completions with relative paths
Steve Borho <steve@borho.org>
parents: 3805
diff changeset
   182
  status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 ./$PREFIX 2>/dev/null)"})
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   183
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   184
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   185
_hg_unknown() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   186
  typeset -a status_files
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   187
  _hg_status u
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   188
  _wanted files expl 'unknown files' _multi_parts / status_files
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   191
_hg_missing() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   192
  typeset -a status_files
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   193
  _hg_status d
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   194
  _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
   195
}
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   196
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   197
_hg_modified() {
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   198
  typeset -a status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   199
  _hg_status m
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   200
  _wanted files expl 'modified files' _multi_parts / status_files
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   203
_hg_addremove() {
3534
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   204
  _alternative 'files:unknown files:_hg_unknown' \
811e6c95485c zsh: use standard tags where possible
Brendan Cully <brendan@kublai.com>
parents: 3529
diff changeset
   205
    'files:missing files:_hg_missing'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   206
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   207
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   208
_hg_ssh_urls() {
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   209
  if [[ -prefix */ ]]
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   210
  then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   211
    if zstyle -T ":completion:${curcontext}:files" remote-access
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   212
    then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   213
      local host=${PREFIX%%/*}
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   214
      typeset -a remdirs
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   215
      compset -p $(( $#host + 1 ))
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   216
      local rempath=${(M)PREFIX##*/}
3602
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   217
      local cacheid="hg:${host}-${rempath//\//_}"
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   218
      cacheid=${cacheid%[-_]}
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   219
      compset -P '*/'
3600
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   220
      if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid"
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   221
      then
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   222
        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
   223
        _store_cache "$cacheid" remdirs
932dadd2e614 zsh: add optional remote directory cache
Brendan Cully <brendan@kublai.com>
parents: 3598
diff changeset
   224
      fi
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   225
      _describe -t directories 'remote directory' remdirs -S/
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   226
    else
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   227
      _message 'remote directory'
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   228
    fi
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   229
  else
3602
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   230
    if compset -P '*@'
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   231
    then
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   232
      _hosts -S/
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   233
    else
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   234
      _alternative 'hosts:remote host name:_hosts -S/' \
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   235
        'users:user:_users -S@'
ec221317e018 zsh: complete users in ssh URLS
Brendan Cully <brendan@kublai.com>
parents: 3601
diff changeset
   236
    fi
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   237
  fi
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   238
}
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   239
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   240
_hg_urls() {
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   241
  if compset -P bundle://
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   242
  then
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   243
    _files
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   244
  elif compset -P ssh://
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   245
  then
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   246
    _hg_ssh_urls
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   247
  elif [[ -prefix *: ]]
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   248
  then
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   249
    _urls
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   250
  else
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   251
    local expl
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   252
    compset -S '[^:]*'
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   253
    _wanted url-schemas expl 'URL schema' compadd -S '' - \
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   254
      http:// https:// ssh:// bundle://
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   255
  fi
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   256
}
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   257
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   258
_hg_paths() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   259
  typeset -a paths pnames
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   260
  _hg_cmd paths 2> /dev/null | while read -A pnames
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   261
  do
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   262
    paths+=($pnames[1])
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   263
  done
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   264
  (( $#paths )) && _describe -t path-aliases 'repository alias' paths
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   267
_hg_remote() {
3546
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   268
  _alternative 'path-aliases:repository alias:_hg_paths' \
6106236bc4eb zsh: support remote URLs
Brendan Cully <brendan@kublai.com>
parents: 3545
diff changeset
   269
    'directories:directory:_files -/' \
3598
27121416f9a8 zsh: complete SSH directories
Brendan Cully <brendan@kublai.com>
parents: 3597
diff changeset
   270
    'urls:URL:_hg_urls'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   271
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   272
3601
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   273
_hg_clone_dest() {
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   274
  _alternative 'directories:directory:_files -/' \
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   275
    'urls:URL:_hg_urls'
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   276
}
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   277
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   278
# Common options
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   279
_hg_global_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   280
    '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   281
    '--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
   282
    '(--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
   283
    '(--verbose -v)'{-v,--verbose}'[enable additional output]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   284
    '(--quiet -q)'{-q,--quiet}'[suppress output]'
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   285
    '(--help -h)'{-h,--help}'[display help and exit]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   286
    '--debug[debug mode]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   287
    '--debugger[start debugger]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   288
    '--traceback[print traceback on exception]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   289
    '--time[time how long the command takes]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   290
    '--profile[profile]'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   291
    '--version[output version information and exit]'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   294
_hg_pat_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   295
  '*'{-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
   296
  '*'{-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
   297
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   298
_hg_diff_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   299
  '(--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
   300
  '(--git -g)'{-g,--git}'[use git extended diff format]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   301
  "--nodates[don't include dates in diff headers]")
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   302
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   303
_hg_dryrun_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   304
  '(--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
   305
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   306
_hg_style_opts=(
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   307
  '--style[display using template map file]:'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   308
  '--template[display with template]:')
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   309
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   310
_hg_commit_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   311
  '(-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
   312
  '(-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
   313
  '(-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
   314
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   315
_hg_remote_opts=(
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   316
  '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   317
  '--remotecmd[specify hg command to run on the remote side]:')
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   318
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   319
_hg_cmd() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   320
  _call_program hg hg "$_hg_cmd_globals[@]" "$@"
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   323
_hg_cmd_add() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   324
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   325
  '*:unknown files:_hg_unknown'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   328
_hg_cmd_addremove() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   329
  _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
   330
  '(--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
   331
  '*:unknown or missing files:_hg_addremove'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   334
_hg_cmd_annotate() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   335
  _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
   336
  '(--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
   337
  '(--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
   338
  '(--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
   339
  '(--user -u)'{-u,--user}'[list the author]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   340
  '(--date -d)'{-d,--date}'[list the date]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   341
  '(--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
   342
  '(--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
   343
  '*:files:_hg_files'
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   346
_hg_cmd_archive() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   347
  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   348
  '--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
   349
  '(--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
   350
  '(--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
   351
  '(--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
   352
  '*:destination:_files'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   355
_hg_cmd_bundle() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   356
  _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
   357
  '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   358
  '(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
   359
  ':output file:_files' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   360
  ':destination repository:_files -/'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   363
_hg_cmd_cat() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   364
  _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
   365
  '(--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
   366
  '(--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
   367
  '*:file:_hg_files'
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   370
_hg_cmd_clone() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   371
  _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
   372
  '(--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
   373
  '(--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
   374
  '--uncompressed[use uncompressed transfer (fast over LAN)]' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   375
  ':source repository:_hg_remote' \
3601
cedf056bb723 zsh: support remote cloning
Brendan Cully <brendan@kublai.com>
parents: 3600
diff changeset
   376
  ':destination:_hg_clone_dest'
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   379
_hg_cmd_commit() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   380
  _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
   381
  '(--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
   382
  '(--message -m)'{-m+,--message}'[use <text> as commit message]:text:' \
4448
2d3379c598c1 Fix issue 563: error in _hg_commit in the contrib/zsh_completion script.
Henri Precheur <henry@precheur.org>
parents: 3875
diff changeset
   383
  '(--logfile -l)'{-l+,--logfile}'[read commit message from <file>]:log file:_files -g \*.txt' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   384
  '(--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
   385
  '(--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
   386
  '*:file:_hg_files'
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   389
_hg_cmd_copy() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   390
  _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
   391
  '(--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
   392
  '(--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
   393
  '*:file:_hg_files'
3511
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   396
_hg_cmd_diff() {
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   397
  typeset -A opt_args
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   398
  _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
   399
  '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   400
  '(--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
   401
  '(--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
   402
  '(--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
   403
  '(--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
   404
  '*:file:->diff_files'
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   405
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   406
  if [[ $state == 'diff_files' ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   407
  then
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   408
    if [[ -n $opt_args[-r] ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   409
    then
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   410
      _hg_files
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   411
    else
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   412
      _hg_modified
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   413
    fi
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   414
  fi
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   415
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   416
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   417
_hg_cmd_export() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   418
  _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
   419
  '(--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
   420
  '--switch-parent[diff against the second parent]' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   421
  '*:revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   422
}
3482
46958e428fcd zsh completion: basic mq support
Brendan Cully <brendan@kublai.com>
parents: 1544
diff changeset
   423
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   424
_hg_cmd_grep() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   425
  _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
   426
  '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   427
  '--all[print all revisions with matches]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   428
  '(--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
   429
  '(--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
   430
  '(--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
   431
  '(--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
   432
  '*'{-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
   433
  '(--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
   434
  '*:search pattern:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   435
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   436
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   437
_hg_cmd_heads() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   438
  _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
   439
  '(--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
   440
}
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   441
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   442
_hg_cmd_help() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   443
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   444
  '*:mercurial command:_hg_commands'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   445
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   446
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   447
_hg_cmd_import() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   448
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   449
  '(--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
   450
  '(--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
   451
  '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   452
  '*:patch:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   453
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   454
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   455
_hg_cmd_incoming() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   456
  _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
   457
  '(--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
   458
  '(--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
   459
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   460
  '(--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
   461
  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   462
  '--bundle[file to store the bundles into]:bundle file:_files' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   463
  ':source:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   464
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   465
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   466
_hg_cmd_init() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   467
  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   468
  ':dir:_files -/'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   469
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   470
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   471
_hg_cmd_locate() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   472
  _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
   473
  '(--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
   474
  '(--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
   475
  '(--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
   476
  '*:search pattern:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   477
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   478
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   479
_hg_cmd_log() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   480
  _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
   481
  '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   482
  '(-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
   483
  '(--copies -C)'{-C,--copies}'[show copied files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   484
  '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   485
  '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
3536
ef80b13df85a zsh: add revrange completion
Brendan Cully <brendan@kublai.com>
parents: 3535
diff changeset
   486
  '*'{-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
   487
  '(--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
   488
  '(--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
   489
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   490
  '(--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
   491
  '*:files:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   492
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   493
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   494
_hg_cmd_manifest() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   495
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   496
  ':revision:_hg_tags'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   497
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   498
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   499
_hg_cmd_outgoing() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   500
  _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
   501
  '(--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
   502
  '(--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
   503
  '(--patch -p)'{-p,--patch}'[show patch]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   504
  '(--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
   505
  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   506
  ':destination:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   507
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   508
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   509
_hg_cmd_parents() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   510
  _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
   511
  '(--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
   512
  ':revision:_hg_tags'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   515
_hg_cmd_paths() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   516
  _arguments -s -w : $_hg_global_opts \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   517
  ':path:_hg_paths'
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
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   520
_hg_cmd_pull() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   521
  _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
   522
  '(--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
   523
  '(--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
   524
  ':source:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   525
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   526
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   527
_hg_cmd_push() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   528
  _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
   529
  '(--force -f)'{-f,--force}'[force push]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   530
  '(--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
   531
  ':destination:_hg_remote'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   532
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   533
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   534
_hg_cmd_remove() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   535
  _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
   536
  '(--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
   537
  '(--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
   538
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   539
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   540
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   541
_hg_cmd_rename() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   542
  _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
   543
  '(--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
   544
  '(--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
   545
  '*:file:_hg_files'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   546
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   547
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   548
_hg_cmd_revert() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   549
  _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
   550
  '(--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
   551
  '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   552
  '--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
   553
  '*:file:->diff_files'
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   554
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   555
  if [[ $state == 'diff_files' ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   556
  then
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   557
    if [[ -n $opt_args[-r] ]]
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   558
    then
3603
ef9c515836ae zsh: compute repository root instead of forking hg
Brendan Cully <brendan@kublai.com>
parents: 3602
diff changeset
   559
      _hg_files
3587
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   560
    else
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   561
      typeset -a status_files
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   562
      _hg_status mard
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   563
      _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
   564
    fi
c8494fcc9d39 zsh: tab-complete status results by directory
Brendan Cully <brendan@kublai.com>
parents: 3546
diff changeset
   565
  fi
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   566
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   567
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   568
_hg_cmd_serve() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   569
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   570
  '(--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
   571
  '(--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
   572
  '(--daemon -d)'{-d,--daemon}'[run server in background]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   573
  '(--port -p)'{-p+,--port}'[listen port]:listen port:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   574
  '(--address -a)'{-a+,--address}'[interface address]:interface address:' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   575
  '(--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
   576
  '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   577
  '--style[web template style]:style' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   578
  '--stdio[for remote clients]' \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   579
  '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   580
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   581
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   582
_hg_cmd_status() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   583
  _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
   584
  '(--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
   585
  '(--modified -m)'{-m,--modified}'[show only modified files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   586
  '(--added -a)'{-a,--added}'[show only added files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   587
  '(--removed -r)'{-r,--removed}'[show only removed files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   588
  '(--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
   589
  '(--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
   590
  '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   591
  '(--ignored -i)'{-i,--ignored}'[show ignored files]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   592
  '(--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
   593
  '(--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
   594
  '(--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
   595
  '--rev[show difference from revision]:revision:_hg_tags' \
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   596
  '*:files:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   597
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   598
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   599
_hg_cmd_tag() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   600
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   601
  '(--local -l)'{-l,--local}'[make the tag local]' \
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   602
  '(--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
   603
  '(--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
   604
  '(--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
   605
  '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   606
  ':tag name:'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   607
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   608
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   609
_hg_cmd_tip() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   610
  _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
   611
  '(--patch -p)'{-p,--patch}'[show patch]'
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   612
}
1438
c22da894e4cc zsh completions: new -M, -m arguments for log, etc.
Steve Borho <steve@borho.org>
parents: 1368
diff changeset
   613
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   614
_hg_cmd_unbundle() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   615
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   616
  '(--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
   617
  ':files:_files'
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   618
}
1362
246e1a00af6f zsh completion function for hg
Steve Borho <steve@borho.org>
parents:
diff changeset
   619
3511
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   620
_hg_cmd_update() {
060aefba4459 zsh: rewrite
Brendan Cully <brendan@kublai.com>
parents: 3492
diff changeset
   621
  _arguments -s -w : $_hg_global_opts \
3517
a6dd7ab568cc zsh: make option lists more compact
Brendan Cully <brendan@kublai.com>
parents: 3511
diff changeset
   622
  '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
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 "$@"