emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tree-sitter and major mode inheritance


From: Yuan Fu
Subject: Re: Tree-sitter and major mode inheritance
Date: Sun, 20 Nov 2022 01:19:13 -0800


> On Nov 19, 2022, at 11:11 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> Date: Sun, 20 Nov 2022 00:03:35 +0200
>> Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org,
>> monnier@iro.umontreal.ca, theo@thornhill.no
>> From: Dmitry Gutov <dgutov@yandex.ru>
>> 
>> On 19.11.2022 23:49, Yuan Fu wrote:
>>> Actually, that’s evidence supporting his preference: js-mode will remain to 
>>> be the native implementation, so inheriting from it is exactly as before. 
>>> Js-ts-mode will install tree-sitter stuff. And js-base-mode wouldn’t do 
>>> much.
>> 
>> But js-base-mode will be used in auto-mode-alist?
> 
> NO!!!  auto-mode-alist should keep using js-mode, as it does today.
> 
> js-base-mode, if we need it, should just be a vehicle for easy sharing of
> common stuff between several modes that pertain to the same or similar
> languages.  It should NOT be visible to users, so should not appear in any
> variables users are likely to customize.

Alright, changing js-mode to ja-native-mode is indeed a bad idea. So this is 
what I did: for eg, js-mode, I created js-ts-mode and js-base-mode. Js-mode and 
js-ts-mode inherits js-base-mode. Auto-mode-alist has javascript-mode (that’s 
what’s in the list right now, I didn’t change it).

If a user wants to use tree-sitter for javascript, they can add 
(javascript-mode . js-ts-mode) into major-mode-remap-alist.

If someone wants js-mode and js-ts-mode to share the same configuration, he 
needs to configure js-base-mode. So js-base-mode isn’t completely invisible. 

Yuan


reply via email to

[Prev in Thread] Current Thread [Next in Thread]