Function: tex--collect-file-extensions

tex--collect-file-extensions is a byte-compiled function defined in tex-mode.el.gz.

Signature

(tex--collect-file-extensions)

Documentation

Gather TeX file extensions from auto-mode-alist.

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/tex-mode.el.gz
(defun tex--collect-file-extensions ()
  "Gather TeX file extensions from `auto-mode-alist'."
  (let* ((mlist (when (rassq major-mode auto-mode-alist)
                  (seq-filter
                   (lambda (elt)
                     (eq (cdr elt) major-mode))
                   auto-mode-alist)))
         (lcsym (intern-soft (downcase (symbol-name major-mode))))
         (lclist (and lcsym
                      (not (eq lcsym major-mode))
                      (rassq lcsym auto-mode-alist)
                      (seq-filter
                       (lambda (elt)
                         (eq (cdr elt) lcsym))
                       auto-mode-alist)))
         (shortsym (when (stringp mode-name)
                     (intern-soft (concat (string-trim-right mode-name "/.*")
                                          "-mode"))))
         (lcshortsym (when (stringp mode-name)
                       (intern-soft (downcase
                                     (concat
                                      (string-trim-right mode-name "/.*")
                                      "-mode")))))
         (shlist (and shortsym
                      (not (eq shortsym major-mode))
                      (not (eq shortsym lcsym))
                      (rassq shortsym auto-mode-alist)
                      (seq-filter
                       (lambda (elt)
                         (eq (cdr elt) shortsym))
                       auto-mode-alist)))
         (lcshlist (and lcshortsym
                        (not (eq lcshortsym major-mode))
                        (not (eq lcshortsym lcsym))
                        (rassq lcshortsym auto-mode-alist)
                        (seq-filter
                         (lambda (elt)
                           (eq (cdr elt) lcshortsym))
                         auto-mode-alist)))
         (exts (when (or mlist lclist shlist lcshlist)
                 (seq-union (seq-map #'car lclist)
                            (seq-union (seq-map #'car mlist)
                                       (seq-union (seq-map #'car lcshlist)
                                                  (seq-map #'car shlist))))))
         (ed-exts (when exts
                    (seq-map
                     (lambda (elt)
                       (concat "*" (string-trim  elt "\\\\" "\\\\'")))
                     exts))))
    ed-exts))