aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-11-06 23:48:15 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-11-06 23:48:15 +1300
commit361c3986369d4a705328ad17aa0038e9380b44d7 (patch)
treec11751edf14fff828c3b467bebb4c9bbf4e700ec
parentd6130538893ae0fbb039f07a53523dcbd05adfce (diff)
parent05a5347ee0bcb634fe706c3f522769a35fe245fb (diff)
downloaddotfiles-361c3986369d4a705328ad17aa0038e9380b44d7.tar.gz
Merge branch 'feature/bash-compl' into develop
* feature/bash-compl: Add "do", "then" keywords to Bash completion Break bash/bashrc.d/completion.bash inline lists
-rw-r--r--bash/bashrc.d/completion.bash87
1 files changed, 68 insertions, 19 deletions
diff --git a/bash/bashrc.d/completion.bash b/bash/bashrc.d/completion.bash
index 51de24b8..eb01dda2 100644
--- a/bash/bashrc.d/completion.bash
+++ b/bash/bashrc.d/completion.bash
@@ -4,53 +4,102 @@
# If COMP_WORDBREAKS has a value, strip all colons from it; this allows
# completing filenames correctly, since a colon is not a shell metacharacter:
# <http://tiswww.case.edu/php/chet/bash/FAQ> (E13)
-[[ -n $COMP_WORDBREAKS ]] && COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
+if [[ -n $COMP_WORDBREAKS ]] ; then
+ COMP_WORDBREAKS=${COMP_WORDBREAKS//:}
+fi
# If ~/.hosts exists, use that as the host completion file rather than
# /etc/hosts, so I can populate the list myself
-[[ -f $HOME/.hosts ]] && HOSTFILE=$HOME/.hosts
+if [[ -f $HOME/.hosts ]] ; then
+ HOSTFILE=$HOME/.hosts
+fi
# Aliases
-complete -A alias unalias
+complete -A alias \
+ unalias
# Bash builtins
-complete -A builtin builtin
-complete -A enabled disable
-complete -A disabled enable
+complete -A builtin \
+ builtin
+complete -A enabled \
+ disable
+complete -A disabled \
+ enable
# Bash options
-complete -A setopt set
+complete -A setopt \
+ set
# Commands
-complete -A command alias command complete compopt coproc exec if hash time \
- type until while
+complete -A command \
+ alias \
+ command \
+ complete \
+ compopt \
+ coproc \
+ do \
+ exec \
+ if \
+ hash \
+ then \
+ time \
+ type \
+ until \
+ while
# Directories
-complete -A directory cd pushd mkdir rmdir
+complete -A directory \
+ cd \
+ pushd \
+ mkdir \
+ rmdir
# Functions and variables
-complete -A function function
-complete -A function -A variable declare export local readonly typeset unset
-complete -A variable for getopts let read select
+complete -A function \
+ function
+complete -A function -A variable \
+ declare \
+ export \
+ local \
+ readonly \
+ typeset \
+ unset
+complete -A variable \
+ for \
+ getopts \
+ let \
+ read \
+ select
# Help topics
complete -A helptopic help
# Jobspecs
-complete -P '%' -A job disown fg jobs
-complete -P '%' -A stopped bg
+complete -P '%' -A job \
+ disown \
+ fg \
+ jobs
+complete -P '%' -A stopped \
+ bg
# Readline bindings
-complete -A binding bind
+complete -A binding \
+ bind
# Shell options
-complete -A shopt shopt
+complete -A shopt \
+ shopt
# Signal names
-complete -A signal trap
+complete -A signal \
+ trap
# The `mapfile` builtin in Bash >= 4.0
-((BASH_VERSINFO[0] >= 4)) && complete -A arrayvar mapfile readarray
+if ((BASH_VERSINFO[0] >= 4)) ; then
+ complete -A arrayvar \
+ mapfile \
+ readarray
+fi
# If we have dynamic completion loading (Bash>=4.0), use it
if ((BASH_VERSINFO[0] >= 4)) ; then