Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: php completion update
- X-seq: zsh-workers 21343
- From: Doug Kearns <dougkearns@xxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: PATCH: php completion update
- Date: Wed, 15 Jun 2005 23:25:02 +1000
- Mail-followup-to: zsh-workers@xxxxxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
This updates php cli completion for versions 4.3.x and 5.0.x and adds
better directive and extension completions.
Regards,
Doug
Index: Completion/Unix/Command/_php
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_php,v
retrieving revision 1.1
diff -u -r1.1 _php
--- Completion/Unix/Command/_php 16 Apr 2004 15:50:02 -0000 1.1
+++ Completion/Unix/Command/_php 15 Jun 2005 13:20:01 -0000
@@ -1,37 +1,67 @@
#compdef php
-# PHP 4.3.6RC2 (cli) (built: Apr 9 2004 00:14:04)
+# PHP 5.0.4 (cli)
+# PHP 4.3.11 (cli)
-local curcontext="$curcontext" line state
+local curcontext="$curcontext" line state expl
typeset -A opt_args
-_arguments -S \
- {-a,--interactive}'[run interactively]' \
- {-c,--php-ini}'[look for php.ini file in the specified directory]:directory:_files -/' \
- {-n,--no-php-ini}'[no php.ini file will be used]' \
- {-d,--define}"[define INI entry]:configuration directive:->ini" \
- {-e,--profile-info}'[generate extended information for debugger/profiler]' \
- '(- *)'{-h,--help}'[display help information]' \
- '(- *)'{-i,--info}'[PHP information]' \
- '(-)'{-l,--syntax-check}'[syntax check only (lint)]' \
- '(- *)'{-m,--modules}'[show compiled in modules]' \
- '(1 -l --syntax-check -s --syntax-highlight -w --strip)'{-r,--run}'[run the specified PHP code without using script tags <?..?>]:PHP code:'\
- '(-)'{-s,--syntax-highlight}'[display colour syntax highlighted source]' \
- '(- *)'{-v,--version}'[display version information]' \
- '(-)'{-w,--strip}'[display source with stripped comments and whitespace]' \
- {-z,--zend-extension}'[load specified Zend extension]:extension file:_files' \
- '(-)1:PHP file:_files -g "*.php(-.)"' \
- '*:script argument:_files' && return
+local -a args
+local exclusions php_files=':PHP file:_files -g "*.php(-.)"'
+
+if _pick_variant php5=PHP\ 5 php4 --version; then
+ exclusions="-B --process-begin -R --process-code -F --process-file -E --process-end"
+ args=(
+ '(-B --process-begin -f --file -r --run 1)'{-B,--process-begin}'[run specified PHP code before processing input lines]:PHP code:'
+ '(-R --process-code -F --process-file -f --file -r --run 1)'{-R,--process-code}'[run specified PHP code for every input line]:PHP code:'
+ '(-F --process-file -R --process-code -f --file -r --run 1)'{-F,--process-file}'[parse and execute specified file for every input line]'$php_files
+ '(-E --process-end -f --file -r --run 1)'{-E,--process-end}'[run specified PHP code after processing all input lines]:PHP code:'
+ '(-H --hide-args)'{-H,--hide-args}'[hide any passed arguments from external tools]'
+ )
+fi
+
+args+=(
+ '(-a --interactive)'{-a,--interactive}'[run interactively]'
+ '(-c --php-ini -n --no-php-ini)'{-c,--php-ini}'[look for php.ini file in the specified directory]:INI file or directory:_files -g "*.ini(-.)"'
+ '(-c --php-ini -n --no-php-ini)'{-n,--no-php-ini}'[no php.ini file will be used]'
+ '(-d --define)'{-d,--define}'[define INI entry]:configuration directive:->directive'
+ '(-e --profile-info)'{-e,--profile-info}'[generate extended information for debugger/profiler]'
+ "(-f --file -r --run $exclusions 1)"{-f,--file}'[parse specified file]'$php_files
+ '(- 1 *)'{-h,--help}'[display help information]'
+ '(- 1 *)'{-i,--info}'[PHP information]'
+ '(- *)'{-l,--syntax-check}'[syntax check only (lint)]'
+ '(- 1 *)'{-m,--modules}'[show compiled in modules]'
+ "(-r --run -f --file $exclusions -l --syntax-check -s --syntax-highlight -w --strip 1)"{-r,--run}'[run the specified PHP code without using script tags <?..?>]:PHP code:'\
+ '(- 1 *)'{-s,--syntax-highlight}'[display colour syntax highlighted source]'
+ '(- 1 *)'{-v,--version}'[display version information]'
+ '(- *)'{-w,--strip}'[display source with stripped comments and whitespace]'
+ '(-z --zend-extension)'{-z,--zend-extension}'[load specified Zend extension]:extension file:->extension'
+ '(-)1'$php_files
+ '(-)*::script argument: _normal'
+)
+
+_arguments -C -s -S -A "-*" "$args[@]" && return 0
case $state in
- ini)
+ directive)
+ local -a directives
+ local code='foreach (ini_get_all() as $k => $v) { echo "$k\n"; }'
+ directives=( $(_call_program directives $words[1] -r ${(q)code} 2>/dev/null) )
if compset -P '*='; then
- _default
+ _default && return 0
else
- _message -e configuration-directives 'configuration directive'
+ _wanted directives expl 'configuration directive' compadd -qS= -a directives && return 0
fi
- ;;
+ ;;
+ extension)
+ local -a paths
+ if [[ -r /etc/ld.so.conf ]]; then
+ paths=( ${(f)"$(</etc/ld.so.conf)"} )
+ else
+ paths=(.)
+ fi
+ _wanted extensions expl 'zend extension' _files -W paths -g "*.so(|.*)(-.)" && return 0
+ ;;
esac
return 1
-
Messages sorted by:
Reverse Date,
Date,
Thread,
Author