GNU bug report logs -
#74361
[PATCH] New option xref-navigation-display-window-action
Previous Next
Full log
Message #59 received at 74361 <at> debbugs.gnu.org (full text, mbox):
On 19/11/2024 20:33, Juri Linkov wrote:
>> Thanks! That covers the code path which uses 'display-buffer', and we also
>> need to handle xref-pop-to-location, which calls switch-to-buffer now. Does
>>
>> (pop-to-buffer buf '((display-buffer-same-window) (category . xref)))
>>
>> look compatible enough?
>
> Maybe Martin could confirm whether this is equivalent to switch-to-buffer.
display-buffer-same-window *is* the function that's ultimately used by
switch-to-buffer. This does bring some incompatibilities, though, such
as forcung switch-to-buffer-in-dedicated-window to nil, or the use of
display-buffer-alist in the first place (normally configured by
switch-to-buffer-obey-display-actions).
>> Also, when using the suggested change in xref--show-pos-in-buf, if we
>> simply annotate it with 'category' in the display-buffer call, this also
>> extends to the scenarios where xref--original-window-intent is non-nil.
>>
>> See the attached patch where we make sure to exclude those cases. I suppose
>> that loses the semantic consistency, though:
>> xref-find-definitions-other-window and xref-find-definitions-other-frame
>> are "xref" commands but they will call 'display-buffer' without 'category'.
>
> I agree the category should not override the window when used
> from a command that specifies a window/frame.
Okay then.
>> The corresponding customization (described in the first message) can be:
>>
>> (setq display-buffer-alist '(((category . xref)
>> (display-buffer-reuse-window
>> display-buffer-use-some-window))))
>
> I tried your patch, and it works even with 'mru':
>
> (setq display-buffer-alist '(((category . xref)
> (display-buffer-reuse-window
> display-buffer-use-some-window)
> (some-window . mru))))
Yep, even the 'mru' strategy doesn't choose the currently selected
window, so this should also work well, selecting "some window" in a
stable fashion (whereas 'lru' - the default - uses a different window
each time).
This bug report was last modified 172 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.