diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2018-10-30 10:31:53 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2018-10-30 10:31:53 +1300 |
commit | a8c7c927dcf3c020389fd25c3e81e6c072a25dd1 (patch) | |
tree | b2eeffa04f868f4335de1bf4ce238754788d5db2 /bash/bash_completion.d/keep.bash | |
parent | Use case statement for sudo -v switching (diff) | |
download | dotfiles-a8c7c927dcf3c020389fd25c3e81e6c072a25dd1.tar.gz dotfiles-a8c7c927dcf3c020389fd25c3e81e6c072a25dd1.zip |
Respect completion-ignore-case in custom functions
This involves a little too much boilerplate for my liking, but it's
still an improvement over what I had before. I might find a way to make
this into a generic function.
Diffstat (limited to 'bash/bash_completion.d/keep.bash')
-rw-r--r-- | bash/bash_completion.d/keep.bash | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/bash/bash_completion.d/keep.bash b/bash/bash_completion.d/keep.bash index 7148ad2b..5958aaf5 100644 --- a/bash/bash_completion.d/keep.bash +++ b/bash/bash_completion.d/keep.bash @@ -39,6 +39,21 @@ _keep() { COMPREPLY[${#COMPREPLY[@]}]=$word done < <( shopt -s dotglob nullglob + + # Make globbing case-insensitive if appropriate; is there a cleaner way + # to find this value? + while read -r _ option value ; do + case $option in + completion-ignore-case) + case $value in + on) + shopt -s nocaseglob + break + ;; + esac + esac + done < <(bind -v) + keep=${BASHKEEP:-"$HOME"/.bashkeep.d} declare -a keeps keeps=("$keep"/"${COMP_WORDS[COMP_CWORD]}"*.bash) |