_uu-ls() {
    local i cur prev opts cmds
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    cmd=""
    opts=""

    for i in ${COMP_WORDS[@]}
    do
        case "${i}" in
            uu-ls)
                cmd="uu-ls"
                ;;
            
            *)
                ;;
        esac
    done

    case "${cmd}" in
        uu-ls)
            opts=" -C -l -x -m -1 -o -g -n -N -b -Q -q -c -u -B -S -t -v -X -U -L -H -G -a -A -d -h -i -r -R -F -p -Z -V -I -w  --long --numeric-uid-gid --literal --escape --quote-name --hide-control-chars --show-control-chars --ignore-backups --dereference --dereference-command-line-symlink-to-dir --dereference-command-line --no-group --author --all --almost-all --directory --human-readable --si --inode --reverse --recursive --classify --file-type --full-time --context --help --version --format --quoting-style --time --hide --ignore --sort --width --color --indicator-style --time-style  <paths>... "
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                
                --format)
                    COMPREPLY=($(compgen -W "long verbose single-column columns vertical across horizontal commas" -- "${cur}"))
                    return 0
                    ;;
                --quoting-style)
                    COMPREPLY=($(compgen -W "literal shell shell-always shell-escape shell-escape-always c escape" -- "${cur}"))
                    return 0
                    ;;
                --time)
                    COMPREPLY=($(compgen -W "atime access use ctime status birth creation" -- "${cur}"))
                    return 0
                    ;;
                --hide)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --ignore)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -I)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --sort)
                    COMPREPLY=($(compgen -W "name none time size version extension" -- "${cur}"))
                    return 0
                    ;;
                --width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                    -w)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --color)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --indicator-style)
                    COMPREPLY=($(compgen -W "none slash file-type classify" -- "${cur}"))
                    return 0
                    ;;
                --time-style)
                    COMPREPLY=($(compgen -W "full-iso long-iso iso locale" -- "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        
    esac
}

complete -F _uu-ls -o bashdefault -o default uu-ls
