# HG changeset patch # User Brendan Cully # Date 1161829902 25200 # Node ID ee6b8de6df3cc958194cdaee7e4dc13f48b151f1 # Parent 91d0fee3e684b48cbcdad5e597c5243e4cc70346 zsh: complete qapplied, qdiff, qfold, qguard, qimport, qnext, qprev as well as qrename, qselect, qseries, qunapplied and qtop. diff --git a/contrib/zsh_completion b/contrib/zsh_completion --- a/contrib/zsh_completion +++ b/contrib/zsh_completion @@ -164,24 +164,6 @@ typeset -A _hg_cmd_globals 'directory:directory:_files -/' } -_hg_qseries() { - typeset -a patches - patches=($(_hg_cmd qseries)) - (( $#patches )) && _describe -t hg-patches 'patches' patches -} - -_hg_qapplied() { - typeset -a patches - patches=($(_hg_cmd qapplied)) - (( $#patches )) && _describe -t hg-applied-patches 'applied patches' patches -} - -_hg_qunapplied() { - typeset -a patches - patches=($(_hg_cmd qunapplied)) - (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches -} - # Common options _hg_global_opts=( '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/' @@ -516,11 +498,65 @@ typeset -A _hg_cmd_globals } # MQ +_hg_qseries() { + typeset -a patches + patches=($(_hg_cmd qseries)) + (( $#patches )) && _describe -t hg-patches 'patches' patches +} + +_hg_qapplied() { + typeset -a patches + patches=($(_hg_cmd qapplied)) + (( $#patches )) && _describe -t hg-applied-patches 'applied patches' patches +} + +_hg_qunapplied() { + typeset -a patches + patches=($(_hg_cmd qunapplied)) + (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches +} + +_hg_qguards() { + typeset -a guards + local guard + _hg_cmd qselect -s | while read guard + do + guards+=(${guard#(+|-)}) + done + (( $#guards )) && _describe -t hg-guards 'guards' guards +} + +_hg_qseries_opts=( + '(--summary -s)'{-s,--summary}'[print first line of patch header]') + +_hg_cmd_qapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + _hg_cmd_qdelete() { _arguments -s -w : $_hg_global_opts \ '(--keep -k)'{-k,--keep}'[keep patch file]' \ '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_qapplied' \ - '*:patch:_hg_qunapplied' + '*:unapplied patch:_hg_qunapplied' +} + +_hg_cmd_qdiff() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '*:pattern:_files -W $(_hg_cmd root)' +} + +_hg_cmd_qfold() { + _arguments -s -w : $_hg_global_opts $_h_commit_opts \ + '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \ + '*:unapplied patch:_hg_qunapplied' +} + +_hg_cmd_qguard() { + _arguments -s -w : $_hg_global_opts \ + '(--list -l)'{-l,--list}'[list all patches and guards]' \ + '(--none -n)'{-n,--none}'[drop all guards]' \ + ':patch:_hg_qseries' \ + '*:guards:_hg_qguards' } _hg_cmd_qheader() { @@ -528,12 +564,25 @@ typeset -A _hg_cmd_globals ':patch:_hg_qseries' } +_hg_cmd_qimport() { + _arguments -s -w : $_hg_global_opts \ + '(--existing -e)'{-e,--existing}'[import file in patch dir]' \ + '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \ + '(--force -f)'{-f,--force}'[overwrite existing files]' \ + '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_tags' \ + '*:patch:_files' +} + _hg_cmd_qnew() { _arguments -s -w : $_hg_global_opts $_hg_commit_opts \ '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \ ':patch:' } +_hg_cmd_qnext() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + _hg_cmd_qpop() { _arguments -s -w : $_hg_global_opts \ '(--all -a :)'{-a,--all}'[pop all patches]' \ @@ -542,6 +591,10 @@ typeset -A _hg_cmd_globals ':patch:_hg_qapplied' } +_hg_cmd_qprev() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + _hg_cmd_qpush() { _arguments -s -w : $_hg_global_opts \ '(--all -a :)'{-a,--all}'[apply all patches]' \ @@ -559,6 +612,34 @@ typeset -A _hg_cmd_globals '*:files:_files -W $(_hg_cmd root)' } +_hg_cmd_qrename() { + _arguments -s -w : $_hg_global_opts \ + ':patch:_hg_qseries' \ + ':destination:' +} + +_hg_cmd_qselect() { + _arguments -s -w : $_hg_global_opts \ + '(--none -n :)'{-n,--none}'[disable all guards]' \ + '(--series -s :)'{-s,--series}'[list all guards in series file]' \ + '--pop[pop to before first guarded applied patch]' \ + '--reapply[pop and reapply patches]' \ + '*:guards:_hg_qguards' +} + +_hg_cmd_qseries() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \ + '(--missing -m)'{-m,--missing}'[print patches not in series]' +} + +_hg_cmd_qunapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qtop() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + _hg_cmd_strip() { _arguments -s -w : $_hg_global_opts \ '(--force -f)'{-f,--force}'[force multi-head removal]' \