diff options
Diffstat (limited to 'shell-completions')
| -rw-r--r-- | shell-completions/aur-completion.bash | 107 | ||||
| -rw-r--r-- | shell-completions/aur.completor.bash | 19 | ||||
| -rw-r--r-- | shell-completions/aur.fish | 12 |
3 files changed, 138 insertions, 0 deletions
diff --git a/shell-completions/aur-completion.bash b/shell-completions/aur-completion.bash new file mode 100644 index 0000000..224f1ee --- /dev/null +++ b/shell-completions/aur-completion.bash @@ -0,0 +1,107 @@ +# This file is generated by [bash-completor](https://github.com/adoyle-h/bash-completor/tree/v0.2.0). Do not modify it manually. +# +# [Usage] +# Put "source aur-completion.bash" in your bashrc. +# +# If you want to debug the completion. +# Search '# Uncomment this line for debug' line in this file. +# +# [Update Script] +# bash-completor -c aur.completor.bash + +# shellcheck disable=2207 +# editorconfig-checker-disable + +_aur_comp_cmd_opts=( -h --help -v --version -l --list -f --force -g --git -c --config ) + + +_aur_comp_reply_aur_pkgs () +{ + pkgs=$(basename -a ~/.aur/*/ | paste -d ' ' -s -); + COMPREPLY=($(compgen -W "$pkgs" -- "$cur")) +} + +_aur_comp_reply_dirs () +{ + local IFS=$'\n'; + compopt -o nospace -o filenames; + COMPREPLY=($(compgen -A directory -- "$cur")) +} + +_aur_comp_reply_files () +{ + local IFS=$'\n'; + compopt -o nospace -o filenames; + COMPREPLY=($(compgen -A file -- "$cur")) +} + +_aur_comp_reply_files_in_pattern () +{ + compopt -o nospace -o filenames; + local path; + while read -r path; do + if [[ $path =~ $1 ]] || [[ -d $path ]]; then + COMPREPLY+=("$path"); + fi; + done < <(compgen -A file -- "$cur") +} + +_aur_comp_reply_list () +{ + local IFS=', '; + local array_list="" array_name; + for array_name in "$@"; + do + array_list="$array_list \${${array_name}[*]}"; + done; + array_list="${array_list[*]:1}"; + IFS=$'\n'' '; + eval "COMPREPLY=( \$(compgen -W \"$array_list\" -- \"\$cur\") )" +} + +_aur_comp_reply_words () +{ + local IFS=$'\n'; + COMPREPLY=($(IFS=', ' compgen -W "$*" -- "${cur#=}")) +} + +_aur_comp_reply_set() { + local IFS=', ' + local array_list="" array_name + # shellcheck disable=2068 + for array_name in "$@"; do + array_list="$array_list \${_aur_comp_var_${array_name}[*]}" + done + array_list="${array_list[*]:1}" + + IFS=$'\n'' ' + eval "COMPREPLY=( \$(compgen -W \"$array_list\" -- \"\$cur\") )" +} + +_aur_completions() { + COMPREPLY=() + local cur=${COMP_WORDS[COMP_CWORD]} + local prev=${COMP_WORDS[COMP_CWORD-1]} + + # Uncomment this line for debug + # echo "[COMP_CWORD:$COMP_CWORD][cur:$cur][prev:$prev][WORD_COUNT:${#COMP_WORDS[*]}][COMP_WORDS:${COMP_WORDS[*]}]" >> bash-debug.log + + # Enter the cmd completion + if [[ ${cur:0:1} == [-+] ]]; then + # rely options of command + _aur_comp_reply_list _aur_comp_cmd_opts + elif [[ ${prev:0:1} == [-+] ]]; then + case "${prev}" in + # rely the value of command option + -c) _aur_comp_reply_files ;; + --config) _aur_comp_reply_files ;; + *) _aur_comp_reply_aur_pkgs ;; + esac + else + # rely the argument of command + _aur_comp_reply_aur_pkgs + fi +} + +complete -F _aur_completions -o bashdefault aur +# vi: sw=2 ts=2 diff --git a/shell-completions/aur.completor.bash b/shell-completions/aur.completor.bash new file mode 100644 index 0000000..cb83422 --- /dev/null +++ b/shell-completions/aur.completor.bash @@ -0,0 +1,19 @@ +# shellcheck disable=SC2034 +output=aur-completion.bash +cmd=aur +cmd_args=@aur_pkgs +cmd_opts=( + -h --help + -v --version + -l --list + -f --force + -g --git + -c:@files + --config:@files +) + +reply_aur_pkgs() { + pkgs=$(basename -a ~/.aur/*/ | paste -d ' ' -s -) + + COMPREPLY=( $(compgen -W "$pkgs" -- "$cur") ) +} diff --git a/shell-completions/aur.fish b/shell-completions/aur.fish new file mode 100644 index 0000000..ae54b02 --- /dev/null +++ b/shell-completions/aur.fish @@ -0,0 +1,12 @@ +function _aur_no_switches + not __fish_contains_opt -s h help -s v version -s l list -s f force -s g git -s c config +end + +complete -c aur -f +complete -c aur -n "_aur_no_switches" -a "(basename -a ~/.aur/*/)" +complete -c aur -s h -l help +complete -c aur -s v -l version +complete -c aur -s l -l list +complete -c aur -s f -l force +complete -c aur -s g -l git +complete -c aur -s c -l config -F -r |
