执行命令M-x treesit-install-language-grammar后安装c语言,显示
Warning (treesit): Cannot activate tree-sitter, because language grammar for c is unavailable (version-mismatch): 15
怎么办?急死了
我的emacs是29.3
试试其他语言,做做排除法。
(setq treesit-language-source-alist
'((bash "https://github.com/tree-sitter/tree-sitter-bash")
(c "https://github.com/tree-sitter/tree-sitter-c")))
类似上面这样做好设置
我做过这样的设置了.cpp可以正常安装,c就不可以
有无更加详细的环境信息,比如:
- 使用的 tree-sitter 动态链接库的版本。
- 使用的语法库的生成的 parser.c 的 cli 的版本(这个可能得看具体的仓库才能知道了)
由于目前 tree-sitter 已经 26 了,Emacs 29.3 差不多是在 tree-sitter 0.22 左右发布的。也许最好使用比较新的 Emacs 来使用较新的 tree-sitter 本体和语法库试试。
https://www.reddit.com/r/emacs/comments/1lce0sy/treesitter_claims_my_c_grammar_version_is_wrong/
这个问题有人提过,你参考下。
谢大佬,我去看看
这两个链接我一个打不开,求助
感谢~
这种兼容问题,最后其实也没给出解决答案。Re: Versions of language grammar library (was: master 3d3be6dd0eb 2/2: Lock tree-sitter language grammars to verified versions.) - Peter Oliver 。也许你得更新才能解决问题。
遇到过同样的问题,自己到 Releases · tree-sitter/tree-sitter-c 下载一个旧版本,比如 0.20.7 ,然后自己编译出 so 放到对应位置
tar -zxvf tree-sitter-c-0.20.7.tar.gz
cd tree-sitter-c-0.20.7
gcc -shared -fPIC src/parser.c -I./src -o libtree-sitter-c.so
(use-package treesit-langs
:straight (treesit-langs :type git
:host github
:repo "emacs-tree-sitter/treesit-langs"))
试试这个?
原因是 Treesit 执行的动态库版本不对, 设置:
(setq treesit-language-source-alist
'((c "https://github.com/tree-sitter/tree-sitter-c" "v0.23.6")
(cpp "https://github.com/tree-sitter/tree-sitter-cpp")))
其中 v0.23.6 就是仓库的 分支/Tag, 找一个你能用的版本试试, 已知 v0.23.6 是适合 treesit 15/16 ?? 版本的
然后重新执行 M-x treeist-xxx-install 重新安装即可
太感谢了!现在解决了
