##// END OF EJS Templates
changes by John Levon to standardize some erroroutput
changes by John Levon to standardize some erroroutput

File last commit:

r1544:b3184bea default
r1926:ba198d17 default
Show More
zsh_completion
425 lines | 16.5 KiB | text/plain | TextLexer
Steve Borho
zsh completion function for hg
r1362 #compdef hg
# Zsh completion script for mercurial. Rename this file to _hg and copy
# it into your zsh function path (/usr/share/zsh/site-functions for
# instance)
#
# Copyright (C) 2005 Steve Borho
#
# This is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
local curcontext="$curcontext" state line
typeset -A opt_args
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 local subcmds repos tags newFiles addedFiles includeExclude
Steve Borho
zsh completion function for hg
r1362
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 tags=($(hg tags 2> /dev/null | sed -e 's/[0-9]*:[a-f0-9]\{40\}$//; s/ *$//'))
Steve Borho
zsh completion function for hg
r1362 subcmds=($(hg -v help | sed -e '1,/^list of commands:/d' \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 -e '/^global options:/,$d' -e '/^ [^ ]/!d; s/[,:].*//g;'))
# A lot of commands have these arguments
includeExclude=(
'*-I-[include names matching the given patterns]:dir:_files -W $(hg root) -/'
'*--include-[include names matching the given patterns]:dir:_files -W $(hg root) -/'
'*-X-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/'
'*--exclude-[exclude names matching the given patterns]:dir:_files -W $(hg root) -/')
Steve Borho
zsh completion function for hg
r1362
if [[ $service == "hg" ]]; then
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 _arguments -C -A "-*" \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '(--repository)-R[repository root directory]:root:_files -/' \
'(-R)--repository[repository root directory]:root:_files -/' \
'--cwd[change working directory]:new working directory:_files -/' \
'(--noninteractive)-y[do not prompt, assume yes for any required answers]' \
'(-y)--noninteractive[do not prompt, assume yes for any required answers]' \
'(--verbose)-v[enable additional output]' \
'(-v)--verbose[enable additional output]' \
'(--quiet)-q[suppress output]' \
'(-q)--quiet[suppress output]' \
'(--help)-h[display help and exit]' \
'(-h)--help[display help and exit]' \
'--debug[debug mode]' \
'--debugger[start debugger]' \
'--traceback[print traceback on exception]' \
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 '--time[time how long the command takes]' \
'--profile[profile]' \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '--version[output version information and exit]' \
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 '*::command:->subcmd' && return 0
Steve Borho
zsh completion function for hg
r1362
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 if (( CURRENT == 1 )); then
_wanted commands expl 'hg command' compadd -a subcmds
return
fi
service="$words[1]"
curcontext="${curcontext%:*}=$service:"
Steve Borho
zsh completion function for hg
r1362 fi
case $service in
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (add)
Steve Borho
zsh completion improvements....
r1484 newFiles=(${(ps:\0:)"$(hg status -0un .)"})
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'*:file:->unknown'
_wanted files expl 'unknown files' compadd -a newFiles
;;
Steve Borho
zsh completion function for hg
r1362 (addremove)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
Steve Borho
zsh completion function for hg
r1362 '*:directories:_files -/' # assume they want to add/remove a dir
;;
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (forget)
Steve Borho
zsh completion improvements....
r1484 addedFiles=(${(ps:\0:)"$(hg status -0an .)"})
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'*:file:->added'
_wanted files expl 'newly added files' compadd -a addedFiles
Steve Borho
zsh completion function for hg
r1362 ;;
(remove|rm)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'*:file:_files'
;;
(copy|cp)
_arguments $includeExclude \
'(--after)-A[record a copy that has already occurred]' \
'(-A)--after[record a copy that has already occurred]' \
'(--force)-f[forcibly copy over an existing managed file]' \
'(-f)--force[forcibly copy over an existing managed file]' \
'(--parents)-p[append source path to dest]' \
'(-p)--parents[append source path to dest]' \
'*:files:_files'
;;
(rename|mv)
if (( CURRENT == 2 )); then
_arguments $includeExclude \
'(--after)-A[record a rename that has already occurred]' \
'(-A)--after[record a rename that has already occurred]' \
'(--force)-f[replace destination if it exists]' \
'(-F)--force[replace destination if it exists]' \
'(--parents)-p[append source path to dest]' \
'(-p)--parents[append source path to dest]' \
'*:files:_files'
else
_arguments '*:destination:_files'
fi
;;
(diff)
_arguments $includeExclude \
'*-r[revision]:revision:($tags)' \
'*--rev[revision]:revision:($tags)' \
'(--text)-a[treat all files as text]' \
'(-a)--text[treat all files as text]' \
'*:file:_files'
;;
Michael Gebetsroither
added st as alias for status in zsh_completition
r1544 (status|st)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'(--no-status)-n[hide status prefix]' \
'(-n)--no-status[hide status prefix]' \
'(--print0)-0[end filenames with NUL, for use with xargs]' \
'(-0)--print0[end filenames with NUL, for use with xargs]' \
'(--modified)-m[show only modified files]' \
'(-m)--modified[show only modified files]' \
'(--added)-a[show only added files]' \
'(-a)--added[show only added files]' \
'(--removed)-r[show only removed files]' \
'(-r)--removed[show only removed files]' \
'(--unknown)-u[show only unknown files]' \
'(-u)--unknown[show only unknown files]' \
'*:search pattern, then files:_files'
;;
(revert)
Steve Borho
zsh completion improvements....
r1484 addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"})
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 _arguments \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '(--rev)-r[revision to revert to]:revision:($tags)' \
'(-r)--rev[revision to revert to]:revision:($tags)' \
'(--nonrecursive)-n[do not recurse into subdirectories]' \
'(-n)--nonrecursive[do not recurse into subdirectories]' \
'*:file:->modified'
_wanted files expl 'mofified files' compadd -a addedFiles
;;
(commit|ci)
Steve Borho
zsh completion improvements....
r1484 addedFiles=(${(ps:\0:)"$(hg status -0amrn .)"})
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'(--addremove)-A[run addremove during commit]' \
'(-A)--addremove[run addremove during commit]' \
'(--message)-m[use <txt> as commit message]:string:' \
'(-m)--message[use <txt> as commit message]:string:' \
'(--logfile)-l[read commit message from <file>]:.log file:_file -g \*.txt' \
'(-l)--logfile[read commit message from <file>]:.log file:_file -g \*.txt' \
'(--date)-d[record datecode as commit date]:date code:' \
'(-d)--date[record datecode as commit date]:date code:' \
'(--user)-u[record user as commiter]:user:' \
'(-u)--user[record user as commiter]:user:' \
'*:file:->modified'
_wanted files expl 'mofified files' compadd -a addedFiles
Steve Borho
zsh completion function for hg
r1362 ;;
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 (cat)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments $includeExclude \
'(--output)-o[print output to file with formatted name]:filespec:' \
'(-o)--output[print output to file with formatted name]:filespec:' \
'(--rev)-r[revision]:revision:($tags)' \
'(-r)--rev[revision]:revision:($tags)' \
'*:file:_files'
;;
(annotate)
_arguments $includeExclude \
'(--rev)-r[annotate the specified revision]:revision:($tags)' \
'(-r)--rev[annotate the specified revision]:revision:($tags)' \
'(--text)-a[treat all files as text]' \
'(-a)--text[treat all files as text]' \
'(--user)-u[list the author]' \
'(-u)--user[list the author]' \
'(--changeset)-c[list the changeset]' \
'(-c)--changeset[list the changeset]' \
'(--number)-n[list the revision number (default)]' \
'(-n)--number[list the revision number (default)]' \
'*:files:_files'
;;
(grep)
_arguments $includeExclude \
'*-r[search in given revision range]:revision:($tags)' \
'*--rev[search in given revision range]:revision:($tags)' \
'--all[print all revisions with matches]' \
'(-print0)-0[end filenames with NUL, for use with xargs]' \
'(-0)--print0[end filenames with NUL, for use with xargs]' \
'(--ignore-case)-i[ignore case when matching]' \
'(-i)--ignore-case[ignore case when matching]' \
'(--files-with-matches)-l[print names of files and revs that match]' \
'(-l)--files-with-matches[print names of files and revs that match]' \
'(--line-number)-n[print matching line numbers]' \
'(-n)--line-number[print matching line numbers]' \
'(--user)-u[print user who committed change]' \
'(-u)--user[print user who committed change]' \
'*:search pattern:'
;;
(locate)
_arguments $includeExclude \
'(--rev)-r[search repository as it stood at revision]:revision:($tags)' \
'(-r)--rev[search repository as it stood at revision]:revision:($tags)' \
'(--print0)-0[end filenames with NUL, for use with xargs]' \
'(-0)--print0[end filenames with NUL, for use with xargs]' \
'(--fullpath)-f[print complete paths]' \
'(-f)--fullpath[print complete paths]' \
'*:search pattern:'
;;
(log|history)
_arguments $includeExclude \
'*-r[show the specified revision or range]:revision:($tags)' \
'*--rev[show the specified revision or range]:revision:($tags)' \
'(--no-merges -M --only-merges)-m[show only merge revisions]' \
'(--no-merges -M -m)--only-merges[show only merge revisions]' \
'(--only-merges -m --no-merges)-M[do not show merge revisions]' \
'(--only-merges -m -M)--no-merges[do not show merge revisions]' \
'(--keyword)-k[search for a keyword]:keyword:' \
'(-k)--keyword[search for a keyword]:keyword:' \
'(--branch)-b[show branches]' \
'(-b)--branch[show branches]' \
'(--patch)-p[show patch]' \
'(-p)--patch[show patch]' \
Steve Borho
zsh completion function for hg
r1362 '*:file:_files'
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (update|checkout|co)
_arguments \
'(--branch)-b[checkout the head of a specific branch]' \
'(-b)--branch[checkout the head of a specific branch]' \
'(-C --clean --merge)-m[allow merging of branches]' \
'(-C --clean -m)--merge[allow merging of branches]' \
'(-m --merge --clean)-C[overwrite locally modified files]' \
'(-m --merge -C)--clean[overwrite locally modified files]' \
'*:revision or tag:($tags)'
;;
(tag)
_arguments \
'(--local)-l[make the tag local]' \
'(-l)--local[make the tag local]' \
'(--message)-m[message for tag commit log entry]:string:' \
'(-m)--message[message for tag commit log entry]:string:' \
'(--date)-d[record datecode as commit date]:date code:' \
'(-d)--date[record datecode as commit date]:date code:' \
'(--user)-u[record user as commiter]:user:' \
'(-u)--user[record user as commiter]:user:' \
'*:name, then revision:($tags)'
;;
(clone)
if (( CURRENT == 2 )); then
Steve Borho
zsh: allow 'hg clone' to complete paths listed in ~/.hgrc
r1486 repos=( $(hg paths | sed -e 's/^.*= //') )
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments \
'(--no-update)-U[do not update the new working directory]' \
'(-U)--no-update[do not update the new working directory]' \
'(--ssh)-e[specify ssh command to use]:string:' \
'(-e)--ssh[specify ssh command to use]:string:' \
'--pull[use pull protocol to copy metadata]' \
'--remotecmd[specify hg command to run on the remote side]:remote hg:' \
'*:local repo:_files -/'
Steve Borho
zsh: allow 'hg clone' to complete paths listed in ~/.hgrc
r1486 _wanted source expl 'source repository' compadd -a repos
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 elif (( CURRENT == 3 )); then
_arguments '*:dest repo:_files -/'
fi
;;
(rawcommit)
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 _arguments \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '(--parent)-p[parent revision]:revision:($tags)' \
'(-p)--parent[parent revision]:revision:($tags)' \
'(--date)-d[record datecode as commit date]:date code:' \
'(-d)--date[record datecode as commit date]:date code:' \
'(--user)-u[record user as commiter]:user:' \
'(-u)--user[record user as commiter]:user:' \
'(--message)-m[use <txt> as commit message]:string:' \
'(-m)--message[use <txt> as commit message]:string:' \
'(--logfile)-l[read commit message from <file>]:.log file:_file -g \*.txt' \
'(-l)--logfile[read commit message from <file>]:.log file:_file -g \*.txt' \
'(--files)-F[file list]:file list:_files' \
'(-F)--files[file list]:file list:_files' \
'*:files to commit:_files'
;;
(bundle)
if (( CURRENT == 2 )); then
_arguments '*:changegroup file:_files -g \*.hg'
elif (( CURRENT == 3 )); then
_arguments '*:other repo:_files -/'
fi
;;
(unbundle)
_arguments '*:changegroup .hg file:_files -g \*.hg'
;;
(incoming)
_arguments \
'(--patch)-p[show patch]' \
'(-p)--patch[show patch]' \
'(--no-merges)-M[do not show merge revisions]' \
'(-M)--no-merges[do not show merge revisions]' \
Steve Borho
zsh completion: Added '--newest-first' to incoming, outgoing
r1442 '(--newest-first)-n[show newest record first]' \
'(-n)--newest-first[show newest record first]' \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '*:mercurial repository:_files -/'
;;
(import|patch)
_arguments \
'(--strip)-p[directory strip option for patch (default: 1)]:count:' \
'(-p)--strip[directory strip option for patch (default: 1)]:count:' \
'(--force)-f[skip check for outstanding uncommitted changes]' \
'(-f)--force[skip check for outstanding uncommitted changes]' \
'(--base)-b[base directory to read patches from]:file:_files -W $(hg root) -/' \
'(-b)--base[base directory to read patches from]:file:_files -W $(hg root) -/' \
'*:patch file:_files'
;;
(pull)
repos=( $(hg paths | sed -e 's/^.*= //') )
_arguments \
'(--update)-u[update working directory to tip after pull]' \
'(-u)--update[update working directory to tip after pull]' \
'(--ssh)-e[specify ssh command to use]:ssh command:' \
'(-e)--ssh[specify ssh command to use]:ssh command:' \
'--remotecmd[specify hg command to run on the remote side]:remote hg:' \
'*:local repo:_files -/'
_wanted source expl 'source repository' compadd -a repos
;;
(outgoing)
_arguments \
'(--patch)-p[show patch]' \
'(-p)--patch[show patch]' \
'(--no-merges)-M[do not show merge revisions]' \
'(-M)--no-merges[do not show merge revisions]' \
Steve Borho
zsh completion: Added '--newest-first' to incoming, outgoing
r1442 '(--newest-first)-n[show newest record first]' \
'(-n)--newest-first[show newest record first]' \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '*:local repo:_files -/'
_wanted source expl 'source repository' compadd -a repos
;;
(export)
_arguments \
'(--outout)-o[print output to file with formatted name]:filespec:' \
'(-o)--output[print output to file with formatted name]:filespec:' \
'(--text)-a[treat all files as text]' \
'(-a)--text[treat all files as text]' \
Steve Borho
zsh completion function for hg
r1362 '*:revision:->revs'
_wanted revs expl 'revision or tag' compadd -a tags
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (push)
repos=( $(hg paths | sed -e 's/^.*= //') )
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 _arguments \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '(--force)-f[force push]' \
'(-f)--force[force push]' \
'(--ssh)-e[specify ssh command to use]:ssh command:' \
'(-e)--ssh[specify ssh command to use]:ssh command:' \
'--remotecmd[specify hg command to run on the remote side]:remote hg:' \
'*:local repo:_files -/'
_wanted source expl 'source repository' compadd -a repos
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (serve)
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 _arguments \
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 '(--accesslog)-A[name of access log file]:log file:_files' \
'(-A)--accesslog[name of access log file]:log file:_files' \
'(--errorlog)-E[name of error log file]:log file:_files' \
'(-E)--errorlog[name of error log file]:log file:_files' \
'(--port)-p[listen port]:listen port:' \
'(-p)--port[listen port]:listen port:' \
'(--address)-a[interface address]:interface address:' \
'(-a)--address[interface address]:interface address:' \
'(--name)-n[name to show in web pages]:repository name:' \
'(-n)--name[name to show in web pages]:repository name:' \
'(--templates)-t[web template directory]:template dir:_files -/' \
'(-t)--templates[web template directory]:template dir:_files -/' \
'--style[web template style]:style' \
'--stdio[for remote clients]' \
'(--ipv6)-6[use IPv6 in addition to IPv4]' \
'(-6)--ipv6[use IPv6 in addition to IPv4]'
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (help)
_wanted commands expl 'hg command' compadd -a subcmds
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 (heads)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments \
'(--branches)-b[find branch info]' \
'(-b)--branches[find branch info]'
Steve Borho
zsh completion function for hg
r1362 ;;
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 (paths)
_arguments '*:symbolic name:(default default-push)'
;;
(init)
_arguments '*:new repo directory:_files -/'
;;
(manifest)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments '*:revision:($tags)'
Steve Borho
zsh completion function for hg
r1362 ;;
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 (parents)
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 _arguments '*:revision:($tags)'
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 ;;
Steve Borho
zsh completion function for hg
r1362
Steve Borho
zsh completions: new -M, -m arguments for log, etc.
r1438 (identify|recover|root|undo|view|verify|version|ct|tags)
Steve Borho
zsh completion function for hg
r1362 # no arguments for these commands
;;
Steve Borho
Fix completion function for 'hg pull'. Fix truncation bug and remove tabs.
r1368 (*)
_message "unknown hg command completion: $service"
;;
Steve Borho
zsh completion function for hg
r1362 esac