threads / discuss / 26676

Completion for branches or tags broken with zsh

Subject: Completion for branches or tags broken with zsh

## tl;dr

2 messages between Mar 6, 2011 and Apr 2, 2011.

replies: 1people: 2as markdown or json

Stefan Haller· Mar 6, 2011, 21:38 UTC · lore

In the current master (and 1.7.4), tab completion for refs doesn't work in zsh. When typing "git log orig<TAB>", nothing appears.

A revision that works for me is 5a3a484d57. I suspect it may have something to do with dbda3b1090, but it's hard to bisect because many revisions on the way can't even be loaded by zsh.

I don't know enough about the completion mechanisms to be able to debug this myself. Anybody able to help?

(My zsh version is 4.3.9, in case it makes a difference.)
-- 
Stefan Haller
Berlin, Germany
http://www.haller-berlin.de/
Jonathan Nieder· Apr 2, 2011, 22:50 UTC · re: Stefan Haller · lore

Re: Completion for branches or tags broken with zsh

Hi Stefan,
Stefan Haller wrote:
> In the current master (and 1.7.4), tab completion for refs doesn't work
> in zsh.  When typing "git log orig<TAB>", nothing appears.

Sorry for the long silence. Indeed, it seems that I broke this in da48616f1d (bash: get --pretty=m<tab> completion to work with bash v4, 2010-12-02). No fix yet.

Here's the puzzle: _git calls _get_comp_words_by_ref to fill the local array "${words[@]}". It doesn't succeed. Within _get_comp_words_by_ref, ${words[@]} gets filled correctly, but within _git, it keeps the value it previously had.

Alas, that's as far as I can get without learning something about zsh. :) I can't reproduce it when defining functions like this directly, so there might be something subtle going on.

Hints?

Thanks for noticing. Jonathan

← back to recent threads