# bash completion for aspell have aspell && { _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=( "${COMPREPLY[@]}" $( aspell dicts 2>/dev/null ) ) COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- "$cur" ) ) } _aspell() { local cur prev split=false COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} _split_longopt && split=true 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 'none url email sgml tex' -- "$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 ;; 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" ) ) else COMPREPLY=( $( compgen -W 'usage help check pipe list \ config soundslike filter version dump create merge' -- "$cur" ) ) fi } complete -F _aspell -o filenames 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