Files
zsh-completions/src/_cap
T
Aaron Schrab 3f55429b0e Move modelines to end of file
Having a vim modeline or emacs local variable line somewhere in the
middle of the file isn't really helpful.  By default, vim will only
check the first and last 5 lines of a file for a modeline (assuming the
modeline option is enabled).  Emacs is even more strict about the type
of local variable line that was in use, it will only check the first
line of the file or the second line if the first line specifies a script
interpreter (which isn't the case here).

Move the vim modeline to the end of the file so that it can actually be
found by vim but is out of the way for editing.  For emacs more work is
required, convert that to the more verbose Local Variables syntax which
emacs will look for starting 3000 characters from the end of the file.

Also there is no zsh mode for emacs (according to
zsh-users/zsh-completions#75), use the "Shell-Script" mode instead.
This seems to automatically detect that the files are for zsh.

I'm not an emacs user, so I haven't tested that portion much.  But, this
does at least improve the syntax highlighting there.
2012-08-23 11:18:49 -04:00

57 lines
2.2 KiB
Bash

#compdef cap
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for Capistrano (http://capify.org).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Bruno Michel (https://github.com/nono)
#
# ------------------------------------------------------------------------------
local curcontext="$curcontext" state line cmds ret=1
_arguments -C \
{-d,--debug}'[Prompts before each remote command execution]' \
{-e,--explain}'[Displays help (if available) for the task]:task' \
{-F,--default-config}'[Always use default config, even with -f]' \
{-f,--file}'[A recipe file to load. May be given more than once]:file:_files' \
{-H,--long-help}'[Explain these options and environment variables]' \
{-h,--help}'[Display this help message]' \
{-l,--logger}'[Choose logger method. STDERR used by default]:file:_files' \
{-n,--dry-run}'[Prints out commands without running them]' \
{-p,--password}'[Immediately prompt for the password]' \
{-q,--quiet}'[Make the output as quiet as possible]' \
{-r,--preserve-roles}'[Preserve task roles]' \
{-S,--set-before}'[Set a variable before the recipes are loaded]:variable' \
{-s,--set}'[Set a variable after the recipes are loaded]:variable' \
{-T,--tasks}'[List all tasks (matching optional PATTERN) in the loaded recipe files]:pattern' \
{-t,--tool}'[Abbreviates the output of -T for tool integration]' \
{-V,--version}'[Display the Capistrano version, and exit]' \
{-v,--verbose}'[Be more verbose. May be given more than once]' \
{-X,--skip-system-config}'[Do not load the system config file (capistrano.conf)]' \
{-x,--skip-user-config}'[Do not load the user config file (.caprc)]' \
'*: :->cmds' && ret=0
case $state in
cmds)
cmds=( ${(f)"$(_call_program commands cap -T 2> /dev/null | sed -e '/ # /!d; s/:/\\:/g; s/cap \([A-Za-z0-9\\:_-]*\) .*# /\1:/')"} )
_describe -t commands 'cap command' cmds && ret=0
;;
esac
return ret
# Local Variables:
# mode: Shell-Script
# sh-indentation: 2
# indent-tabs-mode: nil
# sh-basic-offset: 2
# End:
# vim: ft=zsh sw=2 ts=2 et