Subject: [PATCH] gnu: emacs-xyz: Add emacs-xref-union.

From: Daniel Ziltener <[email-masked]>
Date: Fri, 22 Dec 2023 11:28:11 +0100

---
 gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 77d49627fc..6776209143 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -37267,6 +37267,33 @@ (define-public emacs-xref
 commands, in particular @code{find-definition}.")
     (license license:gpl3+)))
 
+(define-public emacs-xref-union
+  (package
+    (name "emacs-xref-union")
+    (version "0.1.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://elpa.gnu.org/packages/xref-union-" version ".tar"))
+       (sha256
+        (base32
+         "0w4gaxypl76d1jw9vcq0zhj7ksj44wyfb148l1fb0vl7h6wpv0pf"))))
+    (build-system emacs-build-system)
+    (home-page "https://elpa.gnu.org/packages/xref-union.html")
+    (synopsis "Combine multiple Xref backends")
+    (description
+     "This package provides a way to combine multiple Xref source
+(e.g. Etags and Eglot) and have the results all at once.
+
+To enable, toggle the @code{xref-union-mode} minor mode.  If you want to
+exclude certain modes, take a look at the user option
+`xref-union-excluded-backends'.
+
+You can also manually make use of @code{xref-union} by adding an object
+of the form @code{(union XREF-BACKEND-1 XREF-BACKEND-2 ...)} to
+@code{xref-backend-functions}.")
+    (license license:gpl3+)))
+
 (define-public emacs-burly
   (package
     (name "emacs-burly")
-- 
2.41.0