Subject: Re: [PATCH 00/11] completion: general cleanups

From: Manlio Perillo <[email-masked]>
Date: Sat, 27 Apr 2013 13:33:44 +0200

Il 27/04/2013 12:19, Felipe Contreras ha scritto:
> Hi,
> 
> Basically while trying to understand the code for path completion, I found that
> a lot of code was duplicated, and for not much gain.
> 
> I also noticed that doing 'git add file' doesn't add the trailing space as
> before. It's not clear if it should be possible to do that with -o filenames,
> but after all, what do -o filenames gives us? Nothing we can't do ourselves,
> apparently.
> 

No, you can not do it yourself, as far as I know.

I added the `compopt -o filenames` on Junio request for something like
"It  would be nice if completion for real files would behave like
builtin bash completion", if I remember correctly.

Try `git rm contrib/completion/<TAB>`, in the git reporitory.

Using the new feature, bash will suggest:
"git-completion.bash  git-completion.tcsh  git-completion.zsh
git-prompt.sh"

Old behaviour, instead, was to suggest:
"contrib/completion/git-completion.bash
contrib/completion/git-completion.zsh
contrib/completion/git-completion.tcsh  contrib/completion/git-prompt.sh"

I tried several things, but I was unable to emulate Bash builtin file
completion, whithout having to use `compopt -o filenames`.

As far as the "double slash" problem with the
__git_index_file_list_filter_bash function, please try
`git rm contrib<TAB>`.

With current code, Bash will suggest:
"blameview/ diffall/ git-shell-commands/"

If you remove the __git_index_file_list_filter_bash function and use
__git_index_file_list_filter_compat instead, Bash will suggest:

"blameview// diffall// git-shell-commands//"

I can confirm this on my system, and it was confirmed by another user.
It only happens when you use `compopt -o filenames`. I don't know if
this is a bug or a feature, but I can try to ask to Bash mailing list,
so that we can update the comment to make more clear why a separate
function was needed.

> [...]

Regards  Manlio