diff options
Diffstat (limited to 'completions/java')
-rw-r--r-- | completions/java | 154 |
1 files changed, 77 insertions, 77 deletions
diff --git a/completions/java b/completions/java index 89d207d2..d0f70ae6 100644 --- a/completions/java +++ b/completions/java @@ -13,15 +13,15 @@ _java_find_classpath() local i # search first in current options - for (( i=1; i < cword; i++ )); do - if [[ "${words[i]}" == -@(cp|classpath) ]]; then - classpath=${words[i+1]} + for ((i = 1; i < cword; i++)); do + if [[ ${words[i]} == -@(cp|classpath) ]]; then + classpath=${words[i + 1]} break fi done # default to environment - [[ -z $classpath ]] && classpath=$CLASSPATH + [[ ! -v classpath ]] && classpath=${CLASSPATH-} # default to current directory [[ -z $classpath ]] && classpath=. @@ -33,15 +33,15 @@ _java_find_sourcepath() local i # search first in current options - for (( i=1; i < cword; i++ )); do - if [[ "${words[i]}" == -sourcepath ]]; then - sourcepath=${words[i+1]} + for ((i = 1; i < cword; i++)); do + if [[ ${words[i]} == -sourcepath ]]; then + sourcepath=${words[i + 1]} break fi done # default to classpath - if [[ -z $sourcepath ]]; then + if [[ ! -v sourcepath ]]; then local classpath _java_find_classpath sourcepath=$classpath @@ -60,27 +60,27 @@ _java_classes() cur=${cur//.//} # parse each classpath element for classes for i in ${classpath//:/ }; do - if [[ "$i" == *.@(jar|zip) && -r $i ]]; then + if [[ $i == *.@(jar|zip) && -r $i ]]; then if type zipinfo &>/dev/null; then - COMPREPLY+=( $(zipinfo -1 "$i" "$cur*" 2>/dev/null | \ - command grep '^[^$]*\.class$') ) + COMPREPLY+=($(zipinfo -1 "$i" "$cur*" 2>/dev/null | + command grep '^[^$]*\.class$')) elif type unzip &>/dev/null; then # Last column, between entries consisting entirely of dashes - COMPREPLY+=( $(unzip -lq "$i" "$cur*" 2>/dev/null | \ + COMPREPLY+=($(unzip -lq "$i" "$cur*" 2>/dev/null | awk '$NF ~ /^-+$/ { flag=!flag; next }; - flag && $NF ~ /^[^$]*\.class/ { print $NF }') ) + flag && $NF ~ /^[^$]*\.class/ { print $NF }')) elif type jar &>/dev/null; then - COMPREPLY+=( $(jar tf "$i" "$cur" | \ - command grep '^[^$]*\.class$') ) + COMPREPLY+=($(jar tf "$i" "$cur" | + command grep '^[^$]*\.class$')) fi elif [[ -d $i ]]; then COMPREPLY+=( $(compgen -d -- "$i/$cur" | command sed -e "s|^$i/\(.*\)|\1.|") - $(compgen -f -X '!*.class' -- "$i/$cur" | \ - command sed -e '/\$/d' -e "s|^$i/||") + $(compgen -f -X '!*.class' -- "$i/$cur" | + command sed -e '/\$/d' -e "s|^$i/||") ) - [[ $COMPREPLY == *.class ]] || compopt -o nospace + [[ ${COMPREPLY-} == *.class ]] || compopt -o nospace # FIXME: if we have foo.class and foo/, the completion # returns "foo/"... how to give precedence to files @@ -88,10 +88,12 @@ _java_classes() fi done - # remove class extension - COMPREPLY=( ${COMPREPLY[@]%.class} ) - # convert path syntax to package syntax - COMPREPLY=( ${COMPREPLY[@]//\//.} ) + if ((${#COMPREPLY[@]} != 0)); then + # remove class extension + COMPREPLY=(${COMPREPLY[@]%.class}) + # convert path syntax to package syntax + COMPREPLY=(${COMPREPLY[@]//\//.}) + fi } # available packages completion @@ -107,16 +109,18 @@ _java_packages() # parse each sourcepath element for packages for i in ${sourcepath//:/ }; do if [[ -d $i ]]; then - COMPREPLY+=( $(command ls -F -d $i/$cur* 2>/dev/null | \ - command sed -e 's|^'$i'/||') ) + COMPREPLY+=($(command ls -F -d $i/$cur* 2>/dev/null | + command sed -e 's|^'$i'/||')) fi done - # keep only packages - COMPREPLY=( $(tr " " "\n" <<<"${COMPREPLY[@]}" | command grep "/$") ) - # remove packages extension - COMPREPLY=( ${COMPREPLY[@]%/} ) - # convert path syntax to package syntax - cur=${COMPREPLY[@]//\//.} + if ((${#COMPREPLY[@]} != 0)); then + # keep only packages + COMPREPLY=($(tr " " "\n" <<<"${COMPREPLY[@]}" | command grep "/$")) + # remove packages extension + COMPREPLY=(${COMPREPLY[@]%/}) + # convert path syntax to package syntax + cur="${COMPREPLY[*]//\//.}" + fi } # java completion @@ -128,9 +132,9 @@ _java() local i - for ((i=1; i < $cword; i++)); do - case ${words[$i]} in - -cp|-classpath) + for ((i = 1; i < cword; i++)); do + case ${words[i]} in + -cp | -classpath) ((i++)) # skip the classpath string. ;; -*) @@ -147,7 +151,7 @@ _java() case $cur in # standard option completions -verbose:*) - COMPREPLY=( $(compgen -W 'class gc jni' -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'class gc jni' -- "${cur#*:}")) return ;; -javaagent:*) @@ -171,56 +175,56 @@ _java() return ;; -Xcheck:*) - COMPREPLY=( $(compgen -W 'jni' -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'jni' -- "${cur#*:}")) return ;; -Xgc:*) - COMPREPLY=( $(compgen -W 'singlecon gencon singlepar genpar' \ - -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'singlecon gencon singlepar genpar' \ + -- "${cur#*:}")) return ;; -Xgcprio:*) - COMPREPLY=( $(compgen -W 'throughput pausetime deterministic' \ - -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'throughput pausetime deterministic' \ + -- "${cur#*:}")) return ;; - -Xloggc:*|-Xverboselog:*) + -Xloggc:* | -Xverboselog:*) cur=${cur#*:} _filedir return ;; -Xshare:*) - COMPREPLY=( $(compgen -W 'auto off on' -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'auto off on' -- "${cur#*:}")) return ;; -Xverbose:*) - COMPREPLY=( $(compgen -W 'memory load jni cpuinfo codegen opt - gcpause gcreport' -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'memory load jni cpuinfo codegen opt + gcpause gcreport' -- "${cur#*:}")) return ;; -Xverify:*) - COMPREPLY=( $(compgen -W 'all none remote' -- "${cur#*:}") ) + COMPREPLY=($(compgen -W 'all none remote' -- "${cur#*:}")) return ;; # the rest that we have no completions for - -D*|-*:*) + -D* | -*:*) return ;; esac case $prev in - -cp|-classpath) + -cp | -classpath) _java_path return ;; esac - if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '$(_parse_help "$1" -help)' -- "$cur") ) - [[ $cur == -X* ]] && \ - COMPREPLY+=( $(compgen -W '$(_parse_help "$1" -X)' -- "$cur") ) + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -help)' -- "$cur")) + [[ $cur == -X* ]] && + COMPREPLY+=($(compgen -W '$(_parse_help "$1" -X)' -- "$cur")) else - if [[ "$prev" == -jar ]]; then + if [[ $prev == -jar ]]; then # jar file completion _filedir '[jw]ar' else @@ -229,11 +233,11 @@ _java() fi fi - [[ $COMPREPLY == -*[:=] ]] && compopt -o nospace + [[ ${COMPREPLY-} == -*[:=] ]] && compopt -o nospace __ltrim_colon_completions "$cur" } && -complete -F _java java + complete -F _java java _javadoc() { @@ -241,42 +245,38 @@ _javadoc() _init_completion || return case $prev in - -overview|-helpfile) + -overview | -helpfile) _filedir '?(x)htm?(l)' return ;; - -doclet|-exclude|-subpackages|-source|-locale|-encoding|-windowtitle|\ - -doctitle|-header|-footer|-top|-bottom|-group|-noqualifier|-tag|\ - -charset|-sourcetab|-docencoding) + -doclet | -exclude | -subpackages | -source | -locale | -encoding | -windowtitle | \ + -doctitle | -header | -footer | -top | -bottom | -group | -noqualifier | -tag | \ + -charset | -sourcetab | -docencoding) return ;; -stylesheetfile) _filedir css return ;; - -d|-link|-linkoffline) + -d | -link | -linkoffline) _filedir -d return ;; - -classpath|-cp|-bootclasspath|-docletpath|-sourcepath|-extdirs|\ - -excludedocfilessubdir) + -classpath | -cp | -bootclasspath | -docletpath | -sourcepath | -extdirs | \ + -excludedocfilessubdir) _java_path return ;; - -helpfile) - _filedir - return - ;; esac # -linkoffline takes two arguments - if [[ $cword -gt 2 && ${words[$cword-2]} == -linkoffline ]]; then + if [[ $cword -gt 2 && ${words[cword - 2]} == -linkoffline ]]; then _filedir -d return fi - if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '$(_parse_help "$1" -help)' -- "$cur") ) + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -help)' -- "$cur")) else # source files completion _filedir java @@ -284,7 +284,7 @@ _javadoc() _java_packages fi } && -complete -F _javadoc javadoc + complete -F _javadoc javadoc _javac() { @@ -296,13 +296,13 @@ _javac() _filedir -d return ;; - -cp|-classpath|-bootclasspath|-sourcepath|-extdirs) + -cp | -classpath | -bootclasspath | -sourcepath | -extdirs) _java_path return ;; esac - if [[ $cur == -+([a-zA-z0-9-_]):* ]]; then + if [[ $cur == -+([a-zA-Z0-9-_]):* ]]; then # Parse required options from -foo:{bar,quux,baz} local helpopt=-help [[ $cur == -X* ]] && helpopt=-X @@ -311,23 +311,23 @@ _javac() # the others. local opts=$("$1" $helpopt 2>&1 | command sed -e 's/-g:none/-g:{none}/' -ne \ "s/^[[:space:]]*${cur%%:*}:{\([^}]\{1,\}\)}.*/\1/p") - COMPREPLY=( $(compgen -W "${opts//,/ }" -- "${cur#*:}") ) + COMPREPLY=($(compgen -W "${opts//,/ }" -- "${cur#*:}")) return fi - if [[ "$cur" == -* ]]; then - COMPREPLY=( $(compgen -W '$(_parse_help "$1" -help)' -- "$cur") ) - [[ $cur == -X* ]] && \ - COMPREPLY+=( $(compgen -W '$(_parse_help "$1" -X)' -- "$cur") ) + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1" -help)' -- "$cur")) + [[ $cur == -X* ]] && + COMPREPLY+=($(compgen -W '$(_parse_help "$1" -X)' -- "$cur")) else # source files completion _filedir java fi - [[ $COMPREPLY == -*[:=] ]] && compopt -o nospace + [[ ${COMPREPLY-} == -*[:=] ]] && compopt -o nospace __ltrim_colon_completions "$cur" } && -complete -F _javac javac + complete -F _javac javac # ex: filetype=sh |