Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
[PATCH] Update perldoc completion
- X-seq: zsh-workers 30710
- From: Aaron Schrab <aaron@xxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: [PATCH] Update perldoc completion
- Date: Sat, 29 Sep 2012 09:19:30 -0400
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
Starting with perl 5.12, perldoc -v displays documentation on special
variables, not verbose output.  Also the -D option was added to describe
the search for the requested item.
---
 Completion/Unix/Command/_perldoc |   15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/Completion/Unix/Command/_perldoc b/Completion/Unix/Command/_perldoc
index 8c816b5..3e58d5a 100644
--- a/Completion/Unix/Command/_perldoc
+++ b/Completion/Unix/Command/_perldoc
@@ -15,14 +15,15 @@ fi
 _arguments -C -s -S -A "-*" \
   '(- *)-h[print help information]' \
   '(- *)-V[display version information]' \
-  '-v[verbose output]' \
+  '-D[describe search for the item]' \
   '-t[use plain text output instead of nroff]' \
   '-u[show raw Pod source]' \
   '*-m[display entire module]:module:_perl_modules' \
   '-l[display only filename of the module found]' \
   '-F[consider arguments as filenames]' \
-  '(-q)-f+[view documentation for Perl built-in function]:perl builtin function:->perl-builtin-funcs' \
-  '(-f)-q+[search question headings in Perl FAQ]:regular expression' \
+  '(-q -v)-f+[view documentation for Perl built-in function]:perl builtin function:->perl-builtin-funcs' \
+  '(-f -v)-q+[search question headings in Perl FAQ]:regular expression' \
+  '(-f -q)-v+[view documentation for predefined variable]:special variable:->perl-variables' \
   '(-d)-T[send output direct to stdout and not via pager]' \
   '(-T)-d+[specify output file]:output file:_files' \
   '-o+[specify output format]:output format:(man nroff pod rtf text tk xml latex)' \
@@ -54,6 +55,14 @@ case  $state in
 	'files:module or .pod file:_files -g "*.(pod|pm)(-.)"' && ret=0
     fi
   ;;
+
+  perl-variables)
+    : ${(A)_perl_special_vars:=${(u)${${${(M)${(f)"$(_call_program variables \
+      perldoc -u perlvar 2>/dev/null)"}:#\=item [\$\@\%]*}#* }:#\$<I*}}}
+
+    _wanted variables expl 'perl special variable' compadd "$@" -a - \
+	_perl_special_vars && ret=0
+  ;;
 esac
 
 return ret
-- 
1.7.10.4
Messages sorted by:
Reverse Date,
Date,
Thread,
Author