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

From: Juri Linkov <[email-masked]>
Date: Sun, 27 Dec 2020 18:22: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)))))
 
 ;; This is mostly unused, but we keep it for the sake of some external
 ;; packages which seem to make use of it.