aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/bash_completion/pdextended119
1 files changed, 119 insertions, 0 deletions
diff --git a/scripts/bash_completion/pdextended b/scripts/bash_completion/pdextended
new file mode 100644
index 00000000..ba940491
--- /dev/null
+++ b/scripts/bash_completion/pdextended
@@ -0,0 +1,119 @@
+#
+# bash_completion file for Pd-extended
+#
+# Save as: /etc/bash_completion.d/pd-extended or ~/.bash_completion and enjoy
+# never having to type any full command line option anymore. Instead you can
+# press <TAB>.
+#
+# If you want to help, these are fine introductions to bash's completion
+# feature:
+#
+# http://www.debian-administration.org/articles/316
+# http://www.debian-administration.org/articles/317
+#
+# First version written by Frank Barknecht <fbar AT footils.org> Dec 26 2005
+# customized for Pd-extended by Hans-Christoph Steiner <hans@eds.org> 2012-10-17
+
+function _pdextended()
+{
+ local cur prev opts
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+
+ # Pd-extended's options:
+ opts="\
+ -32bit \
+ -alsa \
+ -alsaadd \
+ -alsamidi \
+ -audiobuf \
+ -audiodev \
+ -audioindev \
+ -audiooutdev \
+ -batch \
+ -blocksize \
+ -channels \
+ -d \
+ -extraflags \
+ -font-face \
+ -font-size \
+ -font-weight \
+ -guicmd \
+ -guiport \
+ -help \
+ -helppath \
+ -inchannels \
+ -jack \
+ -lib \
+ -listdev \
+ -mididev \
+ -midiindev \
+ -midioutdev \
+ -noadc \
+ -noaudio \
+ -noautopatch \
+ -nodac \
+ -nogui \
+ -noloadbang \
+ -nomidi \
+ -nomidiin \
+ -nomidiout \
+ -noprefs \
+ -nosleep \
+ -nostartup \
+ -nostdpath \
+ -nrt \
+ -open \
+ -oss \
+ -outchannels \
+ -path \
+ -r \
+ -realtime \
+ -rt \
+ -schedlib \
+ -send \
+ -sleepgrain \
+ -stderr \
+ -stdpath \
+ -verbose \
+ -version"
+
+ # options that require an argument:
+ case "${prev}" in
+ # directory argument:
+ # TODO: colon-separated paths as in "/usr/lib/pd/extra:/home/user/pd"
+ -path)
+ COMPREPLY=( $(compgen -d ${cur}) )
+ return 0
+ ;;
+ -stdpath)
+ COMPREPLY=( $(compgen -d ${cur}) )
+ return 0
+ ;;
+ -helppath)
+ COMPREPLY=( $(compgen -d ${cur}) )
+ return 0
+ ;;
+ # patch file argument:
+ -open)
+ _filedir '@(pd|pat|mxt|mxb)'
+ return 0
+ ;;
+ # other
+ -d)
+ COMPREPLY=( $(compgen -W "0 1 2 3" -- ${cur}) )
+ return 0
+ ;;
+ *)
+ ;;
+ esac
+
+ if [[ ${cur} == -* ]] ; then
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ else
+ _filedir '@(pd|pat|mxt|mxb)'
+ fi
+}
+complete -o default -F _pdextended pd-extended
+complete -o default -F _pdextended pdextended