[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/fix-mode-names-overlap 997bff87: Retain compatibility for direct
|
From: |
Ikumi Keita |
|
Subject: |
feature/fix-mode-names-overlap 997bff87: Retain compatibility for directory local variables |
|
Date: |
Wed, 29 Nov 2023 11:08:34 -0500 (EST) |
branch: feature/fix-mode-names-overlap
commit 997bff87d2d3e5a2162978f424ef6629335cc985
Author: Ikumi Keita <ikumi@ikumi.que.jp>
Commit: Ikumi Keita <ikumi@ikumi.que.jp>
Retain compatibility for directory local variables
Incorporate new facility implemented in Emacs 30.
* tex.el (TeX-derived-mode-add-parents): Copy of new function in Emacs
30.
(TeX--compat-derived-mode-p): New function to complement
`derived-mode-p' before Emacs 30.
* context.el:
* latex.el:
* plain-tex.el:
* tex-jp.el:
Use `TeX-derived-mode-add-parents'.
---
context.el | 5 +++++
latex.el | 10 ++++++++++
plain-tex.el | 11 +++++++++++
tex-jp.el | 12 ++++++++++++
tex.el | 25 +++++++++++++++++++++++++
5 files changed, 63 insertions(+)
diff --git a/context.el b/context.el
index df3ed2b9..fe1e02c1 100644
--- a/context.el
+++ b/context.el
@@ -1956,6 +1956,11 @@ of `ConTeXt-mode-hook'."
;; set mode line
(setq TeX-base-mode-name mode-name))
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `context-mode' continue to be valid for
+;; `ConTeXt-mode'.
+(TeX-derived-mode-add-parents 'ConTeXt-mode '(context-mode))
+
(provide 'context)
;;; context.el ends here
diff --git a/latex.el b/latex.el
index e9b08cc1..92ecdac2 100644
--- a/latex.el
+++ b/latex.el
@@ -8087,6 +8087,10 @@ Run after mode hooks and file local variables
application."
;;;###autoload
(put 'LaTeX-mode 'auctex-function-definition (symbol-function 'LaTeX-mode))
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `latex-mode' continue to be valid for `LaTeX-mode'.
+(TeX-derived-mode-add-parents 'LaTeX-mode '(latex-mode))
+
(with-eval-after-load 'semantic/symref/grep
(push '(docTeX-mode "*.dtx") semantic-symref-filepattern-alist))
@@ -8118,6 +8122,12 @@ runs the hooks in `docTeX-mode-hook'."
(setq font-lock-set-defaults nil)
(funcall TeX-install-font-lock))
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `doctex-mode' continue to be valid for `docTeX-mode'.
+;; In addition, dir local vars for `latex-mode' are now valid for
+;; `docTeX-mode' as well.
+(TeX-derived-mode-add-parents 'docTeX-mode '(doctex-mode latex-mode))
+
(defcustom docTeX-clean-intermediate-suffixes
TeX-clean-default-intermediate-suffixes
"List of regexps matching suffixes of files to be deleted.
diff --git a/plain-tex.el b/plain-tex.el
index 6e4ddf7c..779c30a0 100644
--- a/plain-tex.el
+++ b/plain-tex.el
@@ -148,6 +148,11 @@ Run after mode hooks and file local variables application."
;;;###autoload
(put 'plain-TeX-mode 'auctex-function-definition (symbol-function
'plain-TeX-mode))
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `plain-tex-mode' continue to be valid for
+;; `plain-TeX-mode'.
+(TeX-derived-mode-add-parents 'plain-TeX-mode '(plain-tex-mode))
+
(defun plain-TeX-common-initialization ()
"Common initialization for plain TeX like modes."
(set (make-local-variable 'TeX-style-hook-dialect) plain-TeX-dialect)
@@ -321,6 +326,12 @@ value of `AmSTeX-mode-hook'."
;;;###autoload
(defalias 'ams-tex-mode #'AmSTeX-mode)
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `ams-tex-mode' continue to be valid for `AmSTeX-mode'.
+;; In addition, dir local vars for `plain-tex-mode' are now valid for
+;; `AmSTeX-mode' as well.
+(TeX-derived-mode-add-parents 'AmSTeX-mode '(ams-tex-mode plain-tex-mode))
+
(defcustom AmSTeX-clean-intermediate-suffixes
TeX-clean-default-intermediate-suffixes
"List of regexps matching suffixes of intermediate files to be deleted.
diff --git a/tex-jp.el b/tex-jp.el
index ff562e22..a9de2226 100644
--- a/tex-jp.el
+++ b/tex-jp.el
@@ -425,6 +425,12 @@ Now `japanese-plain-tex-mode-initialization' is no-op.
Don't use it."))
;;;###autoload
(defalias 'japanese-plain-tex-mode #'japanese-plain-TeX-mode)
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `japanese-plain-tex-mode' and `plain-tex-mode'
+;; continue to be valid for `japanese-plain-TeX-mode'.
+(TeX-derived-mode-add-parents 'japanese-plain-TeX-mode
+ '(japanese-plain-tex-mode plain-tex-mode))
+
;;;###autoload
(define-derived-mode japanese-LaTeX-mode LaTeX-mode "LaTeX"
"Major mode in AUCTeX for editing Japanese LaTeX files."
@@ -471,6 +477,12 @@ Now `japanese-latex-mode-initialization' is no-op. Don't
use it."))
;;;###autoload
(defalias 'japanese-latex-mode #'japanese-LaTeX-mode)
+;; Compatibility for former mode name. Directory local variables
+;; prepared for `japanese-latex-mode' and `latex-mode' continue to be
+;; valid for `japanese-LaTeX-mode'.
+(TeX-derived-mode-add-parents 'japanese-LaTeX-mode
+ '(japanese-latex-mode latex-mode))
+
(defun japanese-LaTeX-guess-engine ()
"Guess Japanese TeX engine and set it to `TeX-engine'.
Document class and its option are taken into account. Do not
diff --git a/tex.el b/tex.el
index d4fded73..10bdf838 100644
--- a/tex.el
+++ b/tex.el
@@ -3875,6 +3875,21 @@ Run after mode hooks and file local variables
application."
;;;###autoload
(put 'TeX-mode 'auctex-function-definition (symbol-function 'TeX-mode))
+;; COMPATIBILITY for Emacs<30
+(unless (fboundp 'derived-mode-add-parents)
+ (advice-add 'derived-mode-p :after-until
+ ;; Don't quote by #'-style to avoid compiler warning.
+ 'TeX--compat-derived-mode-p)
+ (defun TeX--compat-derived-mode-p (&rest modes)
+ "Add pseudo-parents facility to `derived-mode-p' like Emacs 30.
+Modes registered in `derived-mode-extra-parents' property of the
+current major mode name symbol are regarded as parent modes as
+long as `derived-mode-p' is concerned."
+ (let ((extra-parents (get major-mode 'derived-mode-extra-parents)))
+ (and extra-parents
+ (cl-loop for parent in extra-parents
+ thereis (memq parent modes))))))
+
;;; Hilighting
;; FIXME: It's likely that `hilit-patterns-alist' is much obsolete.
@@ -4828,6 +4843,16 @@ Also see `ignore'.
This is a compatibility function for Emacs versions prior to v.28."
t))
+;; COMPATIBILITY for Emacs<30
+(if (fboundp 'derived-mode-add-parents)
+ (defalias 'TeX-derived-mode-add-parents #'derived-mode-add-parents)
+ ;; Adapted copy of `derived-mode-add-parents'.
+ (defun TeX-derived-mode-add-parents (mode extra-parents)
+ "Add EXTRA-PARENTS to the parents of MODE.
+Declares the parents of MODE to be its main parent (as defined
+in `define-derived-mode') plus EXTRA-PARENTS."
+ (put mode 'derived-mode-extra-parents extra-parents)))
+
(defun TeX-match-buffer (n)
"Return the substring corresponding to the N'th match.
See `match-data' for details."
| [Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/fix-mode-names-overlap 997bff87: Retain compatibility for directory local variables,
Ikumi Keita <=