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

Reply via email to