感谢大佬的回复。
我不咋熟悉elisp的写法,根据treesit-auto的README,它貌似是针对原生Emacs的配置,尝试写了如下代码:doom/package.el中
:recipe (:host github :repo "renzmann/treesit-auto" :files ("*.el" "dist")))
在doom/config.el中
(use-package! treesit-auto
:custom
(treesit-auto-install 'prompt)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
是模仿以前copilot的配置方式,但是依旧报错tree-setter-rust.so的错误,还有就是报找不到tr
treesit-auto文件的错误Error caused by user’s config or system: /Users/hal/.config/doom/config.el, (file-missing Cannot open load file No such file or directory treesit-auto)
package.el中的完整代码
(package! treesit-auto :recipe (:host github :repo "renzmann/treesit-auto" :files ("*.el" "dist")))
doom里面不要enable tree-sitter,还没处理跟29.2自带的treesit的兼容
多谢大佬指点。我目前是将所有的动态库安装成功了。然后不能启动和生效。不知道该怎么在doom 里面设置。
init.el文件里面不要启用tree-sitter,直接用emacs29自带的
请教下大家,用tree-sitter的主要需求是什么?
我试用neovim时,tree-sitter是默认,总感觉除了高亮语法外也没什么需要了,其它lsp也覆盖了。
我主要是想在Emacs中写React代码的tsx语法可以代码高亮。tree-sitter在官方的的playground是可以解析出代码的语法树。
https://tree-sitter.github.io/tree-sitter/playground
我记得有包基于tree-sitter,可以实现代码块的mark, 但我用的也不多。的确, 我现在用tree-sitter,主要是高亮语法,比系统自带的tree-sit 配置简单。
@songpeng @54yeying 谢谢哇,我去了解下。看来大家主要可能主要也是用来语法高亮,有语法树可能可以搞跳转之类的,虽然和lsp功能有重叠。
今天找到了一种方法,可以比较好的显示语法高亮:
- 源码编译Emacs 29.2 选项中选择包含tree-sitter
- Doom Emacs配置如下
~/.doom.d/package.el中添加:
(package! tree-sitter)
(package! tree-sitter-langs)
~/.doom.d/config.el中添加
(use-package! tree-sitter
:config
(require 'tree-sitter-langs)
(global-tree-sitter-mode)
(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode))
效果如下:
之前的配置只显示了const, import,return 这几个关键字的颜色。现在可以比较好的显示颜色。所有的语法解析器动态库文件是之前配置时已经装好了。
init.el 里 :tools 开启 tree-sitter , :lang 里 开启 (cc +lsp +tree-sitter) 就可以了,哦,我这里是 C语言
多谢大佬答疑,我之前用brew 装的emacs-plus,是这么配置但是不能高亮。然后重新下载源码编译了29.2,配置了上面的内容,包括之前也配置了:tools :lang里面的相关配置。
我刚刚把package.el和config.el中的配置删除,重新doom sync后,也可以显示高亮了。我看的emacs-plus默认貌似有配置tree-sitter,但是当时不管怎么配置,还用了auto-treesitter这个包才高亮显示了几个关键字。