Ville Skyttä c875723bef Include trailing equals sign in options that take arguments that way.
This way it's clearer to users that an argument is expected.  It's
likely that this commit does not catch all such cases, but it should
do it for most of the affected commands I have installed.
2011-05-02 11:45:55 +03:00

99 lines
3.5 KiB
Bash

# bash completion for aspell
have aspell || return
_aspell_dictionary()
{
local datadir
datadir=$( aspell config data-dir 2>/dev/null || echo /usr/lib/aspell )
# First, get aliases (dicts dump does not list them)
COMPREPLY=( $( command ls $datadir/*.alias 2>/dev/null ) )
COMPREPLY=( ${COMPREPLY[@]%.alias} )
COMPREPLY=( ${COMPREPLY[@]#$datadir/} )
# Then, add the canonical dicts
COMPREPLY+=( $( aspell dicts 2>/dev/null ) )
COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) )
}
_aspell()
{
local cur prev words cword split
_init_completion -s || return
case $prev in
-c|-p|check|--conf|--personal|--repl|--per-conf)
_filedir
return 0
;;
--conf-dir|--data-dir|--dict-dir|--home-dir|--local-data-dir|--prefix)
_filedir -d
return 0
;;
dump|create|merge)
COMPREPLY=( $( compgen -W 'master personal repl' -- "$cur" ) )
return 0
;;
--mode)
COMPREPLY=( $( compgen -W "$( $1 modes 2>/dev/null | \
awk '{ print $1 }' )" -- "$cur" ) )
return 0
;;
--sug-mode)
COMPREPLY=( $( compgen -W 'ultra fast normal bad-speller' -- "$cur" ) )
return 0
;;
--keymapping)
COMPREPLY=( $( compgen -W 'aspell ispell' -- "$cur" ) )
return 0
;;
-d|--master)
_aspell_dictionary
return 0
;;
--add-filter|--rem-filter)
COMPREPLY=( $( compgen -W "$( $1 filters 2>/dev/null | \
awk '{ print $1 }' )" -- "$cur" ) )
return 0
;;
esac
$split && return 0
if [[ "$cur" == -* ]]; then
COMPREPLY=( $( compgen -W '--conf= --conf-dir= --data-dir= --dict-dir= \
--encoding= --add-filter= --rem-filter= --mode= \
--add-extra-dicts= --rem-extra-dicts= \
--home-dir= --ignore= --ignore-accents \
--dont-ignore-accents --ignore-case --dont-ignore-case \
--ignore-repl --dont-ignore-repl --jargon --keyboard= \
--lang= --language-tag --local-data-dir= --master= \
--module --add-module-search-order \
--rem-module-search-order --per-conf= --personal= \
--prefix= --repl= --run-together --dont-run-together \
--run-together-limit= --run-together-min= --save-repl \
--dont-save-repl --set-prefix --dont-set-prefix --size= \
--spelling --strip-accents --dont-strip-accents \
--sug-mode= --add-word-list-path --rem-word-list-path \
--backup --dont-backup --reverse --dont-reverse \
--time --dont-time --keymapping= --add-email-quote= \
--rem-email-quote= --email-margin= --add-tex-command= \
--rem-tex-command= --tex-check-comments \
--dont-tex-check-comments --add-tex-extension \
--rem-tex-extension --add-sgml-check= --rem-sgml-check= \
--add-sgml-extension --rem-sgml-extension' -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
else
COMPREPLY=( $( compgen -W 'usage help check pipe list \
config soundslike filter version dump create merge' -- "$cur" ) )
fi
} &&
complete -F _aspell aspell
# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh