Linux で neovim をソースビルドしたところ、 tree-sitter のエラーになって悩む。

Query error. Invalid node type "heredoc_end.

発生するとキー入力のたびにエラーメッセージが表示されて、 何もできなくなる。

原因は、~/local/lib/nvim/parser にインストールされる treesitter の parser 群がバージョン不整合?を起こしていることぽい。TSInstall する前からcmake build で prebuilt されるものが、どうも良くないらしい。

https://github.com/nvim-treesitter/nvim-treesitter/issues/3092

:echo nvim_get_runtime_file('*/bash.so', v:true)
# これは windows 版なので状況が違う
[
'%LOCALAPPDATA%\nvim-data\lazy\nvim-treesitter\parser\bash.so', 
'%LOCALAPPDATA%\Temp\nvim\treesitter\parser\bash.so'
]

ぜんぶ消してから :TSInstall! bash すればいいと思う。

再度はまる

どうも3箇所チェックするところがあるぽい。

  • %NVIM_INSTALL%/lib/nvim/parer 👈 cmake install

  • %HOME%/.local/share/nvim/lazy/nvim-treesitter/parser 👈 lazy treesitter install

  • %HOME%/.cache/nvim/treesitter/parser 👈 local TSInstall

ぜんぶ消して TSInstall から出直すと直るかもしれない。