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

From: Juri Linkov <[email-masked]>
Date: Mon, 28 Dec 2020 19:24:18 +0200

>>> On the subject of grep-mode, it could have a similar command introduced
>>> too, for situations when you only needed to find one occurrence, to jump to
>>> it and quit the window.
>> This is what I already successfully use:
>> diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
>> index d2293151c7..08c44dcb25 100644
>> --- a/lisp/progmodes/compile.el
>> +++ b/lisp/progmodes/compile.el
>> @@ -2572,11 +2572,15 @@ compile-goto-error
>>     (or (compilation-buffer-p (current-buffer))
>>         (error "Not in a compilation buffer"))
>>     (compilation--ensure-parse (point))
>> +  (let ((window (posn-window (event-end event))))
>>       (if (get-text-property (point) 'compilation-directory)
>>           (dired-other-window
>>            (car (get-text-property (point) 'compilation-directory)))
>>         (setq compilation-current-error (point))
>> -    (next-error-internal)))
>> +      (next-error-internal))
>> +    (when current-prefix-arg
>> +      (with-selected-window window
>> +        (quit-window)))))
>
> So... if others like it, we could keep just this binding (C-u RET) for
> "quit the window and go to location", in both Grep and Xref.

To make it more future-proof for possible other uses of the prefix arg,
maybe better would be to use 'C-0 RET' with better mnemonics of 0 to
mean deleting the window (like 'C-x 0' deletes the window).