[LyX/master] * bash_completion from Hernan Solari

Pavel Sanda sanda at lyx.org
Fri Apr 1 20:21:20 UTC 2022


commit d1f8c48d1b27c0590037d3fd715d0ede6df44d4d
Author: Pavel Sanda <sanda at lyx.org>
Date:   Fri Apr 1 22:56:57 2022 +0200

    * bash_completion from Hernan Solari
---
 lib/scripts/bash_completion |   41 ++++++++++++++++++++++++++++++++++++++---
 1 files changed, 38 insertions(+), 3 deletions(-)

diff --git a/lib/scripts/bash_completion b/lib/scripts/bash_completion
index 4d7b914..4e08fc0 100644
--- a/lib/scripts/bash_completion
+++ b/lib/scripts/bash_completion
@@ -34,8 +34,14 @@ _lyx()
 	fi
 
 	case "$last" in
-	--export|-e)
-		_filedir '+(pdf[1234]|PDF[1234]|pdf|PDF|ps|PS|xhtml|XHTML)';;
+		# check for export fmt. Short list presented
+	--export|-e|-E|--export-to)
+		COMPREPLY=( $(compgen -W 'latex pdflatex luatex xetex xhtml' -- $cur) );;
+	--import|-i)
+		# check for import format. Short list presented
+		# (-i | --import) requireas a second input _filedir 
+		# must point to *tex | *text | *xhtml depending on choice
+		COMPREPLY=( $(compgen -W 'latex text luatex xetex xhtml' -- $cur) );;
 	-dbg)
 		# check for multiple debug commands
 		if [[ $cur == *,* ]]; then #
@@ -46,6 +52,34 @@ _lyx()
 		fi;;
 	--force-overwrite|-f)
 		COMPREPLY=( $( compgen -W 'all main none' -- $cur ) );;
+
+	latex|xetex|luatex|text|xhtml)
+		# we need to know if previous token was -i or -E
+		if [[ $COMP_CWORD > 2 ]]; then
+			prev=${COMP_WORDS[$(($COMP_CWORD - 2))]}
+		else
+			prev=''
+		fi
+		if (test $prev=="-i")|(test $prev=="-E"); then
+			case $last in
+				text)
+					_filedir '@(txt)' ;;
+				latex|luatex|xetex)
+					_filedir '@(tex)' ;;
+				xhtml)
+					_filedir '@(xhtml)' ;;
+			esac
+		fi;;
+	pdflatex)
+		# we need to know if previous token was -E
+		if [[ $COMP_CWORD > 2 ]]; then
+			prev=${COMP_WORDS[$(($COMP_CWORD - 2))]}
+		else
+			prev=''
+		fi
+		if test $prev == "-E"; then
+					_filedir '@(pdf)' 
+		fi;;
 	*)
           case "$cur" in
           -*)
@@ -58,7 +92,7 @@ _lyx()
 	  
           *)
 		# LyX files
-                _filedir '@(lyx)' 
+		_filedir '@(lyx)' 
           esac
 	esac
 
@@ -66,3 +100,4 @@ _lyx()
 	test $g -eq 0 && shopt -u extglob
 
 } && complete -F _lyx $filenames lyx
+


More information about the lyx-cvs mailing list