Improve and fix zsh completion

This commit is contained in:
Oliver Kiddle 2019-10-26 00:15:36 +02:00
parent a3e4bce386
commit 48c5e9e23f

View File

@ -2,51 +2,54 @@
local -a all_opts local -a all_opts
all_opts=( all_opts=(
'(-c --config-dir=DIR)'{-c,--config-dir}'[Path to config directory]:config directory:_files -/' '(-c --config-dir)'{-c,--config-dir=}'[specify path to config directory]:config directory:_files -/'
'(-d --data-dir=DIR)'{-d,--data-dir}'[Path to data directory]:data directory:_files -/' '(-d --data-dir)'{-d,--data-dir=}'[specify path to data directory]:data directory:_files -/'
'--cache-dir=DIR[Path to cache directory]:cache directory:_files -/' '--cache-dir=[specify path to cache directory]:cache directory:_files -/'
'(-p --plugins-dir=DIR)'{-p,--plugins-dir}'[Path to plugins directory]:plugins directory:_files -/' '(-p --plugins-dir)'{-p,--plugins-dir=}'[specify path to plugins directory]:plugins directory:_files -/'
'(-e --reparent=XID)'{-e,--reparent}'[Reparents to window specified by XID (X11)]:xid' '(-e --reparent)'{-e,--reparent=}'[reparent to window specified by XID (X11)]: :_x_window'
'(-w --password=password)'{-w,--password}'[Document password]:password' '(-w --password)'{-w,--password=}'[specify a password for the document]:password'
'(-P --page=page)'{-p,--page}'[Page number to go to]:page number' '(-P --page)'{-p,--page=}'[open the document at the given page number]:page number'
'(-l --log-level=level)'{-l,--log-level}'[Log level]:level:(error warning info debug)' '(-l --log-level)'{-l,--log-level=}'[set log level]:level:(error warning info debug)'
'(-x --snyctex-editor-command=cmd)'{-x,--synxtec-editor-command}'[Synctex editor (forwarded to the synctex command)]:command' '(-x --snyctex-editor-command)'{-x,--synxtec-editor-command=}'[specify synctex editor (forwarded to the synctex command)]:command'
'--synctex-forward=position[Move to given synctex position]:position' '--synctex-forward=[move to the given position]:position'
'--synctex-pid=pid[Highlight position in given process]:pid' '--synctex-pid=[highlight position in given process]:pid:_pids'
'--mode=mode[Start in a non-default mode]:mode:(presentation fullscreen)' '--mode[start in a non-default mode]:mode:(presentation fullscreen)'
'--fork[Fork into the background]' '--fork[fork into the background]'
'-h --help[Show help message]' '(- :)'{-h,--help}'[show help message]'
'-v --version[Print version information]' '(- :)'{-v,--version}'[print version information]'
'*:file:->files' '*:file:->files'
) )
local context state state_descr line local curcontext="$curcontext" state state_descr line ret=1
typeset -A opt_args typeset -A opt_args
_arguments -S "$all_opts[@]" && return 0 _arguments -C -s -S "$all_opts[@]" && ret=0
local exts local PLUGIN
local -a exts
for PLUGIN in @PLUGINDIR@/lib*.so; do for PLUGIN in @PLUGINDIR@/lib*.so; do
case ${PLUGIN##*/} in case ${PLUGIN##*/} in
libpdf-poppler.so) libpdf-poppler.so)
exts="$exts|pdf|PDF" exts+=( pdf PDF )
;; ;;
libpdf-mupdf.so) libpdf-mupdf.so)
exts="$exts|pdf|PDF|epub|oxps" exts+=( pdf PDF epub oxps )
;; ;;
libps.so) libps.so)
exts="$exts|ps|eps|epsi|epsf" exts+=( ps eps epsi epsf )
;; ;;
libdjvu.so) libdjvu.so)
exts="$exts|djvu|djv" exts+=( djvu djv )
;; ;;
libcb.so) libcb.so)
exts="$exts|cb7|cbr|cbz|cbt|rar|zip|7z|tar" exts+=( cb7 cbr cbz cbt rar zip 7z tar )
;; ;;
esac esac
done done
case $state in case $state in
(files) (files)
_files -g "*.($exts)" _wanted files expl file _files -g "*.(${(j:|:)exts:-pdf})(-.)" && ret=0
;; ;;
esac esac
return ret