[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#67008: 30.0.50; Multiple major mode parents
From: |
Ikumi Keita |
Subject: |
bug#67008: 30.0.50; Multiple major mode parents |
Date: |
Sat, 11 Nov 2023 21:21:36 +0900 |
Hi Stefan,
>>>>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
> I pushed to the branch `feature/derived-mode-add-parents` a bunch of
> patches which add support for such limited form of `multiple
> inheritance`.
I tried the branch with the attached tentative addition to AUCTeX
feature/fix-mode-names-overlap branch. I tested two modes, namely latex
mode and japanese latex mode, with the second attachment to see whether
the directory local variables stored in the .dir-locals.el are reflected
or not.
For latex mode, it works as expected. Thank you, it is promising.
On the contrary, it fails for japanese latex mode with the error:
File mode specification error: (error Cycle in the major mode hierarchy:
japanese-LaTeX-mode)
I think the reason is that AUCTeX has
(defalias 'japanese-latex-mode #'japanese-LaTeX-mode)
for backward compatibility.
AUCTeX major modes are divided into two categories.
[a] Modes with former names which are overlapped with built-in tex
modes:
plain-TeX-mode, LaTeX-mode, docTeX-mode, Texinfo-mode
[b] Modes with former names which aren't overlapped with built-in tex
modes:
ConTeXt-mode, AmSTeX-mode, japanese-plain-TeX-mode, japanese-LaTeX-mode
For category [b], AUCTeX feature branch has defalias'es similar to the
above example for compatibility with files which have "%%% mode:" tag
with former mode name such as "japanese-latex".
This new feature of multiple inheritance would work well for category
[a], which retains backward compatibility by `major-mode-remap-alist'
and doesn't use defalias. However, it doesn't work for category [b].
It seems to me very difficult to arrange the proposed feature to cover
category [b], looking at its way to handle mode alias. So I think AUCTeX
feature branch must rely on some very ugly hack to be able to pick up
directory local variable entry with former mode name. :-(
(Or AUCTeX should entirely give up such compatibility with directory
local variables for category [b].)
Best regards,
Ikumi Keita
#StandWithUkraine #StopWarInUkraine
patch
Description: Use multiple inheritance
dirlocal.tar.gz
Description: Test suit
- bug#67008: 30.0.50; Multiple major mode parents, (continued)
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/13
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/16
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/17
- bug#67008: 30.0.50; Multiple major mode parents, Stefan Monnier, 2023/11/17
- bug#67008: 30.0.50; Multiple major mode parents, Mattias Engdegård, 2023/11/17
bug#67008: 30.0.50; Multiple major mode parents,
Ikumi Keita <=