From: Thomas Braun Date: Thu, 02 Jun 2016 15:11:36 GMT Subject: [PATCH v3 2/2] completion: add git status Message-ID: <1464880296.3720.0.camel@virtuell-zuhause.de> In-Reply-To: <9ef8cfd8fb89bcacd123ddbebc12f961a292ef8b.1464879648.git.thomas.braun@virtuell-zuhause.de> Signed-off-by: Thomas Braun --- contrib/completion/git-completion.bash | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index addea89..fa7a03a 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1782,6 +1782,61 @@ _git_stage () _git_add } +_git_status () +{ + local complete_opt + local untracked_state + + case "$cur" in + --ignore-submodules=*) + __gitcomp "none untracked dirty all" "" "${cur##--ignore-submodules=}" + return + ;; + --untracked-files=*) + __gitcomp "$__git_untracked_file_modes" "" "${cur##--untracked-files=}" + return + ;; + --column=*) + __gitcomp " + always never auto column row plain dense nodense + " "" "${cur##--column=}" + return + ;; + --*) + __gitcomp " + --short --branch --porcelain --long --verbose + --untracked-files= --ignore-submodules= --ignored + --column= --no-column + " + return + ;; + esac + + untracked_state="$(__git_find_on_cmdline "--untracked-files=no\ + --untracked-files=normal --untracked-files=all")" + untracked_state=${untracked_state##--untracked-files=} + + if [ -z "$untracked_state" ]; then + untracked_state="$(git --git-dir="$(__gitdir)" config "status.showUntrackedFiles")" + fi + + case "$untracked_state" in + no) + # --ignored option does not matter + complete_opt= + ;; + all|normal|*) + complete_opt="--cached --directory --no-empty-directory --others" + + if [ -n "$(__git_find_on_cmdline "--ignored")" ]; then + complete_opt="$complete_opt --ignored --exclude=*" + fi + ;; + esac + + __git_complete_index_file "$complete_opt" +} + __git_config_get_set_variables () { local prevword word config_file= c=$cword -- 2.8.3.windows.1