# lyx(1) completion
-# Modified inkscape template of allali@univ-mlv.fr
-# by cengique@users.sf.net
+# Copyleft 2010 Cengiz Gunay <cengique@users.sf.net>
have lyx &&
_lyx()
{
local cur g last
+ # turn on extglob
+ shopt -q extglob && g=1
+ test $g -eq 0 && shopt -s extglob
+
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
+ local dbg_cmds=( "none info init key gui \
+ parser lyxrc kbmap latex mathed font tclass \
+ lyxvc lyxserver action lyxlex depend insets \
+ files workarea clipboard graphics changes \
+ external painting debug any undo scrolling \
+ macros rtl locale selection find" )
+
+ # The below code would get rid of the hardcoding, but could be fragile:
+ # local dbg_cmds=$( lyx -dbg | awk '{print $2}' | tail -n +2 )
+ # If it is ever used, please put a comment in the code for -dbg output
+ # about breaking auto completion if the format is changed.
+
+ #echo "cmds: '$dbg_cmds'"
+
if [[ $COMP_CWORD > 1 ]]; then
last=${COMP_WORDS[$(($COMP_CWORD - 1))]}
else
last=''
fi
- # turn on extglob
- shopt -q extglob && g=1
- test $g -eq 0 && shopt -s extglob
-
- if [[ $last == +(--export|-e) ]]; then #'+(--export|-e)'
- _filedir '+(pdf[1234]|PDF[1234]|pdf|PDF|ps|PS|xhtml|XHTML)'
- else
- case "$cur" in
- -*)
+ case "$last" in
+ --export|-e)
+ _filedir '+(pdf[1234]|PDF[1234]|pdf|PDF|ps|PS|xhtml|XHTML)';;
+ -dbg)
+ # check for multiple debug commands
+ if [[ $cur == *,* ]]; then #
+ COMPREPLY=( $( compgen -W '$dbg_cmds' \
+ -P ${cur%,*}, -- ${cur##*,} ) )
+ else
+ COMPREPLY=( $( compgen -W '$dbg_cmds' -- $cur ) )
+ fi;;
+ --force-overwrite|-f)
+ COMPREPLY=( $( compgen -W 'all main none' -- $cur ) );;
+ *)
+ case "$cur" in
+ -*)
+ # LyX command line options
COMPREPLY=( $( compgen -W '-help -userdir -sysdir \
-geometry -dbg -x --execute -e --export \
- -i --import -version -batch' -- $cur ) ) ;;
- *)
+ -i --import -version -batch -E --export-to \
+ -f --force-overwrite -n --no-remote \
+ -r --remote ' -- $cur ) ) ;;
+
+ *)
+ # LyX files
_filedir '@(lyx)'
- esac
- fi
+ esac
+ esac
# turn it off if necessary
test $g -eq 0 && shopt -u extglob
}
-[ "${have:-}" ] && complete -F _lyxz $filenames lyx
+[ "${have:-}" ] && complete -F _lyx $filenames lyx