]> git.eshelyaron.com Git - emacs.git/commit
(major-mode-remap(-defaults)): New var and function (bug#69191)
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 4 Mar 2024 04:08:16 +0000 (23:08 -0500)
committerEshel Yaron <me@eshelyaron.com>
Tue, 5 Mar 2024 15:29:06 +0000 (16:29 +0100)
commitb1456d07de4488e679e0b55ec557a43ddbb511e8
tree195a64147addfa4758d777451f0380dc13593176
parent4715c8b133024e9d9e57436c43fda0803c03d9b7
(major-mode-remap(-defaults)): New var and function (bug#69191)

While `major-mode-remap-alist` provides a way for users to indicate the
major mode of their choice, we need a similar variable for the
use of packages.

This patch adds a new `major-mode-remap-defaults` and changes various
packages to obey it or make use of it.
I think it nicely cleans the regexp duplication between CC-mode and
`c-ts-mode.el` and also makes it easier/cleaner for users to override
the changes made by `*-ts-mode.el`.

* lisp/files.el (major-mode-remap-defaults): New variable.
(major-mode-remap): New function.
(set-auto-mode-0): Use it.
* doc/lispref/modes.texi (Auto Major Mode): Document them.

* lisp/textmodes/tex-mode.el (tex--redirect-to-submode):
Use `major-mode-remap`.
(major-mode-remap-defaults): Set it to remap AUCTeX modes by default.
* lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use `major-mode-remap`.
(auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/org/ox.el (org-export-to-buffer): Modernize docstring accordingly.
* lisp/progmodes/cc-mode.el (c-or-c++-mode):
* lisp/org/ox-latex.el (org-latex-export-as-latex):
* lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
* lisp/org/ox-beamer.el (org-beamer-export-as-latex):
Use `major-mode-remap` when available.

(cherry picked from commit 2b5d43081a30f816dd38a16c7b5bfbad712a779b)
12 files changed:
doc/lispref/modes.texi
etc/NEWS
lisp/files.el
lisp/org/ox-beamer.el
lisp/org/ox-koma-letter.el
lisp/org/ox-latex.el
lisp/org/ox.el
lisp/progmodes/c-ts-mode.el
lisp/progmodes/cc-mode.el
lisp/progmodes/go-ts-mode.el
lisp/progmodes/ruby-ts-mode.el
lisp/textmodes/tex-mode.el