Files
profile/profile.d/bash-completion/prompt-completion.sh

54 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# ------------------------------------------------------------------------------
# Prompt helper completions for profile.d/prompt.sh shortcuts.
# ------------------------------------------------------------------------------
_profile_prompt_complete_theme_names()
{
local theme_dir="${PROMPT_THEME_DIR:-${MYPATH}/profile.d/themes}"
[[ -d "$theme_dir" ]] || return 0
local theme_file theme_names=""
for theme_file in "$theme_dir"/*.theme; do
[[ -f "$theme_file" ]] || continue
theme_names+=" ${theme_file##*/}"
theme_names="${theme_names%.theme}"
done
printf "%s\n" "$theme_names"
}
_complete_set_theme()
{
local cur prev
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
case "$prev" in
-h|--help|-l|--list)
COMPREPLY=()
return 0
;;
-p|--preview|-S|--save)
;;
esac
if [[ "$cur" == -* ]]; then
COMPREPLY=( $(compgen -W "-h --help -l --list -p --preview -S --save" -- "$cur") )
return 0
fi
if [[ "$cur" == */* || "$cur" == .* ]]; then
COMPREPLY=( $(compgen -f -X '!*.theme' -- "$cur") )
return 0
fi
COMPREPLY=( $(compgen -W "$(_profile_prompt_complete_theme_names)" -- "$cur") )
}
if [[ $- == *i* && -n ${BASH_VERSION:-} ]]; then
complete -F _complete_set_theme set_theme
fi
# EOF