treesit 已经合并进 master 分支了

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 的包

1 个赞

tree-sitter-module 今天刷新一下增加了 15 个 commit:

更新:作者在 batch.sh 里漏了clojure。提了个issue,后续应该会加上去。

treesit 在多语言的表现并不一致, 特别是字符串识别, 比如 ‘foo’ , 当光标在字符串中间的时候 treesit 的 start/end 识别的非常准确, 如果光标在 ’ 后面就废了。

在括号补全插件中, treesit 只能替代一部分原来的正则, 但是并不能完全依靠 treesit 的判断, 今天又写了一个workaround来修正 treesit 这种问题: Kill line directly if cursor after open single quote. · manateelazycat/fingertip@5dfe0b8 · GitHub

兄弟,想问下你这个配色怎么安装呀,我刚刚接触tree-sitter,感觉资料好少。是melpa的tree-sitter吗?

不是,自己编译emacs的

兄弟,我已经使用emacs29.1 自己编译的配置好了,你的主题是怎么弄出来的。现在显示效果也不错,就是显示太笼统了,例如局部变量,全局变量,宏定义,入参,全部一个颜色。我看你的主题都是有区分的,这个怎么配置。看了好喜欢你的主题。