## 事象 `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ブランチで起動すると各言語のパーサーをインストールができない]]%%