Skip to content

Invalid node type "tab" for vim parser after commit 8cdffc6d #8369

@thrillho93

Description

@thrillho93

Describe the bug

After commit 8cdffc6 (Dec 20, 2025) which added "tab" to runtime/queries/vim/highlights.scm, users with distro-packaged tree-sitter-vim parsers get query errors.

Error:
Query error at 113:4. Invalid node type "tab":
"tab"
^

Environment:

  • tree-sitter-vim: 0.7.0-1 (Arch package, built July 2025)

To Reproduce

  1. Install Neovim with Arch's tree-sitter-vim package
  2. Use nvim-treesitter at latest commit
  3. Use any plugin that parses vim commands (e.g., noice.nvim)
  4. Press : to enter command mode → error appears

Expected behavior

No query error. The vim highlights query should be compatible with released tree-sitter-vim versions.

Output of :checkhealth nvim-treesitter

==============================================================================
nvim-treesitter:                                                          1 ❌

Requirements ~
- ✅ OK Neovim was compiled with tree-sitter runtime ABI version 15 (required >=13).
- ❌ ERROR tree-sitter-cli not found
- ✅ OK tar 1.35.0 (/usr/bin/tar)
- ✅ OK curl 8.17.0 (/usr/bin/curl)
  curl 8.17.0 (x86_64-pc-linux-gnu) libcurl/8.17.0 OpenSSL/3.6.0 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.68.0 nghttp3/1.13.1 mit-krb5/1.21.3
  Release-Date: 2025-11-05
  Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
  Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

OS Info ~
- version: #1 SMP PREEMPT_DYNAMIC Thu, 18 Dec 2025 18:00:18 +0000
- sysname: Linux
- release: 6.18.2-arch2-1
- machine: x86_64

Install directory for parsers and queries ~
- /home/frazier/.local/share/nvim/site/
- ✅ OK is writable.
- ✅ OK is in runtimepath.

Installed languages     H L F I J ~
- bash                  ✓ ✓ ✓ . ✓
- c                     ✓ ✓ ✓ ✓ ✓
- diff                  ✓ . ✓ . ✓
- dtd                   ✓ ✓ ✓ . ✓
- ecma
- html                  ✓ ✓ ✓ ✓ ✓
- html_tags
- javascript            ✓ ✓ ✓ ✓ ✓
- jsdoc                 ✓ . . . .
- json                  ✓ ✓ ✓ ✓ ✓
- jsx
- lua                   ✓ ✓ ✓ ✓ ✓
- luadoc                ✓ . . . .
- luap                  ✓ . . . .
- markdown              ✓ . ✓ ✓ ✓
- markdown_inline       ✓ . . . ✓
- printf                ✓ . . . .
- python                ✓ ✓ ✓ ✓ ✓
- query                 ✓ ✓ ✓ ✓ ✓
- regex                 ✓ . . . .
- toml                  ✓ ✓ ✓ ✓ ✓
- tsx                   ✓ ✓ ✓ ✓ ✓
- typescript            ✓ ✓ ✓ ✓ ✓
- vim                   ✓ ✓ ✓ . ✓
- vimdoc                ✓ . . . ✓
- xml                   ✓ ✓ ✓ ✓ ✓
- yaml                  ✓ ✓ ✓ ✓ ✓

  Legend: H[ighlights], L[ocals], F[olds], I[ndents], In[J]ections ~

Output of nvim --version

Output of nvim --version:
  NVIM v0.11.5
  Build type: RelWithDebInfo
  LuaJIT 2.1.1765228720

Additional context

Workaround: Pin nvim-treesitter to commit d0bf5ff (Dec 17, before the change).

The issue is that commit 8cdffc6 added a "tab" node reference to the vim query, but tree-sitter-vim 0.7.0 (current Arch/distro package) doesn't have this node type yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions