Am 01.06.2016 um 14:15 schrieb SZEDER Gábor: > > Quoting Thomas Braun <thomas.br...@virtuell-zuhause.de>: > >> Signed-off-by: Thomas Braun <thomas.br...@virtuell-zuhause.de> >> --- >> contrib/completion/git-completion.bash | 29 >> +++++++++++++++++++++++++++++ >> 1 file changed, 29 insertions(+) >> >> diff --git a/contrib/completion/git-completion.bash >> b/contrib/completion/git-completion.bash >> index addea89..77343da 100644 >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -1782,6 +1782,35 @@ _git_stage () >> _git_add >> } >> >> +_git_status () >> +{ >> + 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 >> + __git_complete_file > > __git_complete_file()'s job is to complete the '<rev>:<path>' notation, > e.g. 'master:Mak<TAB>', which is not what we want here, because this > notation doesn't make sense for 'git status' and because 'git status > <TAB>' would then offer refs instead of files.
Correct. I might have been mislead by the name ;) > I think there are two choices what to do instead: > > - Don't do anything :) Bash will then fall back to filename > completion, which is quite close to what we want here (and in this > case the return statements from the other case arms can go away as > well). The drawback is that all ignored files in the current > working directory will show up after 'git status <TAB>'. > > - use __git_complete_index_file() with appropriate options, perhaps > '--cached --others', but I didn't think this through. For bonus > points pass additional options when certain 'git status' options are > already present on the command line, e.g. pass '--ignored', too, if > it is present. I went for the bonus points way. If that is too involved I can also go back to "Don't do anything". -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html