#!/usr/bin/env bash _dote_completions() { if [ "${#COMP_WORDS[@]}" == "1" ]; then return fi COMPREPLY=() while IFS='' read -r line do COMPREPLY+=("$line") done < <(compgen -W "$(.e -l)" "${COMP_WORDS[1]}") } complete -F _dote_completions ".e" _dott_completions() { if [ "${#COMP_WORDS[@]}" == "2" ]; then COMPREPLY=() while IFS='' read -r line do COMPREPLY+=("$line") done < <(compgen -W "$(.t -l)" "${COMP_WORDS[1]}") fi if [ "${#COMP_WORDS[@]}" == "3" ]; then compgen -f "${COMP_WORDS[2]}" fi } complete -F _dott_completions ".t" completions_dir="$XDG_CONFIG_HOME/completionsrc.d/" if [ -n "$(ls "$completions_dir" 2>/dev/null)" ] then for additional_completions in "$completions_dir"* do # shellcheck disable=1090 . "$additional_completions" done fi