git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Shell completion for branch names
@ 2021-04-07 14:23 jost.schulte
  2021-04-07 19:52 ` Junio C Hamano
  2021-04-07 20:00 ` Jeff King
  0 siblings, 2 replies; 4+ messages in thread
From: jost.schulte @ 2021-04-07 14:23 UTC (permalink / raw)
  To: Git

Hello guys,

I have a question regarding git-completion. I'm using zsh and have added the function .git-completion.bash. That gives me some auto-completion for branch names.

What I'm looking for: I have a branch named "feature/issue-123-add-feature" for example. I'd like to type "git switch 123[tab]". Is there some function out there that provides this?

Cheers
Jost


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Shell completion for branch names
@ 2021-04-07 14:23 jost.schulte
  0 siblings, 0 replies; 4+ messages in thread
From: jost.schulte @ 2021-04-07 14:23 UTC (permalink / raw)
  To: Git

Hello guys,

I have a question regarding git-completion. I'm using zsh and have added the function .git-completion.bash. That gives me some auto-completion for branch names.

What I'm looking for: I have a branch named "feature/issue-123-add-feature" for example. I'd like to type "git switch 123[tab]". Is there some function out there that provides this?

Cheers
Jost


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Shell completion for branch names
  2021-04-07 14:23 Shell completion for branch names jost.schulte
@ 2021-04-07 19:52 ` Junio C Hamano
  2021-04-07 20:00 ` Jeff King
  1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2021-04-07 19:52 UTC (permalink / raw)
  To: jost.schulte; +Cc: Git

jost.schulte@tutanota.com writes:

> I have a question regarding git-completion. I'm using zsh and have
> added the function .git-completion.bash. That gives me some
> auto-completion for branch names.
>
> What I'm looking for: I have a branch named
> "feature/issue-123-add-feature" for example. I'd like to type "git
> switch 123[tab]". Is there some function out there that provides
> this?

I am not an area expert for shell completion, but as a mere user,
unless the shell completion in a directory where I have README.txt
file, responds to

    $ cat EAD<TAB>

and completes the request to

    $ cat README.txt

I would find such a behaviour quite confusing.

On the other hand if

    $ git log feat<TAB>

expands to

    $ git log feature/issue-

then another <TAB> after that would offer 123-add-feature and 143-fix
as candidates, or instead of <TAB> if I type "123<TAB>" and get it
expanded to the full feature/issue-123-add-feature, then I wouldn't
find it confusing or unnatural.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Shell completion for branch names
  2021-04-07 14:23 Shell completion for branch names jost.schulte
  2021-04-07 19:52 ` Junio C Hamano
@ 2021-04-07 20:00 ` Jeff King
  1 sibling, 0 replies; 4+ messages in thread
From: Jeff King @ 2021-04-07 20:00 UTC (permalink / raw)
  To: jost.schulte; +Cc: Git

On Wed, Apr 07, 2021 at 04:23:16PM +0200, jost.schulte@tutanota.com wrote:

> I have a question regarding git-completion. I'm using zsh and have
> added the function .git-completion.bash. That gives me some
> auto-completion for branch names.
> 
> What I'm looking for: I have a branch named
> "feature/issue-123-add-feature" for example. I'd like to type "git
> switch 123[tab]". Is there some function out there that provides this?

Generally completion is done left-to-right for a partial string. The
thing you are asking about is usually called "fuzzy" completion. You can
use that term to find some discussion and tools that may help (e.g.,
[1]). I don't use any myself, so I can't comment on the quality.

I'm also not sure if they can be used with custom completions like the
one Git provides. One of the things Git's completion code does is
turning those partial strings into a full set of options. In theory a
fuzzy completion system could just feed Git's completion code an empty
string to get all possibilities, and then do its own fuzzy match against
it. But again, I don't know if anybody has written the glue code to do
that kind of thing.

-Peff

[1] https://github.com/junegunn/fzf#fuzzy-completion-for-bash-and-zsh

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-04-07 20:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07 14:23 Shell completion for branch names jost.schulte
2021-04-07 19:52 ` Junio C Hamano
2021-04-07 20:00 ` Jeff King
  -- strict thread matches above, loose matches on Subject: below --
2021-04-07 14:23 jost.schulte

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).