[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Turning on/off tree-sitter modes
From: |
Dmitry Gutov |
Subject: |
Re: Turning on/off tree-sitter modes |
Date: |
Sat, 30 Nov 2024 05:26:35 +0200 |
User-agent: |
Mozilla Thunderbird |
On 29/11/2024 20:09, Stefan Monnier via Emacs development discussions.
wrote:
In any case I was thinking of a UI that's not specific to tree-sitter
that works as follows:
(defun change-major-mode (newmode)
(interactive (list (read-the-new-mode)))
(cond
((eq major-mode (the-mode-normally-selected-by-auto-mode-alist))
(setf (alist-get major-mode major-mode-remap-alist) newmode)
(when (called-interactively-p)
(customize-mark-as-set 'major-mode-remap-alist)))
(t
(let ((regexp (guess-regexp buffer-file-name)))
(add-to-list 'auto-mode-alist (cons regexp newmode))
(when (called-interactively-p)
...somehow convince Custom to do the above `add-to-list`...))))
(funcall newmode))
That sounds interesting, especially the 'guess-regexp' part. I think it
would make it ineligible for calling from the init script, though, which
could be a preference for many.
`read-the-new-mode` could use a variable like Dmitry's
`treesit--mode-associations` to provide good defaults.
BTW, this var shouldn't be set like in his patch, IMO but via
###;;;autoload
(add-to-list 'treesit--mode-associations (javascript-mode . js-ts-mode))
TBF one of my goals for the later patches was to avoid adding new public
"registry" variables, like treesit-auto-mode-alist,
treesit-major-mode-remap-alist, treesit-interpreter-mode-alist, etc. It
seems like having more of them can be a source of confusion, and it's
not obvious that using them in 3rd party modes would be a benefit.
and its name should not be treesitter-specific either, then.
...But perhaps you have a more general purpose in mind for them.
We could also have a command `treesit-enable-all-mode` which uses
a variable `treesit-mode-grammars` (an alist mapping modes to grammars,
setup via the same kind of autoload+add-to-list as above), to add to
`major-mode-remap-alist` all the TS modes for which the user has
installed the corresponding grammar.
It seemed to me that users might first choose the modes/languages they
want, and then be told (sometimes with warnings) which grammars are
still missing or cannot be found by Emacs somehow. But there can be
different ways of looking at it.
- Re: Turning on/off tree-sitter modes, (continued)
- Re: Turning on/off tree-sitter modes, Dmitry Gutov, 2024/11/27
- Re: Turning on/off tree-sitter modes, Juri Linkov, 2024/11/28
- Re: Turning on/off tree-sitter modes, Dmitry Gutov, 2024/11/28
- Re: Turning on/off tree-sitter modes, Juri Linkov, 2024/11/28
- Re: Turning on/off tree-sitter modes, Dmitry Gutov, 2024/11/28
- Re: Turning on/off tree-sitter modes, Juri Linkov, 2024/11/29
- Re: Turning on/off tree-sitter modes, Eli Zaretskii, 2024/11/29
- Re: Turning on/off tree-sitter modes (was: An anonymous IRC user's opinion), Richard Stallman, 2024/11/25
- Re: Turning on/off tree-sitter modes (was: An anonymous IRC user's opinion), Eli Zaretskii, 2024/11/26
- Re: Turning on/off tree-sitter modes, Stefan Monnier, 2024/11/29
- Re: Turning on/off tree-sitter modes,
Dmitry Gutov <=
- Re: Turning on/off tree-sitter modes, Eli Zaretskii, 2024/11/30
- Re: Turning on/off tree-sitter modes, Stefan Monnier, 2024/11/30
- Re: Turning on/off tree-sitter modes, Juri Linkov, 2024/11/30
- Re: An anonymous IRC user's opinion, Juri Linkov, 2024/11/19
- Re: An anonymous IRC user's opinion, Dmitry Gutov, 2024/11/19
- Re: An anonymous IRC user's opinion, Philip Kaludercic, 2024/11/20
- Re: An anonymous IRC user's opinion, Juri Linkov, 2024/11/20
- Re: An anonymous IRC user's opinion, Dmitry Gutov, 2024/11/20
- Re: An anonymous IRC user's opinion, Dr. Arne Babenhauserheide, 2024/11/05
- Re: An anonymous IRC user's opinion, Eli Zaretskii, 2024/11/05