emacs-devel
[Top][All Lists]
Advanced

[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: Wed, 4 Dec 2024 03:47:00 +0200
User-agent: Mozilla Thunderbird

On 03/12/2024 16:55, Stefan Monnier wrote:
+;;;###autoload (add-to-list 'major-mode-remap-defaults
+;;;###autoload              '(cmake-mode . cmake-ts-mode-maybe))
+
+;;;###autoload
+(defun cmake-ts-mode-maybe ()
+  "Enable `cmake-ts-mode' if available."
+  (cond
+   ((treesit-ready-p 'cmake) (cmake-ts-mode))
+   ((fboundp 'cmake-mode) (cmake-mode))
+   (t (fundamental-mode))))

Should we do this switch if the grammar is not available? We could stay with the tree-sitter mode if it doesn't anything bad.

Take for example rust-ts-mode, or dockerfile-ts-mode: the body of the major mode function is wrapped in

  (when (treesit-ready-p 'dockerfile)
     ...
    )

which checks for the grammar, emits the warning and does nothing otherwise. So dockerfile-ts-mode behaves like prog-mode in this case, even highlighting strings using the default syntax table.

If there are downsides, they would probably be limited to having the mm keymap enabled, or dockerfile-ts-mode-hook run, which could be good too - depending on what the user expects to happen.



reply via email to

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