# (C) 2011-2025 magicant

# Completion script for the "git-status" command.
# Supports Git 2.48.1.

function completion/git-status {
        WORDS=(git status "${WORDS[2,-1]}")
        command -f completion//reexecute
}

function completion/git::status:arg {

        OPTIONS=( #>#
        "--ahead-behind; show the number of commits ahead/behind the remote branch"
        "b --branch; print the current branch"
        "--column::; columnize output"
        "--find-renames::; detect renames"
        "--ignored::; print ignored files as well"
        "--ignore-submodules::; ignore changes to submodules"
        "--long --no-short; print in the long format"
        "--no-ahead-behind; don't show the number of commits ahead/behind the remote branch"
        "--no-column; print files line by line"
        "--no-renames; don't show renamed files"
        "--porcelain::; print in the machine-friendly format"
        "--renames; show renamed files"
        "s --short; print in the short format"
        "--show-stash; show the stash entry count"
        "u:: --untracked-files::; print untracked files"
        "v --verbose; show the diff of uncommitted changes"
        "z; print a null byte after each filename"
        ) #<#

        command -f completion//parseoptions -n
        case $ARGOPT in
                (-)
                        command -f completion//completeoptions
                        ;;
                (--column)
                        command -f completion/git::--column:arg
                        ;;
                (--ignored) #>>#
                        complete -P "$PREFIX" -D "show all ignored files recursively" traditional
                        complete -P "$PREFIX" -D "don't show ignored files" no
                        complete -P "$PREFIX" -D "show files matching an ignore pattern" matching
                        ;; #<<#
                (--ignore-submodules)
                        command -f completion/git::--ignore-submodules:arg
                        ;;
                (--porcelain)
                        complete -P "$PREFIX" v1 v2
                        ;;
                (u|--untracked-files)
                        command -f completion/git::--untracked-files:arg
                        ;;
                ('')
                        complete -P "$PREFIX" -f
                        ;;
        esac

}


# vim: set ft=sh ts=8 sts=8 sw=8 et:
