## 事象
`hoge.sh` を作成する。
`hoge.sh`
````
```bash
bash
```
````
`nvim hoge.sh` を開くと以下のエラーになる。
```error
Error 14:37:38 msg_show.lua_error vim.schedule callback: ...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:196: attempt to call method 'range' (a nil value)
stack traceback:
...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:196: in function 'get_range'
...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:231: in function 'get_node_text'
...nvim-treesitter/lua/nvim-treesitter/query_predicates.lua:141: in function 'handler'
...os-arm64/share/nvim/runtime/lua/vim/treesitter/query.lua:868: in function '_apply_directives'
...os-arm64/share/nvim/runtime/lua/vim/treesitter/query.lua:1089: in function '(for generator)'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:1123: in function '_get_injections'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:690: in function '_parse'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:639: in function 'parse'
...ender-markdown.nvim/lua/render-markdown/request/view.lua:62: in function 'parse'
...azy/render-markdown.nvim/lua/render-markdown/core/ui.lua:156: in function 'parse'
...azy/render-markdown.nvim/lua/render-markdown/core/ui.lua:129: in function 'render'
...azy/render-markdown.nvim/lua/render-markdown/core/ui.lua:112: in function 'run'
...azy/render-markdown.nvim/lua/render-markdown/core/ui.lua:78: in function <...azy/render-markdown.nvim/lua/render-markdown/core/ui.lua:77>
Error 14:37:38 msg_show.lua_error vim.schedule callback: ...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:215: ...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:196: attempt to call method 'range' (a nil value)
stack traceback:
[C]: in function 'f'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:215: in function 'tcall'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:596: in function 'parse'
...cal/share/nvim/lazy/snacks.nvim/lua/snacks/util/init.lua:464: in function 'parse'
...cal/share/nvim/lazy/snacks.nvim/lua/snacks/image/doc.lua:241: in function 'find'
...cal/share/nvim/lazy/snacks.nvim/lua/snacks/image/doc.lua:353: in function 'at_cursor'
...cal/share/nvim/lazy/snacks.nvim/lua/snacks/image/doc.lua:385: in function <...cal/share/nvim/lazy/snacks.nvim/lua/snacks/image/doc.lua:369>
Error 14:37:38 msg_show.emsg Decoration provider "conceal_line" (ns=nvim.treesitter.highlighter):
Lua: ...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:196: attempt to call method 'range' (a nil value)
stack traceback:
...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:196: in function 'get_range'
...im-macos-arm64/share/nvim/runtime/lua/vim/treesitter.lua:231: in function 'get_node_text'
...nvim-treesitter/lua/nvim-treesitter/query_predicates.lua:141: in function 'handler'
...os-arm64/share/nvim/runtime/lua/vim/treesitter/query.lua:868: in function '_apply_directives'
...os-arm64/share/nvim/runtime/lua/vim/treesitter/query.lua:1089: in function '(for generator)'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:1123: in function '_get_injections'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:690: in function '_parse'
...4/share/nvim/runtime/lua/vim/treesitter/languagetree.lua:639: in function 'parse'
...64/share/nvim/runtime/lua/vim/treesitter/highlighter.lua:529: in function <...64/s
```
### 環境
| 対象 | バージョン |
| ------------------------ | --------- |
| [[Neovim]] | 0.12.0 |
| [[nvim-treesitter]] | `cf12346` |
| [[render-markdown.nvim]] | `c7188a8` |
### 設定
```lua
return {
"nvim-treesitter/nvim-treesitter",
cond = true,
event = { "BufNewFile", "BufRead" },
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = {
"bash",
"css",
"diff",
"dockerfile",
"elixir",
"gitignore",
"gleam",
"go",
"html",
"http",
"javascript",
"json",
"kdl",
"lua",
"markdown",
"markdown_inline",
"python",
"rust",
"scss",
"sql",
"svelte",
"toml",
"tsx",
"typescript",
"vim",
"vimdoc",
"vue",
"yaml",
},
sync_install = false,
auto_install = true,
ignore_install = {},
modules = {},
highlight = {
enable = true,
disable = { "ini" },
},
-- texobjectsはパフォーマンスの問題から利用しない
})
end,
vim.treesitter.language.register("bash", "zsh"),
}
```
## 原因
`cf12346` は `master` ブランチの最新だが、`master` ブランチはv0.11以下の互換性以外の目的でメンテされていないから。
> This is a full, incompatible, rewrite: Treat this as a different plugin you need to set up from scratch following the instructions below. If you can't or don't want to update, specify the [`master` branch](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md) (which is locked but will remain available for backward compatibility with Nvim 0.11).
>
> *[nvim-treesitter/nvim-treesitter: Nvim Treesitter configurations and abstraction layer](https://github.com/nvim-treesitter/nvim-treesitter)*
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
Neovim 0.12: error in query_predicates.lua (node:range() nil) on markdown with fenced code blocks · Issue #8618 · nvim-treesitter/nvim-treesitter
</div>
<div class="link-card-v2-content">
Describe the bug Opening a markdown file with a fenced code block causes a crash in query_predicates.lua when us ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/52c6391ef8875442fa843f9acf62d7dc910f97dde043f818fa123754ffbbf16a/nvim-treesitter/nvim-treesitter/issues/8618" />
<a href="https://github.com/nvim-treesitter/nvim-treesitter/issues/8618"></a>
</div>
## 解決方法
`main` ブランチに切り替える。
```lua
return {
"nvim-treesitter/nvim-treesitter",
-- 追加
branch = "main",
}
```
## 参考
この問題が解消しても以下の問題にあたることもある。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📝nvim-treesitterをmainブランチに変更すると起動時にエラーになる
</div>
<div class="link-card-v2-content">nvim-treesitterをmainブランチに変更したNeovim 0.12.0環境で起動し、`Failed to run \`config\` for nvim-treesitter`や`module 'nvim-treesitter.configs' not found`エラーが発生した事象である。旧`configs.setup`設定を削除し、新しい`nvim-treesitter.install`とautocmdでハイライトを有効化したところ解消した。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" />
<a data-href="📝nvim-treesitterをmainブランチに変更すると起動時にエラーになる" class="internal-link"></a>
</div>
%%[[📝nvim-treesitterをmainブランチに変更すると起動時にエラーになる]]%%
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📝nvim-treesitterをmainブランチで起動すると各言語のパーサーをインストールができない
</div>
<div class="link-card-v2-content">Neovim 0.12.0でnvim-treesitter mainブランチを使い、:TSUpdateで各言語パーサーをインストールしようとしたところ、`Error during "tree-sitter build": ENOENT: no such file or directory (cmd): 'tree-sitter'`が発生した事象である。原因はtree-sitter未インストールであり、miseやHomebrewでtree-sitterを導入したところ解消した事例である。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" />
<a data-href="📝nvim-treesitterをmainブランチで起動すると各言語のパーサーをインストールができない" class="internal-link"></a>
</div>
%%[[📝nvim-treesitterをmainブランチで起動すると各言語のパーサーをインストールができない]]%%