treesit-install-language-grammar warning

Hi 我在尝试安装grammar 但是失败了,是什么原因 ENV: Emacs 30.2 tree-sitter: 0.23.0

image

应该是你 Emacs 链接的 treesitter 版本跟被用来编译 treesitter grammer 的 treesitter 不一致。

一般自己重新编译一下 Emacs 就好了

或者你也可以用 otool (Darwin) 或者 patchelf (unix) 纠正 Emacs 链接的 treesitter

这个两个版本怎么确认?编译的版本和连接的版本?

也有可能是emacs 支持的值和treesit library HEAD 的 abi 版本不一致, 可以看看 (treesit-library-abi-version)

系统 treesitter 版本

用你的包管理器看。

Emacs treesitter 版本

macOS:

$ otool -L /Applications/Emacs.app/Contents/MacOS/Emacs | grep tree

return: /opt/pkg/lib/libtree-sitter.0.25.dylib (compatibility version 0.0.0, current version 0.0.0)

linux:

$ ldd `which emacs` | grep tree

如果一样,那就是 @hilde 提到的 ABI mismatch

grammer版本太新了与Emacs使用的libtree-sitter库版本mismatch了

  1. 尝试将libtree-sitter.so升级到0.25.9,(treesit-library-abi-version)返回15与grammer版本对应上就好了
  2. 或者降级下C grammer,https://github.com/tree-sitter/tree-sitter-c/releases下载个0.23.5版本就可以
1 个赞

多谢,我试了一下可以的,非常感谢