proveのzsh補完
コード
"prove -vb"みたいに、1文字オプションを連続で入力した際でも
補完を効かせるには _argumentsに "-s"オプションを指定すればよいみたい。
意味は "--"で始まらないオプションを 1文字とみなすというもの.
#compdef prove typeset -A opt_args local context state line _arguments -s -C \ '(-v --verbose)'{-v,--verbose}'[Print all test lines]' \ '(-l --lib)'{-l,--lib}'[Add "lib"to path for your tests]' \ '(-b --blib)'{-b,--blib}'[Add "blib/lib" and "blib/arch" to path for your test]' \ '(-s --shuffle)'{-s,--shuffle}'[Run the tests in random order]' \ '(-c --color --nocolor)'{-c,--color}'[Colored test output]' \ '(-c --color --nocolor)--nocolor[Do not color test output]' \ '(--count --nocount)--count[Show the X/Y test count when not verbose]' \ '(--count --nocount)--nocount[Disable the X/Y test count]' \ '(-D --dry)'{-D,--dry}'[Dry run]' \ '(-f --failures)'{-f,--failures}'[Show failed tests]' \ '(-o --comments)'{-o,--comments}'[Show comments]' \ '(--ignore-exit)--ignore-exit[Ignore exit status from test scripts]' \ '(-m --merge)'{-m,--merge}'[Merge test STDERR of scripts with their STDOUT]' \ '(-r --recurse)'{-r,--recurse}'[Recursively descend into directories]' \ '(--reverse)--reverse[Run the tests in reverse order]' \ '(-q --quiet)'{-q,--quiet}'[Suppress some test output while running tests]' \ '(-Q --QUIET)'{-Q,--QUIET}'[Only print summary results]' \ '(-p --parse)'{-p,--parse}'[Show full list of TAP parse errors, if any]' \ '(--directives)--directives[Only show results with TODO or SKIP directives]' \ '(--timer)--timer[Print elapsed time after each test]' \ '(--trap)--trap[Trap Ctrl-C and prnt summary on interrupt]' \ '(--normalize)--normalize[Normalize TAP output in verbose output]' \ '(-T)-T[Enable tainting checks]' \ '(-t)-t[Enable tainting warnings]' \ '(-W)-W[Enable fatal warnings]' \ '(-w)-w[Enable warnings]' \ '(-)'{-h,--help}'[Display this help]' \ '(-)-?[Display this help]' \ '(-H --man)'{-H,--man}'[Longer manpage for prove]' \ '(--norc)--norc[Do not process default .proverc]' \ '*-I[Library paths to include]:libpath:_files -/' \ '*-P[Load plugin]' \ '*-M-[Load a module]:module:_perl_modules -S= -q' \ '(-e --exec)'{-e,--exec}'[Interpreter to run the tests]' \ '(--ext)--ext[Set the extension for tests]' \ '(--harness)--harness[Define test harness to use]' \ '(--formatter)--formatter[Result formatter to use]' \ '(--source)--source[Load and/or configure a SourceHandler]' \ '(-a --archive)'{-a,--archive}'[Store the resulting TAP in an archive file]:archive:_files' \ '(-j --jobs)'{-j,--jobs}'[Run N test jobs in parallel]' \ '(--state)--state=[Control prove persistent state]' \ '(--rc)--rc=[Process options from rcfile]' \ '(--rules)--rules[rules for parallel vs sequential processing]' \ '(1 *): :_files' && return 0 # 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