Hi Ikumi,

On 2025-02-12 09:47, Ikumi Keita wrote:
I basically agree with your idea to use symbol `t` for "all modes". In
that case it isn't much meaningful to "add" t to the mode list; the rest of the elements are totally useless. Instead of a list, we can just have
a single `t' for that purpose. Then we can simplify the conditional as
(or (eq t (nth 1 elt)
    (memq major-mode (nth 1 elt))
How about this idea? (If you are fine with it, please adjust the doc
string as well.)

Completely agree. New patch attached.

Hugo
From d2b1e0b3c8fc81336cbc09dcca83721ce4d6514f Mon Sep 17 00:00:00 2001
From: Hugo Heagren <h...@heagren.com>
Date: Tue, 11 Feb 2025 11:10:09 +0000
Subject: [PATCH] Allow `t' in `TeX-doc-backend-alist' to mean `use in all
 modes'

* tex.el (TeX-doc): Support using `t' in `TeX-doc-backend-alist'
backend mode list to mean that a backend should be available in all
modes.
(TeX-doc-backend-alist): Document change.
---
 tex.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tex.el b/tex.el
index 59a3314..39a21eb 100644
--- a/tex.el
+++ b/tex.el
@@ -6715,7 +6715,8 @@ (defvar TeX-doc-backend-alist
 
 The first is a symbol describing the backend's name.
 
-The second is a list of modes the backend should be activated in.
+The second is either a list of modes the backend should be activated in,
+or the symbol `t', which stands for all modes.
 
 The third is a function returning a list of documents available
 to the backend.  It should return nil if the backend is not
@@ -6733,7 +6734,8 @@ (defun TeX-doc (&optional name)
   (let (docs)
     ;; Build the lists of available documentation used for completion.
     (dolist (elt TeX-doc-backend-alist)
-      (when (memq major-mode (nth 1 elt))
+      (when (or (eq t (nth 1 elt)
+		    (memq major-mode (nth 1 elt))))
         (let ((completions (funcall (nth 2 elt))))
           (unless (null completions)
             (cl-pushnew (cons completions (nth 0 elt)) docs :test #'equal)))))
-- 
2.39.5

Reply via email to