git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Manlio Perillo <manlio.perillo@gmail.com>
Date
Apr 27, 2013, 11:33 UTC
Message-ID
<517BB798.4070703@gmail.com>
In-Reply-To
<1367057994-19887-1-git-send-email-felipe.contreras@gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 27/04/2013 12:19, Felipe Contreras ha scritto:
Show 10 quoted lines
> 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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlF7t5gACgkQscQJ24LbaUSO5QCffllxM8RbGUP47kb7uL5J3drF hkUAn26ezKptTAC412EJZnxjh7RVcdAO =Piyz -----END PGP SIGNATURE-----

Previous: Felipe ContrerasNext: Felipe Contreras
Message 13 of 19 in “completion: general cleanups”
  1. 00/11 completion: general cleanupsFelipe Contreras, Apr 27, 2013
  2. 01/11 completion: add file completion testsFelipe Contreras, Apr 27, 2013
  3. 02/11 completion: document tilde expansion failure in testsFelipe Contreras, Apr 27, 2013
  4. 03/11 completion; remove unuseful commentsFelipe Contreras, Apr 27, 2013
  5. 04/11 completion: use __gitcompadd for __gitcomp_fileFelipe Contreras, Apr 27, 2013
  6. 05/11 completion: refactor diff_index wrappersFelipe Contreras, Apr 27, 2013
  7. 06/11 completion: refactor __git_complete_index_file()Felipe Contreras, Apr 27, 2013
  8. 07/11 completion: avoid compopt -o filenamesFelipe Contreras, Apr 27, 2013
  9. 08/11 completion: get rid of __gitcomp_file()Felipe Contreras, Apr 27, 2013
  10. 09/11 completion: add space after completed filenameFelipe Contreras, Apr 27, 2013
  11. 10/11 completion: remove __git_index_file_list_filter()Felipe Contreras, Apr 27, 2013
  12. 11/11 completion: zsh: add proper file supportFelipe Contreras, Apr 27, 2013
  13. Manlio PerilloApr 27, 2013
  14. Felipe ContrerasApr 27, 2013
  15. Felipe ContrerasApr 27, 2013
  16. Manlio PerilloApr 27, 2013
  17. Felipe ContrerasApr 27, 2013
  18. Felipe ContrerasApr 27, 2013
  19. Manlio PerilloApr 27, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.