# isort completion                                         -*- shell-script -*-

_isort()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        --help | --add-import | --builtin | --future | --from-first | -ff | \
            --force-grid-wrap | -fgw | --indent | --lines | --lines-after-imports | -lai | \
            --lines-between-types | -lbt | --line-ending | -le | --no-lines-before | -nlb | \
            --dont-skip | -ns | --thirdparty | --project | --remove-import | --skip | \
            --skip-glob | -sg | --settings-path | -sp | --top | --virtual-env | --line-width | \
            --wrap-length | -wl | -[habfiloprstw])
            return
            ;;
        --jobs | -j)
            COMPREPLY=($(compgen -W "{1..$(_ncpus)}" -- "$cur"))
            return
            ;;
        --multi-line | -m)
            COMPREPLY=($(compgen -W '{0..5}' -- "$cur"))
            return
            ;;
        --section-default | -sd)
            COMPREPLY=($(compgen -W 'FUTURE STDLIB THIRDPARTY FIRSTPARTY
                                      LOCALFOLDER' -- "$cur"))
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
        return
    fi

    _filedir '@(py|pyi)'
} &&
    complete -F _isort isort

# ex: filetype=sh
