treesit 已经合并进 master 分支了

看描述,是不是官方没有提供 ts-mode的语言,也可以使用? 我看到列表里面有R语言的tree-sitter 安装,但Emacs 官方目前还没有r-ts-mode.

没有 *-ts-mode 的, 如果有编译相应的tree-sitter模块,应该可以使用treesit-explore-mode查看结构。但高亮和indent 需要 *-ts-mode的支持。我之前试过elisp-tree-sitter,有点儿忘了具体细节了。

ok,多谢!

下面这个 commit 后应该就不用手动设置路径了。
https://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-29&id=abb3becb9fb925a4fc3c13da677cc55823423cb3

2 个赞

喜大普奔,紫薯布丁

emacs-29 分支下的编译语言定义的脚本也可以用在 Windows 上了。需要在 mingw 下用。喜欢自动一次编译的可以用这个脚本 admin/notes/tree-sitter/build-module/batch.sh

https://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-29&id=00675aa724a6e18d03c2ccc63269ef03c67086ec

Emacs 内置的 treesit 叕更新了。现在所有支持的 mojor mode 都不会默认开启 tree-sitter 了,要用得用户自己设置。比如 yaml-mode 不是 Emacs 内置的,内置的只用 yaml-ts-mode,但用户要设置 auto-mode-alist 来默认对 yaml 文件启用 yaml-ts-mode

参考 News: https://git.savannah.gnu.org/cgit/emacs.git/tree/etc/NEWS?h=emacs-29#n3235

这是我目前的设置:

我现在偷懒,继续使用tree-sitter mode,基本不需要自己配置。

我现在的做法是这一楼的最下面

遇到的一个问题是:在调用了 (treesit-ready-p xxx) 之后,Emacs 就会把加载的动态库文件锁定,如果之后想在 Emacs 里调用 (treesit-install-xxx) 更新相关的 parser 时会报错。必须关掉 Emacs 后再替换相关的动态库。

1 个赞

这应该是个 Bug,可以用 emacs -Q 重现下,给 Emacs 29 报个 bug。emacs-29 快要 pretest 了。

好,再探再报。treesit我还是等成熟了再用吧,整天变来变去的。。

yaml-ts-mode 也有 bug,当前行缩进不对的话会破坏后续行的高亮,我已经报 Bug了。

https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-02/msg00187.html

7 个帖子被拆分为一个新话题:Emacs report-emacs-bug 无法正确发送邮件

我的理解是,treesit-ready-pxxx-ts-mode 加载的时候就会调用的,如果因为这个调用了就没法用 treesit-install-language-grammar,那就是这个函数的设计有问题,是需要改进的。不过我基本不用这个 treesit-install-language-grammar 函数。

刷新不是实时的,每 15 钟刷新一次。如果你发送 bug 后过几分钟收到自动的邮件回复,那就说明发送成功了。

谢谢分享,有时间折腾下这东西

确实,完全可以切出上面几楼,单独给开个帖子,专门研究怎么在 Emacs 配置 smtp 这些东西

就此打住,避免越聊越偏了 :smile:

这是啥字体?

你这问题是在 Windows 系统出现的吗? 是的话应该已经修复了。emacs.git - Emacs source repository

嗯,是的,我昨晚发的邮件,今下午收到了自动邮件回复,然后 Eliz 通过邮件跟我沟通修复的 :joy:

1 个赞

有个自动安装和使用 treesit 的包

2 个赞