[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Average-user-facing interface for tree-sitter
From: |
Lars Ingebrigtsen |
Subject: |
Re: Average-user-facing interface for tree-sitter |
Date: |
Thu, 13 Oct 2022 08:22:53 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Yuan Fu <casouri@gmail.com> writes:
> From the suggestions I collected from the old thread, here is my proposal:
>
> We define a custom option treesit-settings (we can discuss the name
> later), which controls whether to enable/disable tree-sitter for each
> major mode, and the default preference, like this:
>
> (defcustom treesit-settings '((t nil nil))
> "Tree-sitter toggles for major modes.
Hm... well, there's also modes that are "pure treesit", and there are
(or will be) alternate modes with and without tree-sitter.
I think users basically fall into two camps: The ones that want to have
tree-sitter in all modes, and ones that want to enable it in specific
modes (and ones that don't want it at all). (Note Computer
Science-mandated off-by-one error.)
This suggests to me that we should just use the normal minor mode
machinery that we have for these things.
That is, people that want treesit in python-mode will say:
(add-hook 'python-mode 'treesit-mode)
And people that want it everywhere will say:
(global-treesit-mode)
This mode will, in addition to switching `treesit-mode' on everywhere,
also set up `major-mode-remap-alist', so that `typescript-mode' is
mapped to `ts-mode', and `c-mode' is mapped to `treesit-c-mode' (which
I'm sure somebody is going to write in a couple of days), etc.