Subject: bug#44611: Prefix arg for xref-goto-xref

From: Dmitry Gutov <[email-masked]>
Date: Mon, 16 Nov 2020 00:25:03 +0200

On 15.11.2020 21:51, Juri Linkov wrote:
>> The original justification for this binding (authored by Joao) was that by
>> using it we indicate that the Xref buffer is used for "completion" (picking
>> one result), rather then iterating over multiple matches.
>>
>> That's why it's TAB, because "TAB completion", apparently. Overall, it's
>> not obvious, but it kinda makes sense.
> 
> This interpretation of picking one result doesn't fit into my workflow:
> I use RET to iterate over multiple matches, then need to close the
> *xref* window after visiting the last match, so TAB makes no sense
> in this case.

Ok, so your scenario is a mix of the two.

> I'd expect TAB rather to iterate over multiple matches,
> i.e. like TAB in browsers go to the next match.  Even in the *Completions*
> buffer TAB moves to the next completion.  And in icomplete-mode
> the closest analogy to picking one result is 'C-j'
> (icomplete-force-complete-and-exit).

If people like it, I'm totally fine with changing the binding to 'C-j'.