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

Query error. Invalid node type "heredoc_end.

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

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

Highlights broken after update with `query: invalid structure` · Issue #3092 · nvim-treesitter/nvim-treesitter
Note: this is a pinned issue as target for non-bug reports due to outdated parsers or queries What happens After updating, highlights are broken for some or all languages with an error message like...
Highlights broken after update with `query: invalid structure` · Issue #3092 · nvim-treesitter/nvim-treesitter favicon https://github.com/nvim-treesitter/nvim-treesitter/issues/3092
Highlights broken after update with `query: invalid structure` · Issue #3092 · nvim-treesitter/nvim-treesitter
: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 から出直すと直るかもしれない。