]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify 'xref-etags-mode'
authorEshel Yaron <me@eshelyaron.com>
Mon, 15 Jul 2024 17:36:04 +0000 (19:36 +0200)
committerEshel Yaron <me@eshelyaron.com>
Mon, 15 Jul 2024 17:36:04 +0000 (19:36 +0200)
lisp/progmodes/xref.el

index 119daa717616827485a48faea2fd494ff0134fbe..11540fd0797023f47ef07e64630d5c2e7f7131ba 100644 (file)
@@ -1855,20 +1855,16 @@ output of this command when the backend is etags."
 \f
 ;;; Helper functions
 
-(defvar xref-etags-mode--saved nil)
-
 (define-minor-mode xref-etags-mode
   "Minor mode to make xref use etags again.
 
 Certain major modes install their own mechanisms for listing
 identifiers and navigation.  Turn this on to undo those settings
 and just use etags."
-  :lighter ""
+  :lighter nil
   (if xref-etags-mode
-      (progn
-        (setq xref-etags-mode--saved xref-backend-functions)
-        (kill-local-variable 'xref-backend-functions))
-    (setq-local xref-backend-functions xref-etags-mode--saved)))
+      (add-hook 'xref-backend-functions #'etags--xref-backend nil t)
+    (remove-hook 'xref-backend-functions #'etags--xref-backend t)))
 
 (declare-function grep-expand-template "grep")