From 00c906abb9550e72bc0c640545b5499b9525bb40 Mon Sep 17 00:00:00 2001 From: George Harker Date: Sun, 30 Nov 2025 23:46:21 -0800 Subject: [PATCH 001/127] fix(zsh): update posix shell variables --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/zsh/highlights.scm | 92 ++++++++++++++++++++---------- 2 files changed, 63 insertions(+), 31 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e32bf962a..49d2a3bed 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2701,7 +2701,7 @@ return { }, zsh = { install_info = { - revision = 'v0.47.0', + revision = 'v0.48.0', url = 'https://github.com/georgeharker/tree-sitter-zsh', }, maintainers = { '@georgeharker' }, diff --git a/runtime/queries/zsh/highlights.scm b/runtime/queries/zsh/highlights.scm index 3bf1eed00..75a37408b 100644 --- a/runtime/queries/zsh/highlights.scm +++ b/runtime/queries/zsh/highlights.scm @@ -233,41 +233,73 @@ ((variable_name) @variable.builtin (#any-of? @variable.builtin - ; https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Variables.html + ; POSIX shell variables "CDPATH" "HOME" "IFS" "MAIL" "MAILPATH" "OPTARG" "OPTIND" "PATH" "PS1" "PS2" - ; https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html - "_" "BASH" "BASHOPTS" "BASHPID" "BASH_ALIASES" "BASH_ARGC" "BASH_ARGV" "BASH_ARGV0" "BASH_CMDS" - "BASH_COMMAND" "BASH_COMPAT" "BASH_ENV" "BASH_EXECUTION_STRING" "BASH_LINENO" - "BASH_LOADABLES_PATH" "BASH_REMATCH" "BASH_SOURCE" "BASH_SUBSHELL" "BASH_VERSINFO" - "BASH_VERSION" "BASH_XTRACEFD" "CHILD_MAX" "COLUMNS" "COMP_CWORD" "COMP_LINE" "COMP_POINT" - "COMP_TYPE" "COMP_KEY" "COMP_WORDBREAKS" "COMP_WORDS" "COMPREPLY" "COPROC" "DIRSTACK" "EMACS" - "ENV" "EPOCHREALTIME" "EPOCHSECONDS" "EUID" "EXECIGNORE" "FCEDIT" "FIGNORE" "FUNCNAME" - "FUNCNEST" "GLOBIGNORE" "GROUPS" "histchars" "HISTCMD" "HISTCONTROL" "HISTFILE" "HISTFILESIZE" - "HISTIGNORE" "HISTSIZE" "HISTTIMEFORMAT" "HOSTFILE" "HOSTNAME" "HOSTTYPE" "IGNOREEOF" "INPUTRC" - "INSIDE_EMACS" "LANG" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_NUMERIC" "LC_TIME" - "LINENO" "LINES" "MACHTYPE" "MAILCHECK" "MAPFILE" "OLDPWD" "OPTERR" "OSTYPE" "PIPESTATUS" - "POSIXLY_CORRECT" "PPID" "PROMPT_COMMAND" "PROMPT_DIRTRIM" "PS0" "PS3" "PS4" "PWD" "RANDOM" - "READLINE_ARGUMENT" "READLINE_LINE" "READLINE_MARK" "READLINE_POINT" "REPLY" "SECONDS" "SHELL" - "SHELLOPTS" "SHLVL" "SRANDOM" "TIMEFORMAT" "TMOUT" "TMPDIR" "UID")) + ; https://zsh.sourceforge.io/Doc/Release/Parameters.html#Parameters-Set-By-The-Shell + "_" "ARGC" "CPUTYPE" "DIRSTACK" "EGID" "EPOCHREALTIME" "EPOCHSECONDS" "ERRNO" "EUID" + "FUNCFILETRACE" "FUNCNEST" "FUNCSOURCETRACE" "FUNCSTACK" "GID" "HISTCMD" "HOST" "LINENO" + "LOGNAME" "MACHTYPE" "OLDPWD" "OSTYPE" "PIPESTATUS" "PPID" "PWD" "RANDOM" "SECONDS" "SHLVL" + "TRY_BLOCK_ERROR" "TRY_BLOCK_INTERRUPT" "TTY" "TTYIDLE" "UID" "USERNAME" "VENDOR" "ZSH_ARGZERO" + "ZSH_EVAL_CONTEXT" "ZSH_EXECUTION_STRING" "ZSH_NAME" "ZSH_PATCHLEVEL" "ZSH_SCRIPT" + "ZSH_SUBSHELL" "ZSH_VERSION" + ; ZLE parameters (set by shell) - https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html + "BUFFER" "BUFFERLINES" "CONTEXT" "CURSOR" "CUTBUFFER" "HISTNO" "ISEARCHMATCH_ACTIVE" + "ISEARCHMATCH_END" "ISEARCHMATCH_START" "KEYMAP" "KEYS" "KEYS_QUEUED_COUNT" "LASTABORTEDSEARCH" + "LASTSEARCH" "LASTWIDGET" "LBUFFER" "MARK" "MATCH" "MBEGIN" "MEND" "NUMERIC" "PENDING" + "POSTDISPLAY" "PREBUFFER" "PREDISPLAY" "PREFIX" "QIPREFIX" "QISUFFIX" "RBUFFER" "REGION_ACTIVE" + "REPLY" "SAVECURSOR" "SUFFIX" "UNDO_CHANGE_NO" "UNDO_LIMIT_NO" "WIDGET" "WIDGETFUNC" + "WIDGETSTYLE" "YANK_ACTIVE" "YANK_END" "YANK_START" "WORDS_STYLE" "ZLE_RECURSIVE" "ZLE_STATE" + ; Completion parameters - https://zsh.sourceforge.io/Doc/Release/Completion-Widgets.html + "CURRENT" "IPREFIX" "ISUFFIX" "compstate" + ; https://zsh.sourceforge.io/Doc/Release/Parameters.html#Parameters-Used-By-The-Shell + "ARGV0" "BAUD" "COLUMNS" "CORRECT_IGNORE" "CORRECT_IGNORE_FILE" "DIRSTACKSIZE" "EDITOR" "ENV" + "FCEDIT" "FIGNORE" "FPATH" "HISTCHARS" "HISTFILE" "HISTSIZE" "KEYBOARD_HACK" "KEYTIMEOUT" "LANG" + "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_NUMERIC" "LC_TIME" "LINES" "LISTMAX" + "LOGCHECK" "MAILCHECK" "MANPATH" "MODULE_PATH" "NULLCMD" "POSTEDIT" "PROMPT" "PROMPT2" "PROMPT3" + "PROMPT4" "PROMPTCHARS" "PS3" "PS4" "PSVAR" "READNULLCMD" "RPROMPT" "RPROMPT2" "RPS1" "RPS2" + "SAVEHIST" "SHELL" "SPROMPT" "STTY" "TERM" "TIMEFMT" "TMOUT" "TMPPREFIX" "VISUAL" "WATCH" + "WATCHFMT" "WORDCHARS" "ZBEEP" "ZDOTDIR" "ZLE_LINE_ABORTED" "ZLE_REMOVE_SUFFIX_CHARS" + "ZLE_RPROMPT_INDENT" "ZLE_SPACE_SUFFIX_CHARS" + ; Array/lowercase tied parameters - https://zsh.sourceforge.io/Doc/Release/Variables-Index.html + "argv" "cdpath" "dirstack" "fignore" "fpath" "funcfiletrace" "funcsourcetrace" "funcstack" + "functrace" "histchars" "killring" "mailpath" "manpath" "match" "mbegin" "mend" "module_path" + "options" "path" "pipestatus" "prompt" "psvar" "reply" "signals" "status" "watch" "words" + "zsh_eval_context")) ((simple_variable_name) @variable.builtin (#any-of? @variable.builtin - ; https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Variables.html + ; POSIX shell variables "CDPATH" "HOME" "IFS" "MAIL" "MAILPATH" "OPTARG" "OPTIND" "PATH" "PS1" "PS2" - ; https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html - "_" "BASH" "BASHOPTS" "BASHPID" "BASH_ALIASES" "BASH_ARGC" "BASH_ARGV" "BASH_ARGV0" "BASH_CMDS" - "BASH_COMMAND" "BASH_COMPAT" "BASH_ENV" "BASH_EXECUTION_STRING" "BASH_LINENO" - "BASH_LOADABLES_PATH" "BASH_REMATCH" "BASH_SOURCE" "BASH_SUBSHELL" "BASH_VERSINFO" - "BASH_VERSION" "BASH_XTRACEFD" "CHILD_MAX" "COLUMNS" "COMP_CWORD" "COMP_LINE" "COMP_POINT" - "COMP_TYPE" "COMP_KEY" "COMP_WORDBREAKS" "COMP_WORDS" "COMPREPLY" "COPROC" "DIRSTACK" "EMACS" - "ENV" "EPOCHREALTIME" "EPOCHSECONDS" "EUID" "EXECIGNORE" "FCEDIT" "FIGNORE" "FUNCNAME" - "FUNCNEST" "GLOBIGNORE" "GROUPS" "histchars" "HISTCMD" "HISTCONTROL" "HISTFILE" "HISTFILESIZE" - "HISTIGNORE" "HISTSIZE" "HISTTIMEFORMAT" "HOSTFILE" "HOSTNAME" "HOSTTYPE" "IGNOREEOF" "INPUTRC" - "INSIDE_EMACS" "LANG" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_NUMERIC" "LC_TIME" - "LINENO" "LINES" "MACHTYPE" "MAILCHECK" "MAPFILE" "OLDPWD" "OPTERR" "OSTYPE" "PIPESTATUS" - "POSIXLY_CORRECT" "PPID" "PROMPT_COMMAND" "PROMPT_DIRTRIM" "PS0" "PS3" "PS4" "PWD" "RANDOM" - "READLINE_ARGUMENT" "READLINE_LINE" "READLINE_MARK" "READLINE_POINT" "REPLY" "SECONDS" "SHELL" - "SHELLOPTS" "SHLVL" "SRANDOM" "TIMEFORMAT" "TMOUT" "TMPDIR" "UID")) + ; https://zsh.sourceforge.io/Doc/Release/Parameters.html#Parameters-Set-By-The-Shell + "_" "ARGC" "CPUTYPE" "DIRSTACK" "EGID" "EPOCHREALTIME" "EPOCHSECONDS" "ERRNO" "EUID" + "FUNCFILETRACE" "FUNCNEST" "FUNCSOURCETRACE" "FUNCSTACK" "GID" "HISTCMD" "HOST" "LINENO" + "LOGNAME" "MACHTYPE" "OLDPWD" "OSTYPE" "PIPESTATUS" "PPID" "PWD" "RANDOM" "SECONDS" "SHLVL" + "TRY_BLOCK_ERROR" "TRY_BLOCK_INTERRUPT" "TTY" "TTYIDLE" "UID" "USERNAME" "VENDOR" "ZSH_ARGZERO" + "ZSH_EVAL_CONTEXT" "ZSH_EXECUTION_STRING" "ZSH_NAME" "ZSH_PATCHLEVEL" "ZSH_SCRIPT" + "ZSH_SUBSHELL" "ZSH_VERSION" + ; ZLE parameters (set by shell) - https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html + "BUFFER" "BUFFERLINES" "CONTEXT" "CURSOR" "CUTBUFFER" "HISTNO" "ISEARCHMATCH_ACTIVE" + "ISEARCHMATCH_END" "ISEARCHMATCH_START" "KEYMAP" "KEYS" "KEYS_QUEUED_COUNT" "LASTABORTEDSEARCH" + "LASTSEARCH" "LASTWIDGET" "LBUFFER" "MARK" "MATCH" "MBEGIN" "MEND" "NUMERIC" "PENDING" + "POSTDISPLAY" "PREBUFFER" "PREDISPLAY" "PREFIX" "QIPREFIX" "QISUFFIX" "RBUFFER" "REGION_ACTIVE" + "REPLY" "SAVECURSOR" "SUFFIX" "UNDO_CHANGE_NO" "UNDO_LIMIT_NO" "WIDGET" "WIDGETFUNC" + "WIDGETSTYLE" "YANK_ACTIVE" "YANK_END" "YANK_START" "WORDS_STYLE" "ZLE_RECURSIVE" "ZLE_STATE" + ; Completion parameters - https://zsh.sourceforge.io/Doc/Release/Completion-Widgets.html + "CURRENT" "IPREFIX" "ISUFFIX" "compstate" + ; https://zsh.sourceforge.io/Doc/Release/Parameters.html#Parameters-Used-By-The-Shell + "ARGV0" "BAUD" "COLUMNS" "CORRECT_IGNORE" "CORRECT_IGNORE_FILE" "DIRSTACKSIZE" "EDITOR" "ENV" + "FCEDIT" "FIGNORE" "FPATH" "HISTCHARS" "HISTFILE" "HISTSIZE" "KEYBOARD_HACK" "KEYTIMEOUT" "LANG" + "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_NUMERIC" "LC_TIME" "LINES" "LISTMAX" + "LOGCHECK" "MAILCHECK" "MANPATH" "MODULE_PATH" "NULLCMD" "POSTEDIT" "PROMPT" "PROMPT2" "PROMPT3" + "PROMPT4" "PROMPTCHARS" "PS3" "PS4" "PSVAR" "READNULLCMD" "RPROMPT" "RPROMPT2" "RPS1" "RPS2" + "SAVEHIST" "SHELL" "SPROMPT" "STTY" "TERM" "TIMEFMT" "TMOUT" "TMPPREFIX" "VISUAL" "WATCH" + "WATCHFMT" "WORDCHARS" "ZBEEP" "ZDOTDIR" "ZLE_LINE_ABORTED" "ZLE_REMOVE_SUFFIX_CHARS" + "ZLE_RPROMPT_INDENT" "ZLE_SPACE_SUFFIX_CHARS" + ; Array/lowercase tied parameters - https://zsh.sourceforge.io/Doc/Release/Variables-Index.html + "argv" "cdpath" "dirstack" "fignore" "fpath" "funcfiletrace" "funcsourcetrace" "funcstack" + "functrace" "histchars" "killring" "mailpath" "manpath" "match" "mbegin" "mend" "module_path" + "options" "path" "pipestatus" "prompt" "psvar" "reply" "signals" "status" "watch" "words" + "zsh_eval_context")) ((command name: (command_name From e527584cf8508b2f99f127c2a20f93237e8fcf83 Mon Sep 17 00:00:00 2001 From: nsfisis <54318333+nsfisis@users.noreply.github.com> Date: Wed, 3 Dec 2025 05:03:33 +0900 Subject: [PATCH 002/127] feat(vhs): update options list (#8309) --- runtime/queries/vhs/highlights.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/runtime/queries/vhs/highlights.scm b/runtime/queries/vhs/highlights.scm index 469fdd139..a8bb99c6c 100644 --- a/runtime/queries/vhs/highlights.scm +++ b/runtime/queries/vhs/highlights.scm @@ -30,6 +30,12 @@ "Theme" "LoopOffset" "Width" + "BorderRadius" + "Margin" + "MarginFill" + "WindowBar" + "WindowBarSize" + "CursorBlink" ] @type "@" @operator From c5623d3486c1cda5f73e28a3a4abb454f708c48c Mon Sep 17 00:00:00 2001 From: Gabriel Holodak Date: Tue, 2 Dec 2025 20:15:52 -0500 Subject: [PATCH 003/127] docs: document setting foldmethod alongside foldexpr (#8187) --- README.md | 1 + doc/nvim-treesitter.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 3ddf5b3df..8d2e22f41 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,7 @@ Treesitter-based folding is provided by Neovim. To enable it, put the following ```lua vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' +vim.wo.foldmethod = 'expr' ``` ## Indentation diff --git a/doc/nvim-treesitter.txt b/doc/nvim-treesitter.txt index 3bb3f9356..e6a67f398 100644 --- a/doc/nvim-treesitter.txt +++ b/doc/nvim-treesitter.txt @@ -45,6 +45,7 @@ Treesitter features for installed languages need to be enabled manually in a vim.treesitter.start() -- folds, provided by Neovim vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' + vim.wo.foldmethod = 'expr' -- indentation, provided by nvim-treesitter vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" end, From 857fb97bb65c8a71b0c4a568cfcfef95679854d5 Mon Sep 17 00:00:00 2001 From: Alexei Mozaidze Date: Wed, 3 Dec 2025 20:32:06 +0400 Subject: [PATCH 004/127] fix(fennel): highlight `$[1-9]` in multi-symbol context properly Highlights the dollar symbol properly in multi-symbol contexts, like `$3.some.properties`. There was already a fix for a similar issue on #8067, but it only addressed `$.some.properties`, but not the variant with the argument number in it. --- runtime/queries/fennel/highlights.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/queries/fennel/highlights.scm b/runtime/queries/fennel/highlights.scm index c02f7bd14..a70f200dc 100644 --- a/runtime/queries/fennel/highlights.scm +++ b/runtime/queries/fennel/highlights.scm @@ -102,13 +102,13 @@ ]) ((symbol) @variable.parameter - (#any-of? @variable.parameter "$" "$...")) + (#lua-match? @variable.parameter "^%$[1-9]?$")) ((symbol_fragment) @variable.parameter - (#eq? @variable.parameter "$")) + (#lua-match? @variable.parameter "^%$[1-9]?$")) ((symbol) @variable.parameter - (#lua-match? @variable.parameter "^%$[1-9]$")) + (#eq? @variable.parameter "$...")) ((symbol) @operator (#any-of? @operator From 75797cdd8ac125c7ace065b17788b439dcf89a71 Mon Sep 17 00:00:00 2001 From: Dennis van den Berg Date: Thu, 4 Dec 2025 10:42:01 +0100 Subject: [PATCH 005/127] feat(angular): add style_unit highlighting(#8312) --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/angular/highlights.scm | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 49d2a3bed..749f7c6ec 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -18,7 +18,7 @@ return { }, angular = { install_info = { - revision = '56fffa8c9ea7389cb2237f4a01c4a2058ac64416', + revision = 'd2f388435b062fdd6b3c386db6c23db2da67e578', url = 'https://github.com/dlvandenberg/tree-sitter-angular', }, maintainers = { '@dlvandenberg' }, diff --git a/runtime/queries/angular/highlights.scm b/runtime/queries/angular/highlights.scm index 4793745b4..ad192329a 100644 --- a/runtime/queries/angular/highlights.scm +++ b/runtime/queries/angular/highlights.scm @@ -2,6 +2,8 @@ (identifier) @variable +(style_unit) @variable + (pipe_operator) @operator (string) @string From e0eec76dad852814e5972aa66ec2dc98d03525a8 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 5 Dec 2025 15:32:28 +0100 Subject: [PATCH 006/127] fix(lua): fix some emmyluals warnings --- .emmyrc.json | 25 +++++++++++++++++++++++++ lua/nvim-treesitter/config.lua | 2 +- lua/nvim-treesitter/install.lua | 2 +- scripts/check-queries.lua | 1 - scripts/install-parsers.lua | 4 ++-- scripts/update-parsers.lua | 16 ++++++++-------- 6 files changed, 37 insertions(+), 13 deletions(-) create mode 100644 .emmyrc.json diff --git a/.emmyrc.json b/.emmyrc.json new file mode 100644 index 000000000..34d1e0b86 --- /dev/null +++ b/.emmyrc.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://raw.githubusercontent.com/EmmyLuaLs/emmylua-analyzer-rust/refs/heads/main/crates/emmylua_code_analysis/resources/schema.json", + "format": { + "externalTool": { + "program": "stylua", + "args": [ + "-", + "--stdin-filepath", + "${file}" + ] + } + }, + "diagnostics": { + "disable": [ + "unnecessary-if" + ] + }, + "codeAction": { + "insertSpace": true + }, + "strict": { + "typeCall": true, + "arrayIndex": true + } +} diff --git a/lua/nvim-treesitter/config.lua b/lua/nvim-treesitter/config.lua index 8150ad8a8..f76897bc4 100644 --- a/lua/nvim-treesitter/config.lua +++ b/lua/nvim-treesitter/config.lua @@ -7,7 +7,7 @@ M.tiers = { 'stable', 'unstable', 'unmaintained', 'unsupported' } ---@type TSConfig local config = { - install_dir = vim.fs.joinpath(vim.fn.stdpath('data'), 'site'), + install_dir = vim.fs.joinpath(vim.fn.stdpath('data') --[[@as string]], 'site'), } ---Setup call for users to override configuration configurations. diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 94d21d46a..1020e7da9 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -487,7 +487,7 @@ end local function install(languages, options) options = options or {} - local cache_dir = fs.normalize(fn.stdpath('cache')) + local cache_dir = fs.normalize(fn.stdpath('cache') --[[@as string]]) if not uv.fs_stat(cache_dir) then fn.mkdir(cache_dir, 'p') end diff --git a/scripts/check-queries.lua b/scripts/check-queries.lua index d951cf2d6..94d8951cb 100755 --- a/scripts/check-queries.lua +++ b/scripts/check-queries.lua @@ -14,7 +14,6 @@ do for _, lang in pairs(parsers) do if configs[lang] and configs[lang].install_info then - timings[lang] = {} for _, query_type in pairs(query_types) do local before = vim.uv.hrtime() local ok, query = pcall(vim.treesitter.query.get, lang, query_type) diff --git a/scripts/install-parsers.lua b/scripts/install-parsers.lua index 2d083f3c3..c97c6eecc 100755 --- a/scripts/install-parsers.lua +++ b/scripts/install-parsers.lua @@ -2,7 +2,7 @@ local generate = false local update = false -local max_jobs = nil ---@type integer? +local max_jobs = nil ---@type number? local parsers = {} for i = 1, #_G.arg do if _G.arg[i] == '--generate' then @@ -10,7 +10,7 @@ for i = 1, #_G.arg do elseif _G.arg[i] == '--update' then update = true elseif _G.arg[i]:find('^%-%-max%-jobs') then - max_jobs = _G.arg[i]:match('=(%d+)') + max_jobs = tonumber(_G.arg[i]:match('=(%d+)')) else parsers[#parsers + 1] = _G.arg[i] ---@type string end diff --git a/scripts/update-parsers.lua b/scripts/update-parsers.lua index 83f724970..bab572c27 100755 --- a/scripts/update-parsers.lua +++ b/scripts/update-parsers.lua @@ -6,7 +6,7 @@ -- nvim -l update-parsers.lua --tier=1 # update stable parsers to latest version -- nvim -l update-parsers.lua --tier=2 # update unstable parsers to latest commit -local tier = nil ---@type integer? +local tier = nil ---@type number? for i = 1, #_G.arg do if _G.arg[i]:find('^%-%-tier=') then tier = tonumber(_G.arg[i]:match('=(%d+)')) @@ -41,15 +41,15 @@ for k, p in pairs(parsers) do if #vim.tbl_keys(jobs) % 100 == 0 or next(parsers, k) == nil then for name, job in pairs(jobs) do - local stdout = vim.split(job:wait().stdout, '\n') + local stdout = vim.split(job:wait().stdout or '', '\n') jobs[name] = nil - local info = parsers[name].install_info - assert(info) + assert(parsers[name]) + local info = assert(parsers[name].install_info) - local sha ---@type string + local sha ---@type string? if parsers[name].tier == 1 then - sha = stdout[#stdout - 1]:match('v[%d%.]+$') + sha = stdout[#stdout - 1] and stdout[#stdout - 1]:match('v[%d%.]+$') else local branch = info.branch local line = 1 @@ -61,10 +61,10 @@ for k, p in pairs(parsers) do end end end - sha = vim.split(stdout[line], '\t')[1] + sha = stdout[line] and vim.split(stdout[line], '\t')[1] end - if info.revision ~= sha then + if sha and info.revision ~= sha then info.revision = sha updates[#updates + 1] = name end From 6f2121231af93a8d448b937ac60f3476a722286e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 6 Dec 2025 13:04:17 +0100 Subject: [PATCH 007/127] feat(parsers): update angular, c3, desktop, elm, forth, inko, mlir, nix, pkl, powershell, templ, xresources --- lua/nvim-treesitter/parsers.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 749f7c6ec..e1e5cc23c 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -18,7 +18,7 @@ return { }, angular = { install_info = { - revision = 'd2f388435b062fdd6b3c386db6c23db2da67e578', + revision = '3bd2036e710f609ea08fcfca5a1eb1169ecc114f', url = 'https://github.com/dlvandenberg/tree-sitter-angular', }, maintainers = { '@dlvandenberg' }, @@ -166,7 +166,7 @@ return { }, c3 = { install_info = { - revision = '2e852d524cdab2e857ac7fb3ad814b39ae858916', + revision = '3bcb189c85a15d5e47a12947fbb25cd6604025f5', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, @@ -346,7 +346,7 @@ return { }, desktop = { install_info = { - revision = '2d93b616b0c247121dab59590b3182af1a9ecb3b', + revision = 'f5709fd5297676875aa6d636e52cff7039573cb0', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -481,7 +481,7 @@ return { }, elm = { install_info = { - revision = '027728466b8115cf807517af943cbeaed34053fc', + revision = '3d000d37b99ac2640bf24c1a7a5c9a58485778df', url = 'https://github.com/elm-tooling/tree-sitter-elm', }, maintainers = { '@zweimach' }, @@ -584,7 +584,7 @@ return { }, forth = { install_info = { - revision = '90189238385cf636b9ee99ce548b9e5b5e569d48', + revision = '360ef13f8c609ec6d2e80782af69958b84e36cd0', url = 'https://github.com/AlexanderBrevig/tree-sitter-forth', }, maintainers = { '@amaanq' }, @@ -1041,7 +1041,7 @@ return { }, inko = { install_info = { - revision = '9d7ed4f6c0ea2a8f846f3bb00e33ab21ec9ca379', + revision = 'fc37d05c363ccf7f515354c5a47d72b2d3ff555e', url = 'https://github.com/inko-lang/tree-sitter-inko', }, maintainers = { '@yorickpeterse' }, @@ -1406,7 +1406,7 @@ return { mlir = { install_info = { generate = true, - revision = '80ac665f68a5d1c6ca0443f71b6cd60e24e84157', + revision = '834a0b01e98eaf4313dfd48778e20bef1738ff8f', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1470,7 +1470,7 @@ return { }, nix = { install_info = { - revision = 'bfcb03e6ddccc5a1eb84cea0176096f85a7af333', + revision = 'eabf96807ea4ab6d6c7f09b671a88cd483542840', url = 'https://github.com/nix-community/tree-sitter-nix', }, maintainers = { '@leo60228', '@zimbatm' }, @@ -1617,7 +1617,7 @@ return { }, pkl = { install_info = { - revision = '82f0e990b727374014371681457cc6ea5c3daa97', + revision = 'd50709f1b71e77844c4551c655792d100a5ca559', url = 'https://github.com/apple/tree-sitter-pkl', }, maintainers = { '@ribru17' }, @@ -1660,7 +1660,7 @@ return { powershell = { filetype = 'ps1', install_info = { - revision = '9379c77984af1f3d3d7e3cc5e897de3496725280', + revision = '17f0c1a6514d3b46e64df7b88f464c0bd85078a6', url = 'https://github.com/airbus-cert/tree-sitter-powershell', }, maintainers = { '@L2jLiga' }, @@ -2312,7 +2312,7 @@ return { }, templ = { install_info = { - revision = '1975f67058325403c5412cde48b181a3fa817870', + revision = '3057cd485f7f23a8ad24107c6adc604f8c5ce3db', url = 'https://github.com/vrischmann/tree-sitter-templ', }, maintainers = { '@vrischmann' }, @@ -2637,7 +2637,7 @@ return { }, xresources = { install_info = { - revision = 'd466418f1c8850276bb7787a135372cb70868b1d', + revision = 'a96227aaa37e5f8e1a5888bfac2dcb31ad0bf1f1', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 596923959a50d8d975ec129f531f6673ea72fc21 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 6 Dec 2025 13:22:04 +0100 Subject: [PATCH 008/127] fix(inko): downgrade parser Problem: The commit https://github.com/inko-lang/tree-sitter-inko/commit/fc37d05c363ccf7f515354c5a47d72b2d3ff555e broke parsing a textobjects query. Solution: Downgrade parser to previous commit and pin it (until we can move it to tier 1). --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 17644448a..7a3380cd8 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -140,7 +140,7 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD [idl](https://github.com/cathaysia/tree-sitter-idl) | unstable | `H IJ ` | @cathaysia [idris](https://github.com/kayhide/tree-sitter-idris) | unstable | `HF JL` | [ini](https://github.com/justinmk/tree-sitter-ini) | unstable | `HF J ` | @theHamsta -[inko](https://github.com/inko-lang/tree-sitter-inko) | unstable | `HFIJL` | @yorickpeterse +[inko](https://github.com/inko-lang/tree-sitter-inko) | unmaintained | `HFIJL` | @yorickpeterse [ispc](https://github.com/tree-sitter-grammars/tree-sitter-ispc) | unstable | `HFIJL` | @fab4100 [janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | unstable | `HF JL` | @sogaiu [java](https://github.com/tree-sitter/tree-sitter-java) | unstable | `HFIJL` | @p00f diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e1e5cc23c..13b481140 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1041,11 +1041,11 @@ return { }, inko = { install_info = { - revision = 'fc37d05c363ccf7f515354c5a47d72b2d3ff555e', + revision = '9d7ed4f6c0ea2a8f846f3bb00e33ab21ec9ca379', url = 'https://github.com/inko-lang/tree-sitter-inko', }, maintainers = { '@yorickpeterse' }, - tier = 2, + tier = 3, }, ispc = { install_info = { From 41913a8d448f4f95a7819bfbc90ddf17b97cd84e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 6 Dec 2025 13:54:14 +0100 Subject: [PATCH 009/127] feat(bash): update parser Breaking change: removed double parenthesis as valid opening to arithmetic expansion. (Only `$((` is allowed according to the manual.) --- lua/nvim-treesitter/parsers.lua | 2 +- tests/query/highlights/bash/double-parens.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 13b481140..2791d19a8 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -77,7 +77,7 @@ return { }, bash = { install_info = { - revision = '20f55fb9663568f16ebceaac7673d2aa530add46', + revision = 'a06c2e4415e9bc0346c6b86d401879ffb44058f7', url = 'https://github.com/tree-sitter/tree-sitter-bash', }, maintainers = { '@TravonteD' }, diff --git a/tests/query/highlights/bash/double-parens.sh b/tests/query/highlights/bash/double-parens.sh index 8d841d170..7f9209713 100644 --- a/tests/query/highlights/bash/double-parens.sh +++ b/tests/query/highlights/bash/double-parens.sh @@ -1,6 +1,6 @@ -if (( $(tree-sitter parse test/Petalisp/**/*.lisp -q | wc -l) > 2 )); then -# ^ @punctuation.special -# ^ @punctuation.special -# ^ @punctuation.bracket +if $(( $(tree-sitter parse test/Petalisp/**/*.lisp -q | wc -l) > 2 )); then +# ^ @punctuation.special +# ^ @punctuation.special +# ^ @punctuation.bracket exit 1 fi From d72fa25b545da316cae7e596263656eac7afc2af Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 6 Dec 2025 14:05:46 +0100 Subject: [PATCH 010/127] feat(fortran)!: update parser and queries Breaking change: `(do_loop_statement)` renamed to `(do_loop)` --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/fortran/folds.scm | 2 +- runtime/queries/fortran/indents.scm | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 2791d19a8..304e3a24d 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -592,7 +592,7 @@ return { }, fortran = { install_info = { - revision = '8334abca785db3a041292e3b3b818a82a55b238f', + revision = 'd0d1bc84c43870788c1b402f2e6b490b27257f9e', url = 'https://github.com/stadelmanma/tree-sitter-fortran', }, maintainers = { '@amaanq' }, diff --git a/runtime/queries/fortran/folds.scm b/runtime/queries/fortran/folds.scm index cedbdb635..7b06b1719 100644 --- a/runtime/queries/fortran/folds.scm +++ b/runtime/queries/fortran/folds.scm @@ -3,7 +3,7 @@ (if_statement) (where_statement) (enum_statement) - (do_loop_statement) + (do_loop) (derived_type_definition) (function) (subroutine) diff --git a/runtime/queries/fortran/indents.scm b/runtime/queries/fortran/indents.scm index 86704c4f4..0f9ba3d7e 100644 --- a/runtime/queries/fortran/indents.scm +++ b/runtime/queries/fortran/indents.scm @@ -5,7 +5,7 @@ (function) ; (interface) (if_statement) - (do_loop_statement) + (do_loop) (where_statement) (derived_type_definition) (enum) From d2350758b39dce3593ffa8b058f863ea4cfa5b0e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 5 Dec 2025 09:59:04 +0100 Subject: [PATCH 011/127] feat(parsers)!: remove gitlab-hosted blueprint, fusion, jsonc Problem: Gitlab has too frequent outages, which break automation. Solution: Drop all Gitlab-hosted parsers (two of which have been unmaintained for years). --- CONTRIBUTING.md | 3 + SUPPORTED_LANGUAGES.md | 3 - lua/nvim-treesitter/_meta/parsers.lua | 2 +- lua/nvim-treesitter/parsers.lua | 25 ---- runtime/queries/blueprint/highlights.scm | 75 ---------- runtime/queries/blueprint/injections.scm | 2 - runtime/queries/fusion/folds.scm | 6 - runtime/queries/fusion/highlights.scm | 132 ------------------ runtime/queries/fusion/indents.scm | 24 ---- runtime/queries/fusion/injections.scm | 5 - runtime/queries/fusion/locals.scm | 23 --- runtime/queries/jsonc/folds.scm | 1 - runtime/queries/jsonc/highlights.scm | 3 - runtime/queries/jsonc/indents.scm | 3 - runtime/queries/jsonc/injections.scm | 2 - runtime/queries/jsonc/locals.scm | 1 - tests/query/highlights/fusion/afx.fusion | 17 --- tests/query/highlights/fusion/basic.fusion | 60 -------- .../highlights/fusion/expressions.fusion | 82 ----------- 19 files changed, 4 insertions(+), 465 deletions(-) delete mode 100644 runtime/queries/blueprint/highlights.scm delete mode 100644 runtime/queries/blueprint/injections.scm delete mode 100644 runtime/queries/fusion/folds.scm delete mode 100644 runtime/queries/fusion/highlights.scm delete mode 100644 runtime/queries/fusion/indents.scm delete mode 100644 runtime/queries/fusion/injections.scm delete mode 100644 runtime/queries/fusion/locals.scm delete mode 100644 runtime/queries/jsonc/folds.scm delete mode 100644 runtime/queries/jsonc/highlights.scm delete mode 100644 runtime/queries/jsonc/indents.scm delete mode 100644 runtime/queries/jsonc/injections.scm delete mode 100644 runtime/queries/jsonc/locals.scm delete mode 100644 tests/query/highlights/fusion/afx.fusion delete mode 100644 tests/query/highlights/fusion/basic.fusion delete mode 100644 tests/query/highlights/fusion/expressions.fusion diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4ec8e192..0dc03947b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,6 +42,9 @@ zimbu = { >[!IMPORTANT] > The "maintainers" here refers to the person maintaining the **queries** in `nvim-treesitter`, not the parser maintainers (who likely don't use Neovim). The maintainers' duty is to review issues and PRs related to the query and to keep them updated with respect to parser changes. +>[!IMPORTANT] +> Due to reliability issues with smaller codeforges, only Github-hosted parsers are currently eligible for inclusion. (The development may happen elsewhere, but there must at least exist a Github mirror to pull the source from.) We are monitoring the situation and hope to support more codeforges again in the future. + >[!NOTE] > To qualify for Tier 1 ("stable"), a parser needs to > * make releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns); diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 7a3380cd8..695171c15 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -28,7 +28,6 @@ Language | Tier | Queries | Maintainer [bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | unstable | `HFIJL` | @amaanq [bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq [blade](https://github.com/EmranMR/tree-sitter-blade) | unstable | `HFIJ ` | @calebdw -[blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint) | unstable | `H  J ` | @gabmus [bp](https://github.com/ambroisie/tree-sitter-bp)[^bp] | unstable | `HFIJL` | @ambroisie [brightscript](https://github.com/ajdelcimmuto/tree-sitter-brightscript) | unstable | `HFIJ ` | @ajdelcimmuto [c](https://github.com/tree-sitter/tree-sitter-c) | unstable | `HFIJL` | @amaanq @@ -89,7 +88,6 @@ ecma (queries only)[^ecma] | unstable | `HFIJL` | @steelsojka [fsh](https://github.com/mgramigna/tree-sitter-fsh) | unstable | `H  J ` | @mgramigna [fsharp](https://github.com/ionide/tree-sitter-fsharp) | unstable | `H  J ` | @nsidorenco [func](https://github.com/tree-sitter-grammars/tree-sitter-func) | unstable | `H  J ` | @amaanq -[fusion](https://gitlab.com/jirgn/tree-sitter-fusion) | unstable | `HFIJL` | @jirgn [gap](https://github.com/gap-system/tree-sitter-gap)[^gap] | unstable | `HF JL` | @reiniscirpons [gaptst](https://github.com/gap-system/tree-sitter-gaptst)[^gaptst] | unstable | `HF J ` | @reiniscirpons [gdscript](https://github.com/PrestonKnopp/tree-sitter-gdscript)[^gdscript] | unmaintained | `HFIJL` | @@ -152,7 +150,6 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD [jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | unstable | `H    ` | @steelsojka [json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFI L` | @steelsojka [json5](https://github.com/Joakker/tree-sitter-json5) | unstable | `H  J ` | @Joakker -[jsonc](https://gitlab.com/WhyNotHugo/tree-sitter-jsonc) | unstable | `HFIJL` | @WhyNotHugo [jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | unstable | `HF JL` | @nawordar jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka [julia](https://github.com/tree-sitter-grammars/tree-sitter-julia) | unstable | `HFIJL` | @clason diff --git a/lua/nvim-treesitter/_meta/parsers.lua b/lua/nvim-treesitter/_meta/parsers.lua index 5af809bb0..3a97b35a5 100644 --- a/lua/nvim-treesitter/_meta/parsers.lua +++ b/lua/nvim-treesitter/_meta/parsers.lua @@ -3,7 +3,7 @@ error('Cannot require a meta file') ---@class InstallInfo --- ----URL of parser repo (Github/Gitlab) +---URL of parser repo (Github) ---@field url string --- ---Commit hash of parser to download (compatible with queries) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 304e3a24d..1351a00de 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -131,14 +131,6 @@ return { maintainers = { '@calebdw' }, tier = 2, }, - blueprint = { - install_info = { - revision = '355ef84ef8a958ac822117b652cf4d49bac16c79', - url = 'https://gitlab.com/gabmus/tree-sitter-blueprint', - }, - maintainers = { '@gabmus' }, - tier = 2, - }, bp = { install_info = { revision = 'ee641d15390183d7535777947ce0f2f1fbcee69f', @@ -623,14 +615,6 @@ return { maintainers = { '@amaanq' }, tier = 2, }, - fusion = { - install_info = { - revision = '19db2f47ba4c3a0f6238d4ae0e2abfca16e61dd6', - url = 'https://gitlab.com/jirgn/tree-sitter-fusion', - }, - maintainers = { '@jirgn' }, - tier = 2, - }, gap = { install_info = { revision = '2bac14863b76ad0ff6fd7204c50574732acd66df', @@ -1142,15 +1126,6 @@ return { maintainers = { '@Joakker' }, tier = 2, }, - jsonc = { - install_info = { - revision = '02b01653c8a1c198ae7287d566efa86a135b30d5', - url = 'https://gitlab.com/WhyNotHugo/tree-sitter-jsonc', - }, - maintainers = { '@WhyNotHugo' }, - requires = { 'json' }, - tier = 2, - }, jsonnet = { install_info = { revision = 'ddd075f1939aed8147b7aa67f042eda3fce22790', diff --git a/runtime/queries/blueprint/highlights.scm b/runtime/queries/blueprint/highlights.scm deleted file mode 100644 index f3c39f232..000000000 --- a/runtime/queries/blueprint/highlights.scm +++ /dev/null @@ -1,75 +0,0 @@ -(object_id) @variable - -(string) @string - -(escape_sequence) @string.escape - -(comment) @comment @spell - -(constant) @constant.builtin - -(boolean) @boolean - -(using) @keyword.import - -(template) @keyword - -(decorator) @attribute - -(property_definition - (property_name) @property) - -(object) @type - -(signal_binding - (signal_name) @function.builtin) - -(signal_binding - (function - (identifier)) @function) - -(signal_binding - "swapped" @keyword) - -(styles_list - "styles" @function.macro) - -(layout_definition - "layout" @function.macro) - -(gettext_string - "_" @function.builtin) - -(menu_definition - "menu" @keyword) - -(menu_section - "section" @keyword) - -(menu_item - "item" @function.macro) - -(import_statement - (gobject_library) @module) - -(import_statement - (version_number) @number.float) - -(float) @number.float - -(number) @number - -[ - ";" - "." - "," -] @punctuation.delimiter - -[ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket diff --git a/runtime/queries/blueprint/injections.scm b/runtime/queries/blueprint/injections.scm deleted file mode 100644 index 2f0e58eb6..000000000 --- a/runtime/queries/blueprint/injections.scm +++ /dev/null @@ -1,2 +0,0 @@ -((comment) @injection.content - (#set! injection.language "comment")) diff --git a/runtime/queries/fusion/folds.scm b/runtime/queries/fusion/folds.scm deleted file mode 100644 index 179fc160b..000000000 --- a/runtime/queries/fusion/folds.scm +++ /dev/null @@ -1,6 +0,0 @@ -[ - (comment) - (block) - (afx_comment) - (afx_element) -] @fold diff --git a/runtime/queries/fusion/highlights.scm b/runtime/queries/fusion/highlights.scm deleted file mode 100644 index 7108e5705..000000000 --- a/runtime/queries/fusion/highlights.scm +++ /dev/null @@ -1,132 +0,0 @@ -(comment) @comment @spell - -(afx_comment) @comment @spell - -; identifiers afx -(afx_opening_element - (afx_identifier) @tag) - -(afx_closing_element - (afx_identifier) @tag) - -(afx_element_self_closing - (afx_identifier) @tag) - -(afx_attribute - (afx_property_identifier) @tag.attribute) - -(afx_text) @spell - -; identifiers eel -(eel_object_path - (eel_path_identifier) @variable.builtin - (#any-of? @variable.builtin "this" "props")) - -(eel_object_path - (eel_path_identifier) @variable) - -(eel_object_pair - key: (eel_property_name) @property) - -(eel_method_name) @function - -(eel_parameter) @variable - -; identifiers fusion -; ----------- -(path_part) @property - -(meta_property) @attribute - -(prototype_signature - "prototype" @keyword) - -(include_statement - "include" @keyword.import - (source_file) @string.special.url) - -(namespace_declaration - "namespace" @keyword.type - (alias_namespace) @module) - -(type - name: (type_name) @type) - -; tokens -; ------ -(afx_opening_element - [ - "<" - ">" - ] @punctuation.bracket) - -(afx_closing_element - [ - "<" - ">" - "/" - ] @punctuation.bracket) - -(afx_element_self_closing - [ - "<" - "/>" - ] @punctuation.bracket) - -[ - (package_name) - (alias_namespace) -] @module - -(namespace_declaration - "=" @operator) - -(assignment - "=" @operator) - -(copy - "<" @operator) - -(deletion) @operator - -(eel_binary_expression - operator: _ @operator) - -(eel_not_expression - [ - "!" - "not" - ] @operator) - -(string) @string - -(number) @number - -(boolean) @boolean - -(null) @constant.builtin - -(value_expression - start: _ @punctuation.special - end: _ @punctuation.special) - -[ - "(" - ")" - "{" - "}" - "[" - "]" -] @punctuation.bracket - -[ - ":" - "." - "?" -] @punctuation.delimiter - -(eel_ternary_expression - [ - "?" - ":" - ] @keyword.conditional.ternary) diff --git a/runtime/queries/fusion/indents.scm b/runtime/queries/fusion/indents.scm deleted file mode 100644 index 0ba6cf758..000000000 --- a/runtime/queries/fusion/indents.scm +++ /dev/null @@ -1,24 +0,0 @@ -[ - (block) - (value_dsl) - (afx_element) - (afx_element_self_closing) - (eel_array) - (eel_object) -] @indent.begin - -(block - end: _ @indent.branch) - -(value_dsl - end: _ @indent.branch) - -(eel_array - end: _ @indent.branch) - -(eel_object - end: _ @indent.branch) - -(afx_closing_element) @indent.branch - -(comment) @indent.ignore diff --git a/runtime/queries/fusion/injections.scm b/runtime/queries/fusion/injections.scm deleted file mode 100644 index 085cdb458..000000000 --- a/runtime/queries/fusion/injections.scm +++ /dev/null @@ -1,5 +0,0 @@ -([ - (comment) - (afx_comment) -] @injection.content - (#set! injection.language "comment")) diff --git a/runtime/queries/fusion/locals.scm b/runtime/queries/fusion/locals.scm deleted file mode 100644 index d23e0ab46..000000000 --- a/runtime/queries/fusion/locals.scm +++ /dev/null @@ -1,23 +0,0 @@ -; Fusion base -(block) @local.scope - -(namespace_declaration - (alias_namespace) @local.definition.namespace) - -(property - (path - (path_part) @local.definition.field)) - -(type - namespace: (package_name)? @local.definition.namespace - name: (type_name) @local.definition.type) - -; Eel Expressions -(eel_arrow_function) @local.scope - -(eel_object) @local.scope - -(eel_parameter) @local.definition.parameter - -(eel_object_pair - key: (eel_property_name) @local.definition.field) diff --git a/runtime/queries/jsonc/folds.scm b/runtime/queries/jsonc/folds.scm deleted file mode 100644 index 41269219e..000000000 --- a/runtime/queries/jsonc/folds.scm +++ /dev/null @@ -1 +0,0 @@ -; inherits: json diff --git a/runtime/queries/jsonc/highlights.scm b/runtime/queries/jsonc/highlights.scm deleted file mode 100644 index e50112155..000000000 --- a/runtime/queries/jsonc/highlights.scm +++ /dev/null @@ -1,3 +0,0 @@ -; inherits: json - -(comment) @comment @spell diff --git a/runtime/queries/jsonc/indents.scm b/runtime/queries/jsonc/indents.scm deleted file mode 100644 index 3b01ca999..000000000 --- a/runtime/queries/jsonc/indents.scm +++ /dev/null @@ -1,3 +0,0 @@ -; inherits: json - -(comment) @indent.ignore diff --git a/runtime/queries/jsonc/injections.scm b/runtime/queries/jsonc/injections.scm deleted file mode 100644 index 2f0e58eb6..000000000 --- a/runtime/queries/jsonc/injections.scm +++ /dev/null @@ -1,2 +0,0 @@ -((comment) @injection.content - (#set! injection.language "comment")) diff --git a/runtime/queries/jsonc/locals.scm b/runtime/queries/jsonc/locals.scm deleted file mode 100644 index 41269219e..000000000 --- a/runtime/queries/jsonc/locals.scm +++ /dev/null @@ -1 +0,0 @@ -; inherits: json diff --git a/tests/query/highlights/fusion/afx.fusion b/tests/query/highlights/fusion/afx.fusion deleted file mode 100644 index 4ccb8174f..000000000 --- a/tests/query/highlights/fusion/afx.fusion +++ /dev/null @@ -1,17 +0,0 @@ -property = afx` - - - -
text
- - - - - - - true} /> - - - - -` diff --git a/tests/query/highlights/fusion/basic.fusion b/tests/query/highlights/fusion/basic.fusion deleted file mode 100644 index 5f3cc346a..000000000 --- a/tests/query/highlights/fusion/basic.fusion +++ /dev/null @@ -1,60 +0,0 @@ -include: SomeFile.fusion -//<- @keyword.import -// ^ @string.special.url - -namespace: ns = Neos.Fusion.Space -//<- @keyword.type -// ^ @module -// ^ @operator -// ^ @module - -prototype(MyType) < prototype(ns:SuperType) { -//<-keyword -// ^ @punctuation.bracket -// ^ @type -// ^ @punctuation.bracket -// ^ @operator -// ^ @module -// ^ @type - - deleteProp > - // ^ @operator - - string = 'value' - //<- @property - // ^ @operator - // ^ @string - - number = 10.2 - // ^ @number - - null = null - // ^ @constant.builtin - - boolean = true - // ^ @boolean - - property.inner = "value" - //<- @property - // ^ @property - - property.@meta = "value" - //<- @property - // ^ @attribute - - property.type = SomeType - //<- @property - // ^ @type - - property.aliasedType = ns:SomeType - //<- @property - // ^ @module - // ^ @type - - property.fullQualifiedType = SomeNamespace:SomeType - //<- @property - // ^ @module - // ^ @type - -} - diff --git a/tests/query/highlights/fusion/expressions.fusion b/tests/query/highlights/fusion/expressions.fusion deleted file mode 100644 index b1822dda8..000000000 --- a/tests/query/highlights/fusion/expressions.fusion +++ /dev/null @@ -1,82 +0,0 @@ -string = ${'foo'} -// ^string - -string = ${'foo \'bar\' baz'} -// ^string - -string = ${"foo"} -// ^string - -string = ${"foo ${test}"} -// ^string - -boolean = ${true} -// ^boolean - -number = ${1} -// ^number - -number = ${1.2} -// ^number - -propertyPath = ${property.path} -// ^variable -// ^variable - -thisorProps = ${this.path} -// ^variable.builtin -// ^variable - -thisorProps = ${props.path} -// ^variable.builtin -// ^variable - -array = ${[]} -// ^punctuation.bracket - -array = ${[true, 'string', 1, [true]]} -// ^punctuation.bracket -// ^boolean -// ^string -// ^number -// ^punctuation.bracket -// ^boolean - -object = ${{}} -// ^punctuation.bracket - -object = ${{first: 'value', second: true, third: [], fourth: object.path }} -// ^property -// ^string -// ^property -// ^boolean -// ^property -// ^punctuation.bracket -// ^property -// ^variable - -result = ${methodCall()} -// ^function - -result = ${Some.methodCall(param, param)} -// ^function -// ^variable -// ^variable - -arrowFunction = ${map(foo, (bar, buz) => bar * buz)} -// ^function -// ^variable -// ^variable - -logic = ${!foo && !(bar || baz) and not 'string'} -// ^operator -// ^operator -// ^operator -// ^operator -// ^operator - -ternary = ${ check ? true : false} -// ^@keyword.conditional.ternary -// ^@keyword.conditional.ternary - - From 9d47b2558b29fc8c0bce5f54b8424c5f8e2c80c7 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 6 Dec 2025 11:12:18 +0100 Subject: [PATCH 012/127] feat(json): add support for jsonc files --- SUPPORTED_LANGUAGES.md | 2 +- plugin/filetypes.lua | 1 + runtime/queries/json/highlights.scm | 2 ++ runtime/queries/json/indents.scm | 2 ++ runtime/queries/json/injections.scm | 2 ++ 5 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 runtime/queries/json/injections.scm diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 695171c15..0000baa6d 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -148,7 +148,7 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD [jinja_inline](https://github.com/cathaysia/tree-sitter-jinja)[^jinja_inline] | unstable | `H  J ` | @cathaysia [jq](https://github.com/flurie/tree-sitter-jq) | unstable | `H  JL` | @ObserverOfTime [jsdoc](https://github.com/tree-sitter/tree-sitter-jsdoc) | unstable | `H    ` | @steelsojka -[json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFI L` | @steelsojka +[json](https://github.com/tree-sitter/tree-sitter-json) | unstable | `HFIJL` | @steelsojka [json5](https://github.com/Joakker/tree-sitter-json5) | unstable | `H  J ` | @Joakker [jsonnet](https://github.com/sourcegraph/tree-sitter-jsonnet) | unstable | `HF JL` | @nawordar jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka diff --git a/plugin/filetypes.lua b/plugin/filetypes.lua index 5e23adffd..7759c1f5c 100644 --- a/plugin/filetypes.lua +++ b/plugin/filetypes.lua @@ -24,6 +24,7 @@ local filetypes = { ini = { 'confini', 'dosini' }, janet_simple = { 'janet' }, javascript = { 'javascriptreact', 'ecma', 'ecmascript', 'jsx', 'js' }, + json = { 'jsonc' }, glimmer_javascript = { 'javascript.glimmer' }, latex = { 'tex' }, linkerscript = { 'ld' }, diff --git a/runtime/queries/json/highlights.scm b/runtime/queries/json/highlights.scm index 85915285a..61f087166 100644 --- a/runtime/queries/json/highlights.scm +++ b/runtime/queries/json/highlights.scm @@ -36,3 +36,5 @@ ((escape_sequence) @conceal (#eq? @conceal "\\\"") (#set! conceal "\"")) + +(comment) @comment @spell diff --git a/runtime/queries/json/indents.scm b/runtime/queries/json/indents.scm index 8274ee3d5..3680289bd 100644 --- a/runtime/queries/json/indents.scm +++ b/runtime/queries/json/indents.scm @@ -7,3 +7,5 @@ "}" "]" ] @indent.branch + +(comment) @indent.ignore diff --git a/runtime/queries/json/injections.scm b/runtime/queries/json/injections.scm new file mode 100644 index 000000000..2f0e58eb6 --- /dev/null +++ b/runtime/queries/json/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) From 20db421f5fba0c23f6a7629af96ba6d4fc531677 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Sat, 6 Dec 2025 22:38:22 +0100 Subject: [PATCH 013/127] feat(inko): update to v0.4.0 (#8327) This changes the structure of "if" expressions so the queries for nvim-treesitter-textobjects can be changed as to not cause any crashes. --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 0000baa6d..b2c006f84 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -138,7 +138,7 @@ html_tags (queries only)[^html_tags] | unstable | `H IJ ` | @TravonteD [idl](https://github.com/cathaysia/tree-sitter-idl) | unstable | `H IJ ` | @cathaysia [idris](https://github.com/kayhide/tree-sitter-idris) | unstable | `HF JL` | [ini](https://github.com/justinmk/tree-sitter-ini) | unstable | `HF J ` | @theHamsta -[inko](https://github.com/inko-lang/tree-sitter-inko) | unmaintained | `HFIJL` | @yorickpeterse +[inko](https://github.com/inko-lang/tree-sitter-inko) | stable | `HFIJL` | @yorickpeterse [ispc](https://github.com/tree-sitter-grammars/tree-sitter-ispc) | unstable | `HFIJL` | @fab4100 [janet_simple](https://github.com/sogaiu/tree-sitter-janet-simple) | unstable | `HF JL` | @sogaiu [java](https://github.com/tree-sitter/tree-sitter-java) | unstable | `HFIJL` | @p00f diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 1351a00de..49f16187b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1025,11 +1025,11 @@ return { }, inko = { install_info = { - revision = '9d7ed4f6c0ea2a8f846f3bb00e33ab21ec9ca379', + revision = 'v0.4.0', url = 'https://github.com/inko-lang/tree-sitter-inko', }, maintainers = { '@yorickpeterse' }, - tier = 3, + tier = 1, }, ispc = { install_info = { From bfc6c995404def9b01055df90f016d1a3be17ce5 Mon Sep 17 00:00:00 2001 From: Cameron Date: Mon, 8 Dec 2025 11:27:09 +0100 Subject: [PATCH 014/127] fix(ruby): highlighting for string-literal symbols (#8317) --- runtime/queries/ruby/highlights.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/queries/ruby/highlights.scm b/runtime/queries/ruby/highlights.scm index a1a2c250d..0472df092 100644 --- a/runtime/queries/ruby/highlights.scm +++ b/runtime/queries/ruby/highlights.scm @@ -186,10 +186,14 @@ [ (bare_symbol) (simple_symbol) - (delimited_symbol) (hash_key_symbol) ] @string.special.symbol +(delimited_symbol + ":\"" @string.special.symbol + (string_content) @string.special.symbol + "\"" @string.special.symbol) + (regex (string_content) @string.regexp) From 93537d699851b35ae8518af17ee858981f5ea6ea Mon Sep 17 00:00:00 2001 From: Omar Valdez Date: Mon, 8 Dec 2025 03:37:42 -0800 Subject: [PATCH 015/127] feat(bash): remove unnecessary captures - Bash does not have boolean values and the builtin `true` and `false` commands are already covered by another capture. - The grammar has a `number` node and it's already captured. --- runtime/queries/bash/highlights.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/runtime/queries/bash/highlights.scm b/runtime/queries/bash/highlights.scm index 6fe370011..118ca6bd2 100644 --- a/runtime/queries/bash/highlights.scm +++ b/runtime/queries/bash/highlights.scm @@ -117,9 +117,6 @@ "SIGRTMAX-12" "SIGRTMAX-11" "SIGRTMAX-10" "SIGRTMAX-9" "SIGRTMAX-8" "SIGRTMAX-7" "SIGRTMAX-6" "SIGRTMAX-5" "SIGRTMAX-4" "SIGRTMAX-3" "SIGRTMAX-2" "SIGRTMAX-1" "SIGRTMAX")) -((word) @boolean - (#any-of? @boolean "true" "false")) - (comment) @comment @spell (test_operator) @operator @@ -190,9 +187,6 @@ (number) @number -((word) @number - (#lua-match? @number "^[0-9]+$")) - (file_redirect (word) @string.special.path) From f47f549f74cea5d5f25a5205c9e127cd882f1d20 Mon Sep 17 00:00:00 2001 From: Omar Valdez Date: Mon, 8 Dec 2025 01:09:27 -0800 Subject: [PATCH 016/127] feat(bash): highlight arguments of trap and kill builtin commands --- runtime/queries/bash/highlights.scm | 36 +++++++++++++++++++---------- runtime/queries/bash/injections.scm | 12 ++++++++++ 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/runtime/queries/bash/highlights.scm b/runtime/queries/bash/highlights.scm index 118ca6bd2..69bfaad1a 100644 --- a/runtime/queries/bash/highlights.scm +++ b/runtime/queries/bash/highlights.scm @@ -105,18 +105,6 @@ (special_variable_name) @constant -; trap -l -((word) @constant.builtin - (#any-of? @constant.builtin - "SIGHUP" "SIGINT" "SIGQUIT" "SIGILL" "SIGTRAP" "SIGABRT" "SIGBUS" "SIGFPE" "SIGKILL" "SIGUSR1" - "SIGSEGV" "SIGUSR2" "SIGPIPE" "SIGALRM" "SIGTERM" "SIGSTKFLT" "SIGCHLD" "SIGCONT" "SIGSTOP" - "SIGTSTP" "SIGTTIN" "SIGTTOU" "SIGURG" "SIGXCPU" "SIGXFSZ" "SIGVTALRM" "SIGPROF" "SIGWINCH" - "SIGIO" "SIGPWR" "SIGSYS" "SIGRTMIN" "SIGRTMIN+1" "SIGRTMIN+2" "SIGRTMIN+3" "SIGRTMIN+4" - "SIGRTMIN+5" "SIGRTMIN+6" "SIGRTMIN+7" "SIGRTMIN+8" "SIGRTMIN+9" "SIGRTMIN+10" "SIGRTMIN+11" - "SIGRTMIN+12" "SIGRTMIN+13" "SIGRTMIN+14" "SIGRTMIN+15" "SIGRTMAX-14" "SIGRTMAX-13" - "SIGRTMAX-12" "SIGRTMAX-11" "SIGRTMAX-10" "SIGRTMAX-9" "SIGRTMAX-8" "SIGRTMAX-7" "SIGRTMAX-6" - "SIGRTMAX-5" "SIGRTMAX-4" "SIGRTMAX-3" "SIGRTMAX-2" "SIGRTMAX-1" "SIGRTMAX")) - (comment) @comment @spell (test_operator) @operator @@ -179,6 +167,30 @@ (word) @variable.parameter) ]) +; help trap +(command + name: (command_name + (word) @_command) + argument: (word) @string.special + (#eq? @_command "trap") + (#any-of? @string.special "EXIT" "DEBUG" "RETURN" "ERR")) + +; trap -l +(command + name: (command_name + (word) @_command) + argument: (word) @string.special + (#any-of? @_command "trap" "kill") + (#any-of? @string.special + "SIGHUP" "SIGINT" "SIGQUIT" "SIGILL" "SIGTRAP" "SIGABRT" "SIGBUS" "SIGFPE" "SIGKILL" "SIGUSR1" + "SIGSEGV" "SIGUSR2" "SIGPIPE" "SIGALRM" "SIGTERM" "SIGSTKFLT" "SIGCHLD" "SIGCONT" "SIGSTOP" + "SIGTSTP" "SIGTTIN" "SIGTTOU" "SIGURG" "SIGXCPU" "SIGXFSZ" "SIGVTALRM" "SIGPROF" "SIGWINCH" + "SIGIO" "SIGPWR" "SIGSYS" "SIGRTMIN" "SIGRTMIN+1" "SIGRTMIN+2" "SIGRTMIN+3" "SIGRTMIN+4" + "SIGRTMIN+5" "SIGRTMIN+6" "SIGRTMIN+7" "SIGRTMIN+8" "SIGRTMIN+9" "SIGRTMIN+10" "SIGRTMIN+11" + "SIGRTMIN+12" "SIGRTMIN+13" "SIGRTMIN+14" "SIGRTMIN+15" "SIGRTMAX-14" "SIGRTMAX-13" + "SIGRTMAX-12" "SIGRTMAX-11" "SIGRTMAX-10" "SIGRTMAX-9" "SIGRTMAX-8" "SIGRTMAX-7" "SIGRTMAX-6" + "SIGRTMAX-5" "SIGRTMAX-4" "SIGRTMAX-3" "SIGRTMAX-2" "SIGRTMAX-1" "SIGRTMAX")) + (declaration_command (word) @variable.parameter) diff --git a/runtime/queries/bash/injections.scm b/runtime/queries/bash/injections.scm index e1095773b..5b7e06bac 100644 --- a/runtime/queries/bash/injections.scm +++ b/runtime/queries/bash/injections.scm @@ -76,3 +76,15 @@ (#offset! @injection.content 0 1 0 -1) (#set! injection.include-children) (#set! injection.language "readline")) + +((command + name: (command_name) @_command + . + argument: [ + (string) + (raw_string) + ] @injection.content) + (#eq? @_command "trap") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.include-children) + (#set! injection.self)) From a98a740c555f97924d069df8c67408d1146ebd13 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 9 Dec 2025 10:11:54 +0100 Subject: [PATCH 017/127] feat(parsers): update brightscript, desktop, gotmpl, helm, ini, javadoc, mlir, nu, powershell, slint, vimdoc, xresources --- lua/nvim-treesitter/parsers.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 49f16187b..0f9fc5057 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -142,7 +142,7 @@ return { }, brightscript = { install_info = { - revision = '55168264ea174085d2e91377a33f216190df2f51', + revision = '253fdfaa23814cb46c2d5fc19049fa0f2f62c6da', url = 'https://github.com/ajdelcimmuto/tree-sitter-brightscript', }, maintainers = { '@ajdelcimmuto' }, @@ -338,7 +338,7 @@ return { }, desktop = { install_info = { - revision = 'f5709fd5297676875aa6d636e52cff7039573cb0', + revision = 'bbcedf9a11cb6c5f7cd8fcc041301aa0c204bfc0', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -794,7 +794,7 @@ return { }, gotmpl = { install_info = { - revision = '9e54fa38db26c556c2669492063324ef481c9d43', + revision = '226692db9da6cb9939284b1ed263a0fb82d26768', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -906,7 +906,7 @@ return { helm = { install_info = { location = 'dialects/helm', - revision = '9e54fa38db26c556c2669492063324ef481c9d43', + revision = '226692db9da6cb9939284b1ed263a0fb82d26768', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -1017,7 +1017,7 @@ return { }, ini = { install_info = { - revision = 'bea223734aa9cea2c8793bf9098bd7fdef912f57', + revision = 'e4018b5176132b4f3c5d6e61cea383f42288d0f5', url = 'https://github.com/justinmk/tree-sitter-ini', }, maintainers = { '@theHamsta' }, @@ -1058,7 +1058,7 @@ return { }, javadoc = { install_info = { - revision = '2533affe83e57df9b0dbf7350cd73a84af9811b3', + revision = '5c6157fe1c44e843f739e11b41c48c5918ec8709', url = 'https://github.com/rmuir/tree-sitter-javadoc', }, maintainers = { '@rmuir' }, @@ -1381,7 +1381,7 @@ return { mlir = { install_info = { generate = true, - revision = '834a0b01e98eaf4313dfd48778e20bef1738ff8f', + revision = '1f76a88b79e70222968a9f8185992c9bb5ddacf0', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1461,7 +1461,7 @@ return { }, nu = { install_info = { - revision = '47d4b4f5369c0cae866724758ae88ef07e10e4f1', + revision = '64ba3f8f5f9c8bd21a79341f0957b453303a98b8', url = 'https://github.com/nushell/tree-sitter-nu', }, maintainers = { '@abhisheksingh0x558' }, @@ -1635,7 +1635,7 @@ return { powershell = { filetype = 'ps1', install_info = { - revision = '17f0c1a6514d3b46e64df7b88f464c0bd85078a6', + revision = '7212f47716ced384ac012b2cc428fd9f52f7c5d4', url = 'https://github.com/airbus-cert/tree-sitter-powershell', }, maintainers = { '@L2jLiga' }, @@ -2031,7 +2031,7 @@ return { }, slint = { install_info = { - revision = '927f3e2f0213d0eea7f12c978c81067c3dc4289d', + revision = 'f2e4e5a7bccb177562de8f5b4fe49a5531c9f7ca', url = 'https://github.com/slint-ui/tree-sitter-slint', }, maintainers = { '@hunger' }, @@ -2528,7 +2528,7 @@ return { }, vimdoc = { install_info = { - revision = '5cb043a38ff04cadb6b8e6688aabbf34edd0c3e3', + revision = '570dc10aed5963546322e6c935e1125b9fd747bf', url = 'https://github.com/neovim/tree-sitter-vimdoc', }, maintainers = { '@clason' }, @@ -2612,7 +2612,7 @@ return { }, xresources = { install_info = { - revision = 'a96227aaa37e5f8e1a5888bfac2dcb31ad0bf1f1', + revision = '68240ae1beef503cfe0d1bc40f25b0fab71df8f5', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 02693ce64c87e43eaa0e11e907116b2190217d07 Mon Sep 17 00:00:00 2001 From: adaitche Date: Tue, 9 Dec 2025 10:53:37 +0100 Subject: [PATCH 018/127] feat(sql): improve `@type` capture (#8315) Problem: `@type` currently captures function calls but fails to capture CTE names. Solution: Don't capture types in invocations. Add pattern for `cte`. --- runtime/queries/sql/highlights.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runtime/queries/sql/highlights.scm b/runtime/queries/sql/highlights.scm index b3a0c71c6..7a201a026 100644 --- a/runtime/queries/sql/highlights.scm +++ b/runtime/queries/sql/highlights.scm @@ -13,8 +13,12 @@ (keyword_object_id) ] @function.call -(object_reference - name: (identifier) @type) +((object_reference + name: (identifier) @type) @_obj_ref + (#not-has-parent? @_obj_ref invocation)) + +(cte + (identifier) @type) (relation alias: (identifier) @variable) From 186810d6adccccc9503785533ab569e3e63d5b37 Mon Sep 17 00:00:00 2001 From: Riad Date: Mon, 8 Dec 2025 05:21:28 +0100 Subject: [PATCH 019/127] feat(gdscript): update builtin highlights Added all builtin annotations, constants, methods and types as of godot commit : 10c7cb8 --- runtime/queries/gdscript/highlights.scm | 331 +++++++++++++++++++----- 1 file changed, 270 insertions(+), 61 deletions(-) diff --git a/runtime/queries/gdscript/highlights.scm b/runtime/queries/gdscript/highlights.scm index 3885d0068..737453059 100644 --- a/runtime/queries/gdscript/highlights.scm +++ b/runtime/queries/gdscript/highlights.scm @@ -248,34 +248,241 @@ ; Builtins ; generated from -; - godot commit: fb10e67fef -; - https://github.com/godotengine/godot/blob/fb10e67fef/doc/classes -; - https://github.com/godotengine/godot/blob/fb10e67fef/doc/classes/@GlobalScope.xml -; - https://github.com/godotengine/godot/blob/fb10e67fef/modules/gdscript/doc_classes/@GDScript.xml +; - godot commit: 10c7cb8 +; - https://github.com/godotengine/godot/blob/10c7cb878a/doc/classes +; - https://github.com/godotengine/godot/blob/10c7cb878a/doc/classes/@GlobalScope.xml +; - https://github.com/godotengine/godot/blob/10c7cb878a/modules/gdscript/doc_classes/@GDScript.xml ; Built-in Annotations ((annotation "@" @attribute (identifier) @attribute) (#any-of? @attribute ; from modules/gdscript/doc_classes/@GDScript.xml - "export" "export_category" "export_color_no_alpha" "export_custom" "export_dir" "export_enum" - "export_exp_easing" "export_file" "export_flags" "export_flags_2d_navigation" - "export_flags_2d_physics" "export_flags_2d_render" "export_flags_3d_navigation" - "export_flags_3d_physics" "export_flags_3d_render" "export_flags_avoidance" "export_global_dir" - "export_global_file" "export_group" "export_multiline" "export_node_path" "export_placeholder" - "export_range" "export_storage" "export_subgroup" "icon" "onready" "rpc" "static_unload" "tool" - "warning_ignore")) + "abstract" "export" "export_category" "export_color_no_alpha" "export_custom" "export_dir" + "export_enum" "export_exp_easing" "export_file" "export_file_path" "export_flags" + "export_flags_2d_navigation" "export_flags_2d_physics" "export_flags_2d_render" + "export_flags_3d_navigation" "export_flags_3d_physics" "export_flags_3d_render" + "export_flags_avoidance" "export_global_dir" "export_global_file" "export_group" + "export_multiline" "export_node_path" "export_placeholder" "export_range" "export_storage" + "export_subgroup" "export_tool_button" "icon" "onready" "rpc" "static_unload" "tool" + "warning_ignore" "warning_ignore_restore" "warning_ignore_start")) ; Builtin Types ((identifier) @type.builtin (#any-of? @type.builtin ; from doc/classes/*.xml - "AABB" "Array" "Basis" "Callable" "Color" "Dictionary" "NodePath" "PackedByteArray" - "PackedColorArray" "PackedFloat32Array" "PackedFloat64Array" "PackedInt32Array" - "PackedInt64Array" "PackedStringArray" "PackedVector2Array" "PackedVector3Array" "Plane" - "Projection" "Quaternion" "RID" "Rect2" "Rect2i" "Signal" "String" "StringName" "Transform2D" - "Transform3D" "Vector2" "Vector2i" "Vector3" "Vector3i" "Vector4" "Vector4i" "bool" "float" - "int" + "AABB" "AESContext" "AStar2D" "AStar3D" "AStarGrid2D" "AcceptDialog" "AimModifier3D" + "AnimatableBody2D" "AnimatableBody3D" "AnimatedSprite2D" "AnimatedSprite3D" "AnimatedTexture" + "Animation" "AnimationLibrary" "AnimationMixer" "AnimationNode" "AnimationNodeAdd2" + "AnimationNodeAdd3" "AnimationNodeAnimation" "AnimationNodeBlend2" "AnimationNodeBlend3" + "AnimationNodeBlendSpace1D" "AnimationNodeBlendSpace2D" "AnimationNodeBlendTree" + "AnimationNodeExtension" "AnimationNodeOneShot" "AnimationNodeOutput" + "AnimationNodeStateMachine" "AnimationNodeStateMachinePlayback" + "AnimationNodeStateMachineTransition" "AnimationNodeSub2" "AnimationNodeSync" + "AnimationNodeTimeScale" "AnimationNodeTimeSeek" "AnimationNodeTransition" "AnimationPlayer" + "AnimationRootNode" "AnimationTree" "Area2D" "Area3D" "Array" "ArrayMesh" "ArrayOccluder3D" + "AspectRatioContainer" "AtlasTexture" "AudioBusLayout" "AudioEffect" "AudioEffectAmplify" + "AudioEffectBandLimitFilter" "AudioEffectBandPassFilter" "AudioEffectCapture" + "AudioEffectChorus" "AudioEffectCompressor" "AudioEffectDelay" "AudioEffectDistortion" + "AudioEffectEQ" "AudioEffectEQ10" "AudioEffectEQ21" "AudioEffectEQ6" "AudioEffectFilter" + "AudioEffectHardLimiter" "AudioEffectHighPassFilter" "AudioEffectHighShelfFilter" + "AudioEffectInstance" "AudioEffectLimiter" "AudioEffectLowPassFilter" + "AudioEffectLowShelfFilter" "AudioEffectNotchFilter" "AudioEffectPanner" "AudioEffectPhaser" + "AudioEffectPitchShift" "AudioEffectRecord" "AudioEffectReverb" "AudioEffectSpectrumAnalyzer" + "AudioEffectSpectrumAnalyzerInstance" "AudioEffectStereoEnhance" "AudioListener2D" + "AudioListener3D" "AudioSample" "AudioSamplePlayback" "AudioServer" "AudioStream" + "AudioStreamGenerator" "AudioStreamGeneratorPlayback" "AudioStreamMicrophone" + "AudioStreamPlayback" "AudioStreamPlaybackPolyphonic" "AudioStreamPlaybackResampled" + "AudioStreamPlayer" "AudioStreamPlayer2D" "AudioStreamPlayer3D" "AudioStreamPolyphonic" + "AudioStreamRandomizer" "AudioStreamWAV" "BackBufferCopy" "BaseButton" "BaseMaterial3D" "Basis" + "BitMap" "Bone2D" "BoneAttachment3D" "BoneConstraint3D" "BoneMap" "BoneTwistDisperser3D" + "BoxContainer" "BoxMesh" "BoxOccluder3D" "BoxShape3D" "Button" "ButtonGroup" "CCDIK3D" + "CPUParticles2D" "CPUParticles3D" "Callable" "CallbackTweener" "Camera2D" "Camera3D" + "CameraAttributes" "CameraAttributesPhysical" "CameraAttributesPractical" "CameraFeed" + "CameraServer" "CameraTexture" "CanvasGroup" "CanvasItem" "CanvasItemMaterial" "CanvasLayer" + "CanvasModulate" "CanvasTexture" "CapsuleMesh" "CapsuleShape2D" "CapsuleShape3D" + "CenterContainer" "ChainIK3D" "CharFXTransform" "CharacterBody2D" "CharacterBody3D" "CheckBox" + "CheckButton" "CircleShape2D" "ClassDB" "CodeEdit" "CodeHighlighter" "CollisionObject2D" + "CollisionObject3D" "CollisionPolygon2D" "CollisionPolygon3D" "CollisionShape2D" + "CollisionShape3D" "Color" "ColorPalette" "ColorPicker" "ColorPickerButton" "ColorRect" + "Compositor" "CompositorEffect" "CompressedCubemap" "CompressedCubemapArray" + "CompressedTexture2D" "CompressedTexture2DArray" "CompressedTexture3D" + "CompressedTextureLayered" "ConcavePolygonShape2D" "ConcavePolygonShape3D" "ConeTwistJoint3D" + "ConfigFile" "ConfirmationDialog" "Container" "Control" "ConvertTransformModifier3D" + "ConvexPolygonShape2D" "ConvexPolygonShape3D" "CopyTransformModifier3D" "Crypto" "CryptoKey" + "Cubemap" "CubemapArray" "Curve" "Curve2D" "Curve3D" "CurveTexture" "CurveXYZTexture" + "CylinderMesh" "CylinderShape3D" "DPITexture" "DTLSServer" "DampedSpringJoint2D" "Decal" + "Dictionary" "DirAccess" "DirectionalLight2D" "DirectionalLight3D" "DisplayServer" + "EditorCommandPalette" "EditorContextMenuPlugin" "EditorDebuggerPlugin" "EditorDebuggerSession" + "EditorDock" "EditorExportPlatform" "EditorExportPlatformAppleEmbedded" + "EditorExportPlatformExtension" "EditorExportPlatformPC" "EditorExportPlugin" + "EditorExportPreset" "EditorFeatureProfile" "EditorFileDialog" "EditorFileSystem" + "EditorFileSystemDirectory" "EditorFileSystemImportFormatSupportQuery" "EditorImportPlugin" + "EditorInspector" "EditorInspectorPlugin" "EditorInterface" "EditorNode3DGizmo" + "EditorNode3DGizmoPlugin" "EditorPaths" "EditorPlugin" "EditorProperty" + "EditorResourceConversionPlugin" "EditorResourcePicker" "EditorResourcePreview" + "EditorResourcePreviewGenerator" "EditorResourceTooltipPlugin" "EditorSceneFormatImporter" + "EditorScenePostImport" "EditorScenePostImportPlugin" "EditorScript" "EditorScriptPicker" + "EditorSelection" "EditorSettings" "EditorSpinSlider" "EditorSyntaxHighlighter" "EditorToaster" + "EditorTranslationParserPlugin" "EditorUndoRedoManager" "EditorVCSInterface" "EncodedObjectAsID" + "Engine" "EngineDebugger" "EngineProfiler" "Environment" "Expression" "ExternalTexture" + "FABRIK3D" "FileAccess" "FileDialog" "FileSystemDock" "FlowContainer" "FogMaterial" "FogVolume" + "FoldableContainer" "FoldableGroup" "Font" "FontFile" "FontVariation" "FramebufferCacheRD" + "GDExtension" "GDExtensionManager" "GPUParticles2D" "GPUParticles3D" "GPUParticlesAttractor3D" + "GPUParticlesAttractorBox3D" "GPUParticlesAttractorSphere3D" + "GPUParticlesAttractorVectorField3D" "GPUParticlesCollision3D" "GPUParticlesCollisionBox3D" + "GPUParticlesCollisionHeightField3D" "GPUParticlesCollisionSDF3D" + "GPUParticlesCollisionSphere3D" "Generic6DOFJoint3D" "Geometry2D" "Geometry3D" + "GeometryInstance3D" "GodotInstance" "Gradient" "GradientTexture1D" "GradientTexture2D" + "GraphEdit" "GraphElement" "GraphFrame" "GraphNode" "GridContainer" "GrooveJoint2D" + "HBoxContainer" "HFlowContainer" "HMACContext" "HScrollBar" "HSeparator" "HSlider" + "HSplitContainer" "HTTPClient" "HTTPRequest" "HashingContext" "HeightMapShape3D" "HingeJoint3D" + "IKModifier3D" "IP" "Image" "ImageFormatLoader" "ImageFormatLoaderExtension" "ImageTexture" + "ImageTexture3D" "ImageTextureLayered" "ImmediateMesh" "ImporterMesh" "ImporterMeshInstance3D" + "Input" "InputEvent" "InputEventAction" "InputEventFromWindow" "InputEventGesture" + "InputEventJoypadButton" "InputEventJoypadMotion" "InputEventKey" "InputEventMIDI" + "InputEventMagnifyGesture" "InputEventMouse" "InputEventMouseButton" "InputEventMouseMotion" + "InputEventPanGesture" "InputEventScreenDrag" "InputEventScreenTouch" "InputEventShortcut" + "InputEventWithModifiers" "InputMap" "InstancePlaceholder" "IntervalTweener" "ItemList" + "IterateIK3D" "JNISingleton" "JSON" "JSONRPC" "JacobianIK3D" "JavaClass" "JavaClassWrapper" + "JavaObject" "JavaScriptBridge" "JavaScriptObject" "Joint2D" "Joint3D" "JointLimitation3D" + "JointLimitationCone3D" "KinematicCollision2D" "KinematicCollision3D" "Label" "Label3D" + "LabelSettings" "Light2D" "Light3D" "LightOccluder2D" "LightmapGI" "LightmapGIData" + "LightmapProbe" "Lightmapper" "LightmapperRD" "LimitAngularVelocityModifier3D" "Line2D" + "LineEdit" "LinkButton" "Logger" "LookAtModifier3D" "MainLoop" "MarginContainer" "Marker2D" + "Marker3D" "Marshalls" "Material" "MenuBar" "MenuButton" "Mesh" + "MeshConvexDecompositionSettings" "MeshDataTool" "MeshInstance2D" "MeshInstance3D" "MeshLibrary" + "MeshTexture" "MethodTweener" "MissingNode" "MissingResource" "ModifierBoneTarget3D" + "MovieWriter" "MultiMesh" "MultiMeshInstance2D" "MultiMeshInstance3D" "MultiplayerAPI" + "MultiplayerAPIExtension" "MultiplayerPeer" "MultiplayerPeerExtension" "Mutex" "NativeMenu" + "NavigationAgent2D" "NavigationAgent3D" "NavigationLink2D" "NavigationLink3D" "NavigationMesh" + "NavigationMeshGenerator" "NavigationMeshSourceGeometryData2D" + "NavigationMeshSourceGeometryData3D" "NavigationObstacle2D" "NavigationObstacle3D" + "NavigationPathQueryParameters2D" "NavigationPathQueryParameters3D" + "NavigationPathQueryResult2D" "NavigationPathQueryResult3D" "NavigationPolygon" + "NavigationRegion2D" "NavigationRegion3D" "NavigationServer2D" "NavigationServer2DManager" + "NavigationServer3D" "NavigationServer3DManager" "NinePatchRect" "Node" "Node2D" "Node3D" + "Node3DGizmo" "NodePath" "ORMMaterial3D" "OS" "Object" "Occluder3D" "OccluderInstance3D" + "OccluderPolygon2D" "OmniLight3D" "OptimizedTranslation" "OptionButton" "PCKPacker" + "PackedByteArray" "PackedColorArray" "PackedDataContainer" "PackedDataContainerRef" + "PackedFloat32Array" "PackedFloat64Array" "PackedInt32Array" "PackedInt64Array" "PackedScene" + "PackedStringArray" "PackedVector2Array" "PackedVector3Array" "PackedVector4Array" "PacketPeer" + "PacketPeerDTLS" "PacketPeerExtension" "PacketPeerStream" "PacketPeerUDP" "Panel" + "PanelContainer" "PanoramaSkyMaterial" "Parallax2D" "ParallaxBackground" "ParallaxLayer" + "ParticleProcessMaterial" "Path2D" "Path3D" "PathFollow2D" "PathFollow3D" "Performance" + "PhysicalBone2D" "PhysicalBone3D" "PhysicalBoneSimulator3D" "PhysicalSkyMaterial" + "PhysicsBody2D" "PhysicsBody3D" "PhysicsDirectBodyState2D" "PhysicsDirectBodyState2DExtension" + "PhysicsDirectBodyState3D" "PhysicsDirectBodyState3DExtension" "PhysicsDirectSpaceState2D" + "PhysicsDirectSpaceState2DExtension" "PhysicsDirectSpaceState3D" + "PhysicsDirectSpaceState3DExtension" "PhysicsMaterial" "PhysicsPointQueryParameters2D" + "PhysicsPointQueryParameters3D" "PhysicsRayQueryParameters2D" "PhysicsRayQueryParameters3D" + "PhysicsServer2D" "PhysicsServer2DExtension" "PhysicsServer2DManager" "PhysicsServer3D" + "PhysicsServer3DExtension" "PhysicsServer3DManager" "PhysicsServer3DRenderingServerHandler" + "PhysicsShapeQueryParameters2D" "PhysicsShapeQueryParameters3D" "PhysicsTestMotionParameters2D" + "PhysicsTestMotionParameters3D" "PhysicsTestMotionResult2D" "PhysicsTestMotionResult3D" + "PinJoint2D" "PinJoint3D" "PlaceholderCubemap" "PlaceholderCubemapArray" "PlaceholderMaterial" + "PlaceholderMesh" "PlaceholderTexture2D" "PlaceholderTexture2DArray" "PlaceholderTexture3D" + "PlaceholderTextureLayered" "Plane" "PlaneMesh" "PointLight2D" "PointMesh" "Polygon2D" + "PolygonOccluder3D" "PolygonPathFinder" "Popup" "PopupMenu" "PopupPanel" + "PortableCompressedTexture2D" "PrimitiveMesh" "PrismMesh" "ProceduralSkyMaterial" "ProgressBar" + "ProjectSettings" "Projection" "PropertyTweener" "QuadMesh" "QuadOccluder3D" "Quaternion" + "RDAttachmentFormat" "RDFramebufferPass" "RDPipelineColorBlendState" + "RDPipelineColorBlendStateAttachment" "RDPipelineDepthStencilState" "RDPipelineMultisampleState" + "RDPipelineRasterizationState" "RDPipelineSpecializationConstant" "RDSamplerState" + "RDShaderFile" "RDShaderSPIRV" "RDShaderSource" "RDTextureFormat" "RDTextureView" "RDUniform" + "RDVertexAttribute" "RID" "RandomNumberGenerator" "Range" "RayCast2D" "RayCast3D" "Rect2" + "Rect2i" "RectangleShape2D" "RefCounted" "ReferenceRect" "ReflectionProbe" "RemoteTransform2D" + "RemoteTransform3D" "RenderData" "RenderDataExtension" "RenderDataRD" "RenderSceneBuffers" + "RenderSceneBuffersConfiguration" "RenderSceneBuffersExtension" "RenderSceneBuffersRD" + "RenderSceneData" "RenderSceneDataExtension" "RenderSceneDataRD" "RenderingDevice" + "RenderingServer" "Resource" "ResourceFormatLoader" "ResourceFormatSaver" "ResourceImporter" + "ResourceImporterBMFont" "ResourceImporterBitMap" "ResourceImporterCSVTranslation" + "ResourceImporterDynamicFont" "ResourceImporterImage" "ResourceImporterImageFont" + "ResourceImporterLayeredTexture" "ResourceImporterOBJ" "ResourceImporterSVG" + "ResourceImporterScene" "ResourceImporterShaderFile" "ResourceImporterTexture" + "ResourceImporterTextureAtlas" "ResourceImporterWAV" "ResourceLoader" "ResourcePreloader" + "ResourceSaver" "ResourceUID" "RetargetModifier3D" "RibbonTrailMesh" "RichTextEffect" + "RichTextLabel" "RigidBody2D" "RigidBody3D" "RootMotionView" "SceneState" "SceneTree" + "SceneTreeTimer" "Script" "ScriptBacktrace" "ScriptCreateDialog" "ScriptEditor" + "ScriptEditorBase" "ScriptExtension" "ScriptLanguage" "ScriptLanguageExtension" "ScrollBar" + "ScrollContainer" "SegmentShape2D" "Semaphore" "SeparationRayShape2D" "SeparationRayShape3D" + "Separator" "Shader" "ShaderGlobalsOverride" "ShaderInclude" "ShaderIncludeDB" "ShaderMaterial" + "Shape2D" "Shape3D" "ShapeCast2D" "ShapeCast3D" "Shortcut" "Signal" "Skeleton2D" "Skeleton3D" + "SkeletonIK3D" "SkeletonModification2D" "SkeletonModification2DCCDIK" + "SkeletonModification2DFABRIK" "SkeletonModification2DJiggle" "SkeletonModification2DLookAt" + "SkeletonModification2DPhysicalBones" "SkeletonModification2DStackHolder" + "SkeletonModification2DTwoBoneIK" "SkeletonModificationStack2D" "SkeletonModifier3D" + "SkeletonProfile" "SkeletonProfileHumanoid" "Skin" "SkinReference" "Sky" "Slider" + "SliderJoint3D" "SocketServer" "SoftBody3D" "SphereMesh" "SphereOccluder3D" "SphereShape3D" + "SpinBox" "SplineIK3D" "SplitContainer" "SpotLight3D" "SpringArm3D" "SpringBoneCollision3D" + "SpringBoneCollisionCapsule3D" "SpringBoneCollisionPlane3D" "SpringBoneCollisionSphere3D" + "SpringBoneSimulator3D" "Sprite2D" "Sprite3D" "SpriteBase3D" "SpriteFrames" "StandardMaterial3D" + "StaticBody2D" "StaticBody3D" "StatusIndicator" "StreamPeer" "StreamPeerBuffer" + "StreamPeerExtension" "StreamPeerGZIP" "StreamPeerSocket" "StreamPeerTCP" "StreamPeerTLS" + "StreamPeerUDS" "String" "StringName" "StyleBox" "StyleBoxEmpty" "StyleBoxFlat" "StyleBoxLine" + "StyleBoxTexture" "SubViewport" "SubViewportContainer" "SubtweenTweener" "SurfaceTool" + "SyntaxHighlighter" "SystemFont" "TCPServer" "TLSOptions" "TabBar" "TabContainer" "TextEdit" + "TextLine" "TextMesh" "TextParagraph" "TextServer" "TextServerDummy" "TextServerExtension" + "TextServerManager" "Texture" "Texture2D" "Texture2DArray" "Texture2DArrayRD" "Texture2DRD" + "Texture3D" "Texture3DRD" "TextureButton" "TextureCubemapArrayRD" "TextureCubemapRD" + "TextureLayered" "TextureLayeredRD" "TextureProgressBar" "TextureRect" "Theme" "ThemeDB" + "Thread" "TileData" "TileMap" "TileMapLayer" "TileMapPattern" "TileSet" "TileSetAtlasSource" + "TileSetScenesCollectionSource" "TileSetSource" "Time" "Timer" "TorusMesh" "TouchScreenButton" + "Transform2D" "Transform3D" "Translation" "TranslationDomain" "TranslationServer" "Tree" + "TreeItem" "TriangleMesh" "TubeTrailMesh" "Tween" "Tweener" "TwoBoneIK3D" "UDPServer" + "UDSServer" "UndoRedo" "UniformSetCacheRD" "VBoxContainer" "VFlowContainer" "VScrollBar" + "VSeparator" "VSlider" "VSplitContainer" "Variant" "Vector2" "Vector2i" "Vector3" "Vector3i" + "Vector4" "Vector4i" "VehicleBody3D" "VehicleWheel3D" "VideoStream" "VideoStreamPlayback" + "VideoStreamPlayer" "Viewport" "ViewportTexture" "VisibleOnScreenEnabler2D" + "VisibleOnScreenEnabler3D" "VisibleOnScreenNotifier2D" "VisibleOnScreenNotifier3D" + "VisualInstance3D" "VisualShader" "VisualShaderNode" "VisualShaderNodeBillboard" + "VisualShaderNodeBooleanConstant" "VisualShaderNodeBooleanParameter" "VisualShaderNodeClamp" + "VisualShaderNodeColorConstant" "VisualShaderNodeColorFunc" "VisualShaderNodeColorOp" + "VisualShaderNodeColorParameter" "VisualShaderNodeComment" "VisualShaderNodeCompare" + "VisualShaderNodeConstant" "VisualShaderNodeCubemap" "VisualShaderNodeCubemapParameter" + "VisualShaderNodeCurveTexture" "VisualShaderNodeCurveXYZTexture" "VisualShaderNodeCustom" + "VisualShaderNodeDerivativeFunc" "VisualShaderNodeDeterminant" "VisualShaderNodeDistanceFade" + "VisualShaderNodeDotProduct" "VisualShaderNodeExpression" "VisualShaderNodeFaceForward" + "VisualShaderNodeFloatConstant" "VisualShaderNodeFloatFunc" "VisualShaderNodeFloatOp" + "VisualShaderNodeFloatParameter" "VisualShaderNodeFrame" "VisualShaderNodeFresnel" + "VisualShaderNodeGlobalExpression" "VisualShaderNodeGroupBase" "VisualShaderNodeIf" + "VisualShaderNodeInput" "VisualShaderNodeIntConstant" "VisualShaderNodeIntFunc" + "VisualShaderNodeIntOp" "VisualShaderNodeIntParameter" "VisualShaderNodeIs" + "VisualShaderNodeLinearSceneDepth" "VisualShaderNodeMix" "VisualShaderNodeMultiplyAdd" + "VisualShaderNodeOuterProduct" "VisualShaderNodeOutput" "VisualShaderNodeParameter" + "VisualShaderNodeParameterRef" "VisualShaderNodeParticleAccelerator" + "VisualShaderNodeParticleBoxEmitter" "VisualShaderNodeParticleConeVelocity" + "VisualShaderNodeParticleEmit" "VisualShaderNodeParticleEmitter" + "VisualShaderNodeParticleMeshEmitter" "VisualShaderNodeParticleMultiplyByAxisAngle" + "VisualShaderNodeParticleOutput" "VisualShaderNodeParticleRandomness" + "VisualShaderNodeParticleRingEmitter" "VisualShaderNodeParticleSphereEmitter" + "VisualShaderNodeProximityFade" "VisualShaderNodeRandomRange" "VisualShaderNodeRemap" + "VisualShaderNodeReroute" "VisualShaderNodeResizableBase" "VisualShaderNodeRotationByAxis" + "VisualShaderNodeSDFRaymarch" "VisualShaderNodeSDFToScreenUV" "VisualShaderNodeSample3D" + "VisualShaderNodeScreenNormalWorldSpace" "VisualShaderNodeScreenUVToSDF" + "VisualShaderNodeSmoothStep" "VisualShaderNodeStep" "VisualShaderNodeSwitch" + "VisualShaderNodeTexture" "VisualShaderNodeTexture2DArray" + "VisualShaderNodeTexture2DArrayParameter" "VisualShaderNodeTexture2DParameter" + "VisualShaderNodeTexture3D" "VisualShaderNodeTexture3DParameter" + "VisualShaderNodeTextureParameter" "VisualShaderNodeTextureParameterTriplanar" + "VisualShaderNodeTextureSDF" "VisualShaderNodeTextureSDFNormal" + "VisualShaderNodeTransformCompose" "VisualShaderNodeTransformConstant" + "VisualShaderNodeTransformDecompose" "VisualShaderNodeTransformFunc" + "VisualShaderNodeTransformOp" "VisualShaderNodeTransformParameter" + "VisualShaderNodeTransformVecMult" "VisualShaderNodeUIntConstant" "VisualShaderNodeUIntFunc" + "VisualShaderNodeUIntOp" "VisualShaderNodeUIntParameter" "VisualShaderNodeUVFunc" + "VisualShaderNodeUVPolarCoord" "VisualShaderNodeVarying" "VisualShaderNodeVaryingGetter" + "VisualShaderNodeVaryingSetter" "VisualShaderNodeVec2Constant" "VisualShaderNodeVec2Parameter" + "VisualShaderNodeVec3Constant" "VisualShaderNodeVec3Parameter" "VisualShaderNodeVec4Constant" + "VisualShaderNodeVec4Parameter" "VisualShaderNodeVectorBase" "VisualShaderNodeVectorCompose" + "VisualShaderNodeVectorDecompose" "VisualShaderNodeVectorDistance" "VisualShaderNodeVectorFunc" + "VisualShaderNodeVectorLen" "VisualShaderNodeVectorOp" "VisualShaderNodeVectorRefract" + "VisualShaderNodeWorldPositionFromDepth" "VoxelGI" "VoxelGIData" "WeakRef" "Window" + "WorkerThreadPool" "World2D" "World3D" "WorldBoundaryShape2D" "WorldBoundaryShape3D" + "WorldEnvironment" "X509Certificate" "XMLParser" "XRAnchor3D" "XRBodyModifier3D" "XRBodyTracker" + "XRCamera3D" "XRController3D" "XRControllerTracker" "XRFaceModifier3D" "XRFaceTracker" + "XRHandModifier3D" "XRHandTracker" "XRInterface" "XRInterfaceExtension" "XRNode3D" "XROrigin3D" + "XRPose" "XRPositionalTracker" "XRServer" "XRTracker" "XRVRS" "bool" "float" "int" ; from doc/classes/@GlobalScope.xml "AudioServer" "CameraServer" "ClassDB" "DisplayServer" "EditorInterface" "Engine" "EngineDebugger" "GDExtensionManager" "Geometry2D" "Geometry3D" "GodotSharp" "IP" "Input" @@ -307,7 +514,7 @@ "var_to_str" "weakref" "wrap" "wrapf" "wrapi" ; from modules/gdscript/doc_classes/@GDScript.xml "Color8" "assert" "char" "convert" "dict_to_inst" "get_stack" "inst_to_dict" "is_instance_of" - "len" "load" "preload" "print_debug" "print_stack" "range" "type_exists")) + "len" "load" "ord" "preload" "print_debug" "print_stack" "range" "type_exists")) ; Builtin Constants ((identifier) @constant.builtin @@ -322,7 +529,7 @@ "ERR_DATABASE_CANT_READ" "ERR_DATABASE_CANT_WRITE" "ERR_DOES_NOT_EXIST" "ERR_DUPLICATE_SYMBOL" "ERR_FILE_ALREADY_IN_USE" "ERR_FILE_BAD_DRIVE" "ERR_FILE_BAD_PATH" "ERR_FILE_CANT_OPEN" "ERR_FILE_CANT_READ" "ERR_FILE_CANT_WRITE" "ERR_FILE_CORRUPT" "ERR_FILE_EOF" - "ERR_FILE_MISSING_DEPENDENCIES" "ERR_FILE_NOT_FOUND" "ERR_FILE_NO_PERMISSION" + "ERR_FILE_MISSING_DEPENDENCIES" "ERR_FILE_NO_PERMISSION" "ERR_FILE_NOT_FOUND" "ERR_FILE_UNRECOGNIZED" "ERR_HELP" "ERR_INVALID_DATA" "ERR_INVALID_DECLARATION" "ERR_INVALID_PARAMETER" "ERR_LINK_FAILED" "ERR_LOCKED" "ERR_METHOD_NOT_FOUND" "ERR_OUT_OF_MEMORY" "ERR_PARAMETER_RANGE_ERROR" "ERR_PARSE_ERROR" "ERR_PRINTER_ON_FIRE" @@ -332,9 +539,9 @@ "HORIZONTAL_ALIGNMENT_CENTER" "HORIZONTAL_ALIGNMENT_FILL" "HORIZONTAL_ALIGNMENT_LEFT" "HORIZONTAL_ALIGNMENT_RIGHT" "INLINE_ALIGNMENT_BASELINE_TO" "INLINE_ALIGNMENT_BOTTOM" "INLINE_ALIGNMENT_BOTTOM_TO" "INLINE_ALIGNMENT_CENTER" "INLINE_ALIGNMENT_CENTER_TO" - "INLINE_ALIGNMENT_IMAGE_MASK" "INLINE_ALIGNMENT_TEXT_MASK" "INLINE_ALIGNMENT_TOP" - "INLINE_ALIGNMENT_TOP_TO" "INLINE_ALIGNMENT_TO_BASELINE" "INLINE_ALIGNMENT_TO_BOTTOM" - "INLINE_ALIGNMENT_TO_CENTER" "INLINE_ALIGNMENT_TO_TOP" "JOY_AXIS_INVALID" "JOY_AXIS_LEFT_X" + "INLINE_ALIGNMENT_IMAGE_MASK" "INLINE_ALIGNMENT_TEXT_MASK" "INLINE_ALIGNMENT_TO_BASELINE" + "INLINE_ALIGNMENT_TO_BOTTOM" "INLINE_ALIGNMENT_TO_CENTER" "INLINE_ALIGNMENT_TOP" + "INLINE_ALIGNMENT_TOP_TO" "INLINE_ALIGNMENT_TO_TOP" "JOY_AXIS_INVALID" "JOY_AXIS_LEFT_X" "JOY_AXIS_LEFT_Y" "JOY_AXIS_MAX" "JOY_AXIS_RIGHT_X" "JOY_AXIS_RIGHT_Y" "JOY_AXIS_SDL_MAX" "JOY_AXIS_TRIGGER_LEFT" "JOY_AXIS_TRIGGER_RIGHT" "JOY_BUTTON_A" "JOY_BUTTON_B" "JOY_BUTTON_BACK" "JOY_BUTTON_DPAD_DOWN" "JOY_BUTTON_DPAD_LEFT" "JOY_BUTTON_DPAD_RIGHT" "JOY_BUTTON_DPAD_UP" @@ -370,11 +577,11 @@ "KEY_SECTION" "KEY_SEMICOLON" "KEY_SHIFT" "KEY_SLASH" "KEY_SPACE" "KEY_SPECIAL" "KEY_STANDBY" "KEY_STOP" "KEY_SYSREQ" "KEY_T" "KEY_TAB" "KEY_U" "KEY_UNDERSCORE" "KEY_UNKNOWN" "KEY_UP" "KEY_V" "KEY_VOLUMEDOWN" "KEY_VOLUMEMUTE" "KEY_VOLUMEUP" "KEY_W" "KEY_X" "KEY_Y" "KEY_YEN" - "KEY_Z" "METHOD_FLAGS_DEFAULT" "METHOD_FLAG_CONST" "METHOD_FLAG_EDITOR" "METHOD_FLAG_NORMAL" - "METHOD_FLAG_OBJECT_CORE" "METHOD_FLAG_STATIC" "METHOD_FLAG_VARARG" "METHOD_FLAG_VIRTUAL" - "MIDI_MESSAGE_ACTIVE_SENSING" "MIDI_MESSAGE_AFTERTOUCH" "MIDI_MESSAGE_CHANNEL_PRESSURE" - "MIDI_MESSAGE_CONTINUE" "MIDI_MESSAGE_CONTROL_CHANGE" "MIDI_MESSAGE_NONE" - "MIDI_MESSAGE_NOTE_OFF" "MIDI_MESSAGE_NOTE_ON" "MIDI_MESSAGE_PITCH_BEND" + "KEY_Z" "METHOD_FLAG_CONST" "METHOD_FLAG_EDITOR" "METHOD_FLAG_NORMAL" "METHOD_FLAG_OBJECT_CORE" + "METHOD_FLAGS_DEFAULT" "METHOD_FLAG_STATIC" "METHOD_FLAG_VARARG" "METHOD_FLAG_VIRTUAL" + "METHOD_FLAG_VIRTUAL_REQUIRED" "MIDI_MESSAGE_ACTIVE_SENSING" "MIDI_MESSAGE_AFTERTOUCH" + "MIDI_MESSAGE_CHANNEL_PRESSURE" "MIDI_MESSAGE_CONTINUE" "MIDI_MESSAGE_CONTROL_CHANGE" + "MIDI_MESSAGE_NONE" "MIDI_MESSAGE_NOTE_OFF" "MIDI_MESSAGE_NOTE_ON" "MIDI_MESSAGE_PITCH_BEND" "MIDI_MESSAGE_PROGRAM_CHANGE" "MIDI_MESSAGE_QUARTER_FRAME" "MIDI_MESSAGE_SONG_POSITION_POINTER" "MIDI_MESSAGE_SONG_SELECT" "MIDI_MESSAGE_START" "MIDI_MESSAGE_STOP" "MIDI_MESSAGE_SYSTEM_EXCLUSIVE" "MIDI_MESSAGE_SYSTEM_RESET" "MIDI_MESSAGE_TIMING_CLOCK" @@ -387,40 +594,42 @@ "OP_GREATER_EQUAL" "OP_IN" "OP_LESS" "OP_LESS_EQUAL" "OP_MAX" "OP_MODULE" "OP_MULTIPLY" "OP_NEGATE" "OP_NOT" "OP_NOT_EQUAL" "OP_OR" "OP_POSITIVE" "OP_POWER" "OP_SHIFT_LEFT" "OP_SHIFT_RIGHT" "OP_SUBTRACT" "OP_XOR" "PROPERTY_HINT_ARRAY_TYPE" - "PROPERTY_HINT_COLOR_NO_ALPHA" "PROPERTY_HINT_DIR" "PROPERTY_HINT_ENUM" - "PROPERTY_HINT_ENUM_SUGGESTION" "PROPERTY_HINT_EXPRESSION" "PROPERTY_HINT_EXP_EASING" - "PROPERTY_HINT_FILE" "PROPERTY_HINT_FLAGS" "PROPERTY_HINT_GLOBAL_DIR" - "PROPERTY_HINT_GLOBAL_FILE" "PROPERTY_HINT_GLOBAL_SAVE_FILE" - "PROPERTY_HINT_HIDE_QUATERNION_EDIT" "PROPERTY_HINT_INT_IS_OBJECTID" - "PROPERTY_HINT_INT_IS_POINTER" "PROPERTY_HINT_LAYERS_2D_NAVIGATION" - "PROPERTY_HINT_LAYERS_2D_PHYSICS" "PROPERTY_HINT_LAYERS_2D_RENDER" - "PROPERTY_HINT_LAYERS_3D_NAVIGATION" "PROPERTY_HINT_LAYERS_3D_PHYSICS" - "PROPERTY_HINT_LAYERS_3D_RENDER" "PROPERTY_HINT_LAYERS_AVOIDANCE" "PROPERTY_HINT_LINK" - "PROPERTY_HINT_LOCALE_ID" "PROPERTY_HINT_LOCALIZABLE_STRING" "PROPERTY_HINT_MAX" - "PROPERTY_HINT_MULTILINE_TEXT" "PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE" - "PROPERTY_HINT_NODE_PATH_VALID_TYPES" "PROPERTY_HINT_NODE_TYPE" "PROPERTY_HINT_NONE" - "PROPERTY_HINT_OBJECT_ID" "PROPERTY_HINT_OBJECT_TOO_BIG" "PROPERTY_HINT_PASSWORD" + "PROPERTY_HINT_COLOR_NO_ALPHA" "PROPERTY_HINT_DICTIONARY_TYPE" "PROPERTY_HINT_DIR" + "PROPERTY_HINT_ENUM" "PROPERTY_HINT_ENUM_SUGGESTION" "PROPERTY_HINT_EXP_EASING" + "PROPERTY_HINT_EXPRESSION" "PROPERTY_HINT_FILE" "PROPERTY_HINT_FILE_PATH" "PROPERTY_HINT_FLAGS" + "PROPERTY_HINT_GLOBAL_DIR" "PROPERTY_HINT_GLOBAL_FILE" "PROPERTY_HINT_GLOBAL_SAVE_FILE" + "PROPERTY_HINT_GROUP_ENABLE" "PROPERTY_HINT_HIDE_QUATERNION_EDIT" "PROPERTY_HINT_INPUT_NAME" + "PROPERTY_HINT_INT_IS_OBJECTID" "PROPERTY_HINT_INT_IS_POINTER" + "PROPERTY_HINT_LAYERS_2D_NAVIGATION" "PROPERTY_HINT_LAYERS_2D_PHYSICS" + "PROPERTY_HINT_LAYERS_2D_RENDER" "PROPERTY_HINT_LAYERS_3D_NAVIGATION" + "PROPERTY_HINT_LAYERS_3D_PHYSICS" "PROPERTY_HINT_LAYERS_3D_RENDER" + "PROPERTY_HINT_LAYERS_AVOIDANCE" "PROPERTY_HINT_LINK" "PROPERTY_HINT_LOCALE_ID" + "PROPERTY_HINT_LOCALIZABLE_STRING" "PROPERTY_HINT_MAX" "PROPERTY_HINT_MULTILINE_TEXT" + "PROPERTY_HINT_NODE_PATH_TO_EDITED_NODE" "PROPERTY_HINT_NODE_PATH_VALID_TYPES" + "PROPERTY_HINT_NODE_TYPE" "PROPERTY_HINT_NONE" "PROPERTY_HINT_OBJECT_ID" + "PROPERTY_HINT_OBJECT_TOO_BIG" "PROPERTY_HINT_ONESHOT" "PROPERTY_HINT_PASSWORD" "PROPERTY_HINT_PLACEHOLDER_TEXT" "PROPERTY_HINT_RANGE" "PROPERTY_HINT_RESOURCE_TYPE" - "PROPERTY_HINT_SAVE_FILE" "PROPERTY_HINT_TYPE_STRING" "PROPERTY_USAGE_ALWAYS_DUPLICATE" - "PROPERTY_USAGE_ARRAY" "PROPERTY_USAGE_CATEGORY" "PROPERTY_USAGE_CHECKABLE" - "PROPERTY_USAGE_CHECKED" "PROPERTY_USAGE_CLASS_IS_BITFIELD" "PROPERTY_USAGE_CLASS_IS_ENUM" - "PROPERTY_USAGE_DEFAULT" "PROPERTY_USAGE_DEFERRED_SET_RESOURCE" "PROPERTY_USAGE_EDITOR" - "PROPERTY_USAGE_EDITOR_BASIC_SETTING" "PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT" - "PROPERTY_USAGE_GROUP" "PROPERTY_USAGE_HIGH_END_GFX" "PROPERTY_USAGE_INTERNAL" - "PROPERTY_USAGE_KEYING_INCREMENTS" "PROPERTY_USAGE_NEVER_DUPLICATE" - "PROPERTY_USAGE_NIL_IS_VARIANT" "PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT" "PROPERTY_USAGE_NONE" - "PROPERTY_USAGE_NO_EDITOR" "PROPERTY_USAGE_NO_INSTANCE_STATE" "PROPERTY_USAGE_READ_ONLY" - "PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT" "PROPERTY_USAGE_RESTART_IF_CHANGED" - "PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE" "PROPERTY_USAGE_SCRIPT_VARIABLE" "PROPERTY_USAGE_SECRET" - "PROPERTY_USAGE_STORAGE" "PROPERTY_USAGE_STORE_IF_NULL" "PROPERTY_USAGE_SUBGROUP" - "PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED" "SIDE_BOTTOM" "SIDE_LEFT" "SIDE_RIGHT" "SIDE_TOP" - "TYPE_AABB" "TYPE_ARRAY" "TYPE_BASIS" "TYPE_BOOL" "TYPE_CALLABLE" "TYPE_COLOR" "TYPE_DICTIONARY" - "TYPE_FLOAT" "TYPE_INT" "TYPE_MAX" "TYPE_NIL" "TYPE_NODE_PATH" "TYPE_OBJECT" - "TYPE_PACKED_BYTE_ARRAY" "TYPE_PACKED_COLOR_ARRAY" "TYPE_PACKED_FLOAT32_ARRAY" - "TYPE_PACKED_FLOAT64_ARRAY" "TYPE_PACKED_INT32_ARRAY" "TYPE_PACKED_INT64_ARRAY" - "TYPE_PACKED_STRING_ARRAY" "TYPE_PACKED_VECTOR2_ARRAY" "TYPE_PACKED_VECTOR3_ARRAY" "TYPE_PLANE" - "TYPE_PROJECTION" "TYPE_QUATERNION" "TYPE_RECT2" "TYPE_RECT2I" "TYPE_RID" "TYPE_SIGNAL" - "TYPE_STRING" "TYPE_STRING_NAME" "TYPE_TRANSFORM2D" "TYPE_TRANSFORM3D" "TYPE_VECTOR2" - "TYPE_VECTOR2I" "TYPE_VECTOR3" "TYPE_VECTOR3I" "TYPE_VECTOR4" "TYPE_VECTOR4I" "VERTICAL" + "PROPERTY_HINT_SAVE_FILE" "PROPERTY_HINT_TOOL_BUTTON" "PROPERTY_HINT_TYPE_STRING" + "PROPERTY_USAGE_ALWAYS_DUPLICATE" "PROPERTY_USAGE_ARRAY" "PROPERTY_USAGE_CATEGORY" + "PROPERTY_USAGE_CHECKABLE" "PROPERTY_USAGE_CHECKED" "PROPERTY_USAGE_CLASS_IS_BITFIELD" + "PROPERTY_USAGE_CLASS_IS_ENUM" "PROPERTY_USAGE_DEFAULT" "PROPERTY_USAGE_DEFERRED_SET_RESOURCE" + "PROPERTY_USAGE_EDITOR" "PROPERTY_USAGE_EDITOR_BASIC_SETTING" + "PROPERTY_USAGE_EDITOR_INSTANTIATE_OBJECT" "PROPERTY_USAGE_GROUP" "PROPERTY_USAGE_HIGH_END_GFX" + "PROPERTY_USAGE_INTERNAL" "PROPERTY_USAGE_KEYING_INCREMENTS" "PROPERTY_USAGE_NEVER_DUPLICATE" + "PROPERTY_USAGE_NIL_IS_VARIANT" "PROPERTY_USAGE_NODE_PATH_FROM_SCENE_ROOT" + "PROPERTY_USAGE_NO_EDITOR" "PROPERTY_USAGE_NO_INSTANCE_STATE" "PROPERTY_USAGE_NONE" + "PROPERTY_USAGE_READ_ONLY" "PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT" + "PROPERTY_USAGE_RESTART_IF_CHANGED" "PROPERTY_USAGE_SCRIPT_DEFAULT_VALUE" + "PROPERTY_USAGE_SCRIPT_VARIABLE" "PROPERTY_USAGE_SECRET" "PROPERTY_USAGE_STORAGE" + "PROPERTY_USAGE_STORE_IF_NULL" "PROPERTY_USAGE_SUBGROUP" "PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED" + "SIDE_BOTTOM" "SIDE_LEFT" "SIDE_RIGHT" "SIDE_TOP" "TYPE_AABB" "TYPE_ARRAY" "TYPE_BASIS" + "TYPE_BOOL" "TYPE_CALLABLE" "TYPE_COLOR" "TYPE_DICTIONARY" "TYPE_FLOAT" "TYPE_INT" "TYPE_MAX" + "TYPE_NIL" "TYPE_NODE_PATH" "TYPE_OBJECT" "TYPE_PACKED_BYTE_ARRAY" "TYPE_PACKED_COLOR_ARRAY" + "TYPE_PACKED_FLOAT32_ARRAY" "TYPE_PACKED_FLOAT64_ARRAY" "TYPE_PACKED_INT32_ARRAY" + "TYPE_PACKED_INT64_ARRAY" "TYPE_PACKED_STRING_ARRAY" "TYPE_PACKED_VECTOR2_ARRAY" + "TYPE_PACKED_VECTOR3_ARRAY" "TYPE_PACKED_VECTOR4_ARRAY" "TYPE_PLANE" "TYPE_PROJECTION" + "TYPE_QUATERNION" "TYPE_RECT2" "TYPE_RECT2I" "TYPE_RID" "TYPE_SIGNAL" "TYPE_STRING" + "TYPE_STRING_NAME" "TYPE_TRANSFORM2D" "TYPE_TRANSFORM3D" "TYPE_VECTOR2" "TYPE_VECTOR2I" + "TYPE_VECTOR3" "TYPE_VECTOR3I" "TYPE_VECTOR4" "TYPE_VECTOR4I" "VERTICAL" "VERTICAL_ALIGNMENT_BOTTOM" "VERTICAL_ALIGNMENT_CENTER" "VERTICAL_ALIGNMENT_FILL" "VERTICAL_ALIGNMENT_TOP")) From b6271b678e035a5cbf62d637364f3eeca0890171 Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Wed, 23 Jul 2025 15:58:06 +0200 Subject: [PATCH 020/127] feat(haskell): injection for morpheus-graphql-client quasiquotes --- runtime/queries/haskell/injections.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/runtime/queries/haskell/injections.scm b/runtime/queries/haskell/injections.scm index 98a396e5e..b4d92aa30 100644 --- a/runtime/queries/haskell/injections.scm +++ b/runtime/queries/haskell/injections.scm @@ -83,3 +83,14 @@ (#any-of? @_name "pymain" "pye" "py_" "pyf") (quasiquote_body) @injection.content (#set! injection.language "python")) + +; ----------------------------------------------------------------------------- +; GraphQL +; morpheus-graphql-client +(_ + function: (apply + function: (variable) @_name) + argument: (quasiquote + body: (quasiquote_body) @injection.content) + (#set! injection.language "graphql") + (#eq? @_name "declareLocalTypesInline")) From 2979e048b356cfd32dc419d5803dc356b9832adf Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 11 Dec 2025 10:44:35 +0100 Subject: [PATCH 021/127] ci(test): bump tree-sitter/setup-actions to v2 --- .github/workflows/downstream.yml | 2 +- .github/workflows/test-core.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index b4ea6fc85..03fb42a36 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -16,7 +16,7 @@ jobs: NVIM: "nvim" steps: - uses: actions/checkout@v5 - - uses: tree-sitter/setup-action/cli@v1 + - uses: tree-sitter/setup-action/cli@v2 - name: Install and prepare Neovim env: diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index f20f1939d..83a4729c1 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -22,7 +22,7 @@ jobs: NVIM: ${{ matrix.os == 'windows-latest' && 'nvim-win64\\bin\\nvim.exe' || 'nvim' }} steps: - uses: actions/checkout@v5 - - uses: tree-sitter/setup-action/cli@v1 + - uses: tree-sitter/setup-action/cli@v2 - uses: ilammy/msvc-dev-cmd@v1 - name: Install and prepare Neovim From 74d3999522bfc96b90947f975ba5897febd933a1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 13 Dec 2025 14:16:22 +0100 Subject: [PATCH 022/127] feat(parsers): update fortran, gotmpl, helm, idl, mlir, pkl, query, racket, scheme, slint, vhdl, zsh --- lua/nvim-treesitter/parsers.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 0f9fc5057..e3f13fca1 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -584,7 +584,7 @@ return { }, fortran = { install_info = { - revision = 'd0d1bc84c43870788c1b402f2e6b490b27257f9e', + revision = 'e0132896b8959c09dc20b56e4a1c5d25bc341697', url = 'https://github.com/stadelmanma/tree-sitter-fortran', }, maintainers = { '@amaanq' }, @@ -794,7 +794,7 @@ return { }, gotmpl = { install_info = { - revision = '226692db9da6cb9939284b1ed263a0fb82d26768', + revision = 'c59999dc449c29549f5735eaac31b938a13b6c14', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -906,7 +906,7 @@ return { helm = { install_info = { location = 'dialects/helm', - revision = '226692db9da6cb9939284b1ed263a0fb82d26768', + revision = 'c59999dc449c29549f5735eaac31b938a13b6c14', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -1002,7 +1002,7 @@ return { }, idl = { install_info = { - revision = '0c9aa1588cec4c64235ec3ed014ca72aa79e72ca', + revision = 'e6b8b4d2ba285caacf6f9e931f1f637f5bc02b03', url = 'https://github.com/cathaysia/tree-sitter-idl', }, maintainers = { '@cathaysia' }, @@ -1381,7 +1381,7 @@ return { mlir = { install_info = { generate = true, - revision = '1f76a88b79e70222968a9f8185992c9bb5ddacf0', + revision = '458459efa2c5bc6ee77e3a69f05d24ba51a7bd54', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1592,7 +1592,7 @@ return { }, pkl = { install_info = { - revision = 'd50709f1b71e77844c4551c655792d100a5ca559', + revision = 'ac58931956c000d3aeefbb55a81fc3c5bd6aecf0', url = 'https://github.com/apple/tree-sitter-pkl', }, maintainers = { '@ribru17' }, @@ -1787,7 +1787,7 @@ return { }, query = { install_info = { - revision = 'a225e21d81201be77da58de614e2b7851735677a', + revision = 'a4e379d4a4b77a09e91c1c9e12d4b898214f990e', url = 'https://github.com/tree-sitter-grammars/tree-sitter-query', }, maintainers = { '@steelsojka' }, @@ -1804,7 +1804,7 @@ return { }, racket = { install_info = { - revision = '130e76536bd3a45df7b7fd71cfa3d0df25fcfe8e', + revision = '56b57807f86aa4ddb14892572b318edd4bc90ebe', url = 'https://github.com/6cdh/tree-sitter-racket', }, tier = 2, @@ -1988,7 +1988,7 @@ return { }, scheme = { install_info = { - revision = '591893b9a8b9ec85f5cef86e0cc1028012ad9f0e', + revision = 'b5c701148501fa056302827442b5b4956f1edc03', url = 'https://github.com/6cdh/tree-sitter-scheme', }, tier = 2, @@ -2031,7 +2031,7 @@ return { }, slint = { install_info = { - revision = 'f2e4e5a7bccb177562de8f5b4fe49a5531c9f7ca', + revision = '10fb0f188d7950400773c06ba6c31075866e14bf', url = 'https://github.com/slint-ui/tree-sitter-slint', }, maintainers = { '@hunger' }, @@ -2504,7 +2504,7 @@ return { }, vhdl = { install_info = { - revision = '0c25aa064dc489ec5291e4879fa7ed41cf5fe680', + revision = '3d8d72fd2deb27d7bcebf927c4e4bf050fbaf4ba', url = 'https://github.com/jpt13653903/tree-sitter-vhdl', }, maintainers = { '@jpt13653903' }, @@ -2676,7 +2676,7 @@ return { }, zsh = { install_info = { - revision = 'v0.48.0', + revision = 'v0.50.0', url = 'https://github.com/georgeharker/tree-sitter-zsh', }, maintainers = { '@georgeharker' }, From 74b119812e9f82bccc2f0eca156faff0354362ae Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 13 Dec 2025 14:22:22 +0100 Subject: [PATCH 023/127] feat(gleam)!: update parser and queries Breaking change: `(bit_string_*)` renamed to `(bit_array_*)` --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/gleam/highlights.scm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e3f13fca1..9aaf4c477 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -692,7 +692,7 @@ return { }, gleam = { install_info = { - revision = 'f4d55f3c5b690d4afe8853da892bc290d96deb34', + revision = '0c0c63a07998767b22f0d2655f903611eca6acd0', url = 'https://github.com/gleam-lang/tree-sitter-gleam', }, maintainers = { '@amaanq' }, diff --git a/runtime/queries/gleam/highlights.scm b/runtime/queries/gleam/highlights.scm index f80bda240..f25926f92 100644 --- a/runtime/queries/gleam/highlights.scm +++ b/runtime/queries/gleam/highlights.scm @@ -106,7 +106,7 @@ (string) @string ; Bit Strings -(bit_string_segment) @string.special +(bit_array_segment) @string.special ; Numbers (integer) @number From d3218d988f72ed34414959c9ccd802d393432d6e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 14 Dec 2025 13:11:45 +0100 Subject: [PATCH 024/127] docs(readme)!: `main` is now the default branch --- README.md | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 8d2e22f41..0f363c5f7 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The `nvim-treesitter` plugin provides For details on these and how to help improving them, see [CONTRIBUTING.md](./CONTRIBUTING.md). >[!CAUTION] -> This is a full, incompatible, rewrite. If you can't or don't want to update, check out the [`master` branch](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md) (which is locked but will remain available for backward compatibility). +> This is a full, incompatible, rewrite. 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). # Quickstart @@ -18,7 +18,7 @@ For details on these and how to help improving them, see [CONTRIBUTING.md](./CON - Neovim 0.11.0 or later (nightly) - `tar` and `curl` in your path -- [`tree-sitter-cli`](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md) (0.25.0 or later) +- [`tree-sitter-cli`](https://github.com/tree-sitter/tree-sitter/blob/master/crates/cli/README.md) (0.26.1 or later) - a C compiler in your path (see ) >[!IMPORTANT] @@ -38,7 +38,6 @@ It is strongly recommended to automate this; e.g., using [lazy.nvim](https://git require('lazy').setup({ 'nvim-treesitter/nvim-treesitter', lazy = false, - branch = 'main', build = ':TSUpdate' }) ``` @@ -46,16 +45,13 @@ require('lazy').setup({ >[!IMPORTANT] > This plugin does not support lazy-loading. ->[!IMPORTANT] -> Make sure to specify the `main` branch since (for now) the default branch is [`master`](https://github.com/nvim-treesitter/nvim-treesitter/blob/master/README.md). - ## Setup -`nvim-treesitter` can be configured by calling `setup`. The following snippet lists the available options and their default values. **You do not need to call `setup` for `nvim-treesitter` to work using default values.** +`nvim-treesitter` can be configured by calling `setup`. **You do not need to call `setup` for `nvim-treesitter` to work using default values.** ```lua require'nvim-treesitter'.setup { - -- Directory to install parsers and queries to + -- Directory to install parsers and queries to (prepended to `runtimepath` to have priority) install_dir = vim.fn.stdpath('data') .. '/site' } ``` @@ -100,8 +96,8 @@ vim.api.nvim_create_autocmd('FileType', { Treesitter-based folding is provided by Neovim. To enable it, put the following in your `ftplugin` or `FileType` autocommand: ```lua -vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' -vim.wo.foldmethod = 'expr' +vim.wo[0][0].foldexpr = 'v:lua.vim.treesitter.foldexpr()' +vim.wo[0][0].foldmethod = 'expr' ``` ## Indentation @@ -141,7 +137,7 @@ callback = function() branch = 'develop', -- only needed if different from default branch location = 'parser', -- only needed if the parser is in subdirectory of a "monorepo" generate = true, -- only needed if repo does not contain pre-generated `src/parser.c` - generate_from_json = false, -- only needed if repo does not contain `src/grammar.json` either -- WARNING: requires `node` for tree-sitter-cli <0.26.0! + generate_from_json = false, -- only needed if repo does not contain `src/grammar.json` either queries = 'queries/neovim', -- also install queries from given directory }, } @@ -173,7 +169,7 @@ If Neovim does not detect your language's filetype by default, you can use [Neov 3. Start `nvim` and `:TSInstall zimbu`. >[!IMPORTANT] -> Parsers using external scanner need to be written in C. +> If the parser requires an external scanner, this must be written in C. ### Modifying parsers From 568f2a3b7d610c4922b7d7aa0cd67c45b5158ed5 Mon Sep 17 00:00:00 2001 From: Manfred Egger Date: Wed, 17 Dec 2025 11:48:06 +0100 Subject: [PATCH 025/127] feat(typoscript)!: update grammar and queries (#8341) Breaking change: `(condition_bool)` renamed to `(condition_bool_legacy)` --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/typoscript/folds.scm | 12 +++- runtime/queries/typoscript/highlights.scm | 81 ++++++++++++++++++++--- runtime/queries/typoscript/indents.scm | 12 +++- runtime/queries/typoscript/injections.scm | 11 +++ 5 files changed, 104 insertions(+), 14 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 9aaf4c477..7a89e31a7 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2422,7 +2422,7 @@ return { }, typoscript = { install_info = { - revision = '5d8fde870b0ded1f429ba5bb249a9d9f8589ff5f', + revision = 'e59069a4cc08b2dacccd40827fe971ca3c6821b7', url = 'https://github.com/Teddytrombone/tree-sitter-typoscript', }, maintainers = { '@Teddytrombone' }, diff --git a/runtime/queries/typoscript/folds.scm b/runtime/queries/typoscript/folds.scm index fd7d23999..2bb3f69c5 100644 --- a/runtime/queries/typoscript/folds.scm +++ b/runtime/queries/typoscript/folds.scm @@ -1 +1,11 @@ -(block) @fold +[ + (block) + (condition_block) + (multiline_value) +] @fold + +(import_legacy)+ @fold + +(import)+ @fold + +(comment)+ @fold diff --git a/runtime/queries/typoscript/highlights.scm b/runtime/queries/typoscript/highlights.scm index 63327f178..bc214cba0 100644 --- a/runtime/queries/typoscript/highlights.scm +++ b/runtime/queries/typoscript/highlights.scm @@ -1,10 +1,28 @@ (identifier) @variable.member +(symfony_variable) @variable + (constant) @constant -(modifier_function) @function +(symfony_method) @function.method.call -(modifier_predefined) @function.builtin +[ + (modifier_function) + (symfony_function) +] @function.call + +[ + (modifier_predefined) + (symfony_predefined_function) +] @function.builtin + +(modifier_parameter) @variable.parameter + +(symfony_function_parameter + (symfony_variable) @variable.parameter) + +(symfony_method_parameter + (symfony_variable) @variable.parameter) [ (condition) @@ -12,13 +30,19 @@ (condition_else) ] @keyword.conditional -(cobject) @type.builtin - [ "@import" "INCLUDE_TYPOSCRIPT" ] @keyword.import +(condition_attribute) @tag.attribute + +(cobject) @type.builtin + +(symfony_built_in_variable) @variable.builtin + +(symfony_property) @variable.member + [ (comment) (single_line_comment) @@ -26,22 +50,59 @@ [ (string) - (multiline_value) + (multiline_value_content) + (symfony_string) ] @string +(deletion_line + ">" @operator) + +(copy_line + "<" @operator) + [ "=" - ">" - "<" - ":=" "=<" - (condition_bool) + ":=" + "?." + (symfony_condition_operator) + (condition_bool_legacy) + (constant_null_coalescing) ] @operator -"," @punctuation.delimiter +(symfony_ternary_operator) @keyword.conditional.ternary + +((symfony_condition_operator) @keyword.operator + (#any-of? @keyword.operator + "and" "or" "xor" "not" "not in" "in" "contains" "starts with" "ends with" "matches")) + +[ + "," + "." +] @punctuation.delimiter + +(symfony_property_access + "." @operator) + +(symfony_method_call + "." @operator) [ "(" ")" + "[" + "]" (block_punctuation) ] @punctuation.bracket + +(condition + "[" @punctuation.special) + +(condition + "]" @punctuation.special) + +(symfony_number) @number + +(symfony_boolean) @boolean + +(symfony_null) @constant.builtin diff --git a/runtime/queries/typoscript/indents.scm b/runtime/queries/typoscript/indents.scm index 4f5fb4797..ff5ddb603 100644 --- a/runtime/queries/typoscript/indents.scm +++ b/runtime/queries/typoscript/indents.scm @@ -1,5 +1,13 @@ (block) @indent.begin -"}" @indent.branch @indent.end +"}" @indent.end -(comment) @indent.ignore +[ + "{" + "}" +] @indent.branch + +[ + (comment) + (multiline_value) +] @indent.ignore diff --git a/runtime/queries/typoscript/injections.scm b/runtime/queries/typoscript/injections.scm index 2f0e58eb6..7e4bfe599 100644 --- a/runtime/queries/typoscript/injections.scm +++ b/runtime/queries/typoscript/injections.scm @@ -1,2 +1,13 @@ +((multiline_line + (identifier) @_id + . + (multiline_value + (multiline_value_content) @injection.content)) + (#lua-match? @_id "_CSS_DEFAULT_STYLE$") + (#set! injection.language "css")) + ((comment) @injection.content (#set! injection.language "comment")) + +((single_line_comment) @injection.content + (#set! injection.language "comment")) From d0bf5ff2b00939eab39c6572aec7cf232f843b1f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 17 Dec 2025 11:48:47 +0100 Subject: [PATCH 026/127] feat(parsers): update ada, c3, comment, desktop, editorconfig, elm, julia, mlir, nu, phpdoc, t32, tera, vim, vimdoc, xresources, zsh --- lua/nvim-treesitter/parsers.lua | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 7a89e31a7..e0612af38 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2,7 +2,7 @@ return { ada = { install_info = { - revision = '6c26c4413965dc7bacbccfa66503bf6b8228e254', + revision = '6b58259a08b1a22ba0247a7ce30be384db618da6', url = 'https://github.com/briot/tree-sitter-ada', }, maintainers = { '@briot' }, @@ -158,7 +158,7 @@ return { }, c3 = { install_info = { - revision = '3bcb189c85a15d5e47a12947fbb25cd6604025f5', + revision = '6b4e9127f90fa35d39f5314211bc5f7e304304bb', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, @@ -230,7 +230,7 @@ return { }, comment = { install_info = { - revision = 'db922d7809637900089709e07e31b88c42354ec2', + revision = '66272d2b6c73fb61157541b69dd0a7ce7b42a5ad', url = 'https://github.com/stsewd/tree-sitter-comment', }, maintainers = { '@stsewd' }, @@ -338,7 +338,7 @@ return { }, desktop = { install_info = { - revision = 'bbcedf9a11cb6c5f7cd8fcc041301aa0c204bfc0', + revision = 'c38aed8c230dd8f59b5f74ffa5046352b3d376e2', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -441,7 +441,7 @@ return { }, editorconfig = { install_info = { - revision = 'f08fb1f53130d2c765e45181eae26535e1a7a7f1', + revision = '783a30a216b982a6827b2abe52a4edbd909cb26a', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -473,7 +473,7 @@ return { }, elm = { install_info = { - revision = '3d000d37b99ac2640bf24c1a7a5c9a58485778df', + revision = '6d9511c28181db66daee4e883f811f6251220943', url = 'https://github.com/elm-tooling/tree-sitter-elm', }, maintainers = { '@zweimach' }, @@ -1141,7 +1141,7 @@ return { }, julia = { install_info = { - revision = '5a5d3082e13edd5afc4c274498d6125ecc914870', + revision = 'dd7f707577585ade7a488d32dbfb366246ea3837', url = 'https://github.com/tree-sitter-grammars/tree-sitter-julia', }, maintainers = { '@clason' }, @@ -1381,7 +1381,7 @@ return { mlir = { install_info = { generate = true, - revision = '458459efa2c5bc6ee77e3a69f05d24ba51a7bd54', + revision = '837b0cc2c7b8ae20fb1b582eb507873c6e588e01', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1461,7 +1461,7 @@ return { }, nu = { install_info = { - revision = '64ba3f8f5f9c8bd21a79341f0957b453303a98b8', + revision = '4c149627cc592560f77ead1c384e27ec85926407', url = 'https://github.com/nushell/tree-sitter-nu', }, maintainers = { '@abhisheksingh0x558' }, @@ -1576,7 +1576,7 @@ return { }, phpdoc = { install_info = { - revision = '03bb10330704b0b371b044e937d5cc7cd40b4999', + revision = '488198e61f49fc74ee54069a4126b556665a57cc', url = 'https://github.com/claytonrcarter/tree-sitter-phpdoc', }, maintainers = { '@mikehaertl' }, @@ -2246,7 +2246,7 @@ return { }, t32 = { install_info = { - revision = 'c3f72e1786b3440b98cb1b082c13c9033e1d08a9', + revision = 'f61c5f112af4aa5cc674f0197e00fa358aab7bbb', url = 'https://github.com/xasc/tree-sitter-t32', }, maintainers = { '@xasc' }, @@ -2295,7 +2295,7 @@ return { }, tera = { install_info = { - revision = '692937d52c8dfd91ce0dde722b9b4febbc9bc712', + revision = '3a38c368e806268daac9923a27e72bcafbbc16bb', url = 'https://github.com/uncenter/tree-sitter-tera', }, maintainers = { '@uncenter' }, @@ -2520,7 +2520,7 @@ return { }, vim = { install_info = { - revision = '3dd4747082d1b717b8978211c06ef7b6cd16125b', + revision = '8b8db7d8e4db799ab6b0db25a7990c2890133c1e', url = 'https://github.com/tree-sitter-grammars/tree-sitter-vim', }, maintainers = { '@clason' }, @@ -2528,7 +2528,7 @@ return { }, vimdoc = { install_info = { - revision = '570dc10aed5963546322e6c935e1125b9fd747bf', + revision = 'f061895a0eff1d5b90e4fb60d21d87be3267031a', url = 'https://github.com/neovim/tree-sitter-vimdoc', }, maintainers = { '@clason' }, @@ -2612,7 +2612,7 @@ return { }, xresources = { install_info = { - revision = '68240ae1beef503cfe0d1bc40f25b0fab71df8f5', + revision = 'a19a2acc5299b9bc0e3b4c8184c2860fdc66eba0', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, @@ -2676,7 +2676,7 @@ return { }, zsh = { install_info = { - revision = 'v0.50.0', + revision = 'v0.52.1', url = 'https://github.com/georgeharker/tree-sitter-zsh', }, maintainers = { '@georgeharker' }, From 846c7b50ee4ee44b62800b9ce91363af3dbe7ab9 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 17 Dec 2025 12:46:24 +0100 Subject: [PATCH 027/127] chore: remove FUNDING.yml --- .github/FUNDING.yml | 2 -- lua/nvim-treesitter/parsers.lua | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index b2844b214..000000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: "nvim-treesitter" -github: "nvim-treesitter" diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e0612af38..d5decb683 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1372,7 +1372,7 @@ return { }, meson = { install_info = { - revision = '280b6e59186f18528bab1567f5cc43b78b9cd881', + revision = 'd4fa3c7260d1537ac5183740b9338373a673d5c0', url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson', }, maintainers = { '@Decodetalkers' }, From fc21d3db8c1d95d414c0ae4406309fe7d3c9f9d6 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 17 Dec 2025 12:47:00 +0100 Subject: [PATCH 028/127] ci: add dependabot for GH actions --- .github/dependabot.yml | 17 +++++++++++++++++ lua/nvim-treesitter/parsers.lua | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..3c14c5874 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,17 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + cooldown: + default-days: 3 + commit-message: + prefix: "ci" + labels: + - "dependencies" + - "github-actions" + groups: + actions: + patterns: ["*"] + diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index d5decb683..e0612af38 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1372,7 +1372,7 @@ return { }, meson = { install_info = { - revision = 'd4fa3c7260d1537ac5183740b9338373a673d5c0', + revision = '280b6e59186f18528bab1567f5cc43b78b9cd881', url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson', }, maintainers = { '@Decodetalkers' }, From cfdca13a5da647d21be206bf2eb90629a7e7c734 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Dec 2025 11:56:00 +0000 Subject: [PATCH 029/127] ci: bump the actions group with 2 updates Bumps the actions group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) Updates `peter-evans/create-pull-request` from 7 to 8 - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: peter-evans/create-pull-request dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/downstream.yml | 6 +++--- .github/workflows/lint.yml | 6 +++--- .github/workflows/test-core.yml | 2 +- .github/workflows/update-parsers.yml | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index 03fb42a36..e9f69fb72 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -15,7 +15,7 @@ jobs: env: NVIM: "nvim" steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: tree-sitter/setup-action/cli@v2 - name: Install and prepare Neovim @@ -31,7 +31,7 @@ jobs: run: curl -fL https://github.com/ribru17/ts_query_ls/releases/latest/download/ts_query_ls-x86_64-unknown-linux-gnu.tar.gz | tar -xz - name: Clone textobjects - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: nvim-treesitter/nvim-treesitter-textobjects ref: main @@ -44,7 +44,7 @@ jobs: - name: Clone context if: always() - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: nvim-treesitter/nvim-treesitter-context ref: master diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 27a75f8c0..41830b225 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: name: Lint Lua files runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Format run: | @@ -28,7 +28,7 @@ jobs: name: Lint query files runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Format run: | @@ -42,7 +42,7 @@ jobs: name: Lint docs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Check SUPPORTED_LANGUAGES run: | diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index 83a4729c1..3a0b3cffa 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -21,7 +21,7 @@ jobs: env: NVIM: ${{ matrix.os == 'windows-latest' && 'nvim-win64\\bin\\nvim.exe' || 'nvim' }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: tree-sitter/setup-action/cli@v2 - uses: ilammy/msvc-dev-cmd@v1 diff --git a/.github/workflows/update-parsers.yml b/.github/workflows/update-parsers.yml index 533fc2ddd..23741d761 100644 --- a/.github/workflows/update-parsers.yml +++ b/.github/workflows/update-parsers.yml @@ -17,7 +17,7 @@ jobs: name: Update parsers tier ${{ matrix.tier }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: ref: main @@ -42,7 +42,7 @@ jobs: run: ./scripts/update-parsers.lua --tier=${{ matrix.tier }} - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 with: add-paths: lua/nvim-treesitter/parsers.lua token: ${{ steps.app-token.outputs.token }} From 4fc09bee78e91bf4ba471cdab4bf9dfa37fde51c Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 17 Dec 2025 13:01:30 +0100 Subject: [PATCH 030/127] ci(dependabot): fix labels --- .github/dependabot.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3c14c5874..e80604577 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,8 +9,7 @@ updates: commit-message: prefix: "ci" labels: - - "dependencies" - - "github-actions" + - "CI" groups: actions: patterns: ["*"] From e08ad49dbd62d68789930ca87068da89e71cb71a Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 20 Dec 2025 06:50:36 +0000 Subject: [PATCH 031/127] bot(parsers): update editorconfig, meson, mlir, phpdoc, t32, vhdl --- lua/nvim-treesitter/parsers.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e0612af38..69d97719c 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -441,7 +441,7 @@ return { }, editorconfig = { install_info = { - revision = '783a30a216b982a6827b2abe52a4edbd909cb26a', + revision = 'c571889b7c875690b78f79c4304cbf267e130818', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -1372,7 +1372,7 @@ return { }, meson = { install_info = { - revision = '280b6e59186f18528bab1567f5cc43b78b9cd881', + revision = 'd4fa3c7260d1537ac5183740b9338373a673d5c0', url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson', }, maintainers = { '@Decodetalkers' }, @@ -1381,7 +1381,7 @@ return { mlir = { install_info = { generate = true, - revision = '837b0cc2c7b8ae20fb1b582eb507873c6e588e01', + revision = '6b15a0164c0aeed3009e9feff3dc38d54e91cef9', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1576,7 +1576,7 @@ return { }, phpdoc = { install_info = { - revision = '488198e61f49fc74ee54069a4126b556665a57cc', + revision = '12d50307e6c02e5f4f876fa6cf2edea1f7808c0d', url = 'https://github.com/claytonrcarter/tree-sitter-phpdoc', }, maintainers = { '@mikehaertl' }, @@ -2246,7 +2246,7 @@ return { }, t32 = { install_info = { - revision = 'f61c5f112af4aa5cc674f0197e00fa358aab7bbb', + revision = '5b5e4336731bda5ea2e6b78b6a2d9e7a89032b75', url = 'https://github.com/xasc/tree-sitter-t32', }, maintainers = { '@xasc' }, @@ -2504,7 +2504,7 @@ return { }, vhdl = { install_info = { - revision = '3d8d72fd2deb27d7bcebf927c4e4bf050fbaf4ba', + revision = '7ae08deb5d1641aa57111342218ca1e1b3a5d539', url = 'https://github.com/jpt13653903/tree-sitter-vhdl', }, maintainers = { '@jpt13653903' }, From f795520371e6563dac17a0d556f41d70ca86a789 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 20 Dec 2025 12:32:01 +0100 Subject: [PATCH 032/127] fix(strace): generate removed parser --- lua/nvim-treesitter/parsers.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 69d97719c..2827adb07 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2155,7 +2155,8 @@ return { }, strace = { install_info = { - revision = 'd819cdd5dbe455bd3c859193633c8d91c0df7c36', + generate = true, + revision = '776e96ca962a58cd6858e2c5a2dd4e7e941dbcd4', url = 'https://github.com/sigmaSd/tree-sitter-strace', }, maintainers = { '@amaanq' }, From 8cdffc6d334731ce3703b6d870a5a34fd878208a Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 20 Dec 2025 12:30:45 +0100 Subject: [PATCH 033/127] feat(vim): support `:tab` command --- runtime/queries/vim/highlights.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/queries/vim/highlights.scm b/runtime/queries/vim/highlights.scm index c35986fa3..96280cd42 100644 --- a/runtime/queries/vim/highlights.scm +++ b/runtime/queries/vim/highlights.scm @@ -110,6 +110,7 @@ "cnext" "cprevious" "cNext" + "tab" "vertical" "leftabove" "aboveleft" From 6e42d823ce0a5a76180c473c119c7677738a09d1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 21 Dec 2025 15:18:17 +0100 Subject: [PATCH 034/127] fix(strace): no longer need to generate --- lua/nvim-treesitter/parsers.lua | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 2827adb07..595191dde 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2155,8 +2155,7 @@ return { }, strace = { install_info = { - generate = true, - revision = '776e96ca962a58cd6858e2c5a2dd4e7e941dbcd4', + revision = 'ac874ddfcc08d689fee1f4533789e06d88388f29', url = 'https://github.com/sigmaSd/tree-sitter-strace', }, maintainers = { '@amaanq' }, From 7ba26e7685a58d47e10840617d1d035dcdd5e018 Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Fri, 26 Dec 2025 17:35:54 +0100 Subject: [PATCH 035/127] perf(nix): replace match with lua-match --- runtime/queries/nix/injections.scm | 104 ++++++++++++++---- .../injections/nix/test-nix-injections.nix | 28 +++-- 2 files changed, 101 insertions(+), 31 deletions(-) diff --git a/runtime/queries/nix/injections.scm b/runtime/queries/nix/injections.scm index 26ba6e2da..7d0ffe8e5 100644 --- a/runtime/queries/nix/injections.scm +++ b/runtime/queries/nix/injections.scm @@ -34,7 +34,7 @@ ((string_fragment) @injection.content (#set! injection.language "regex"))) ] - (#match? @_func "(^|\\.)match$") + (#lua-match? @_func "^%a*%.*match$") (#set! injection.combined)) (binding @@ -48,7 +48,46 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#match? @_path "(^\\w+(Phase|Hook|Check)|(pre|post)[A-Z]\\w+|script)$")) + (#lua-match? @_path "^%a+Phase$")) + +(binding + attrpath: (attrpath + (identifier) @_path) + expression: [ + (string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + (indented_string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + ] + (#lua-match? @_path "^pre%a+$")) + +(binding + attrpath: (attrpath + (identifier) @_path) + expression: [ + (string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + (indented_string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + ] + (#lua-match? @_path "^post%a+$")) + +(binding + attrpath: (attrpath + (identifier) @_path) + expression: [ + (string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + (indented_string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + ] + (#lua-match? @_path "^script$")) (apply_expression function: (_) @_func @@ -67,8 +106,8 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ]))) - (#match? @_func "(^|\\.)writeShellApplication$") - (#match? @_path "^text$") + (#lua-match? @_func "^%a*%.*writeShellApplication$") + (#lua-match? @_path "^text$") (#set! injection.combined)) (apply_expression @@ -83,7 +122,7 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#match? @_func "(^|\\.)runCommand((No)?CC)?(Local)?$") + (#lua-match? @_func "^%a*%.*runCommand%a*$") (#set! injection.combined)) ((apply_expression @@ -97,7 +136,35 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ]) - (#match? @_func "(^|\\.)write(Bash|Dash|ShellScript)(Bin)?$") + (#lua-match? @_func "^%a*%.*writeBash%a*$") + (#set! injection.combined)) + +((apply_expression + function: (apply_expression + function: (_) @_func) + argument: [ + (string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + (indented_string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + ]) + (#lua-match? @_func "^%a*%.*writeDash%a*$") + (#set! injection.combined)) + +((apply_expression + function: (apply_expression + function: (_) @_func) + argument: [ + (string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + (indented_string_expression + ((string_fragment) @injection.content + (#set! injection.language "bash"))) + ]) + (#lua-match? @_func "^%a*%.*writeShellScript%a*$") (#set! injection.combined)) ((apply_expression @@ -111,7 +178,7 @@ ((string_fragment) @injection.content (#set! injection.language "fish"))) ]) - (#match? @_func "(^|\\.)writeFish(Bin)?$") + (#lua-match? @_func "^%a*%.*writeFish%a*$") (#set! injection.combined)) ((apply_expression @@ -126,13 +193,12 @@ ((string_fragment) @injection.content (#set! injection.language "haskell"))) ]) - (#match? @_func "(^|\\.)writeHaskell(Bin)?$") + (#lua-match? @_func "^%a*%.*writeHaskell%a*$") (#set! injection.combined)) ((apply_expression function: (apply_expression - function: (apply_expression - function: (_) @_func)) + function: (_) @_func) argument: [ (string_expression ((string_fragment) @injection.content @@ -141,13 +207,12 @@ ((string_fragment) @injection.content (#set! injection.language "javascript"))) ]) - (#match? @_func "(^|\\.)writeJS(Bin)?$") + (#lua-match? @_func "^%a*%.*writeJS%a*$") (#set! injection.combined)) ((apply_expression function: (apply_expression - function: (apply_expression - function: (_) @_func)) + function: (_) @_func) argument: [ (string_expression ((string_fragment) @injection.content @@ -156,13 +221,12 @@ ((string_fragment) @injection.content (#set! injection.language "perl"))) ]) - (#match? @_func "(^|\\.)writePerl(Bin)?$") + (#lua-match? @_func "^%a*%.*writePerl%a*$") (#set! injection.combined)) ((apply_expression function: (apply_expression - function: (apply_expression - function: (_) @_func)) + function: (_) @_func) argument: [ (string_expression ((string_fragment) @injection.content @@ -171,13 +235,11 @@ ((string_fragment) @injection.content (#set! injection.language "python"))) ]) - (#match? @_func "(^|\\.)write(PyPy|Python)[23](Bin)?$") + (#lua-match? @_func "^%a*%.*writePy%a*%d*%a*$") (#set! injection.combined)) ((apply_expression - function: (apply_expression - function: (apply_expression - function: (_) @_func)) + function: (_) @_func argument: [ (string_expression ((string_fragment) @injection.content @@ -186,7 +248,7 @@ ((string_fragment) @injection.content (#set! injection.language "rust"))) ]) - (#match? @_func "(^|\\.)writeRust(Bin)?$") + (#lua-match? @_func "^%a*%.*writeRust%a*$") (#set! injection.combined)) ; (nixosTest) testScript diff --git a/tests/query/injections/nix/test-nix-injections.nix b/tests/query/injections/nix/test-nix-injections.nix index 477ca4abb..b358326ab 100644 --- a/tests/query/injections/nix/test-nix-injections.nix +++ b/tests/query/injections/nix/test-nix-injections.nix @@ -1,8 +1,11 @@ -{ pkgs, stdenv }: # NOTE: This file is for testing queries. If evaluated with nix, this will probably error. -{ +{ pkgs, stdenv }: let + match = builtins.match; +in { regex = builtins.match "^.*[{](.+)[}].*$" "blahblah {something} blahblah" [ "something" ]; + regex2 = match "^.*[{](.+)[}].*$" "blahblah {something} blahblah" [ "something" ]; + drv1 = stdenv.mkDerivation { buildPhase = "mkdir $out"; installPhase = '' @@ -23,38 +26,43 @@ echo "bar" > $out/foo.txt ''; - drv4 = pkgs.writeShellScriptBin "hello" '' + drv4 = pkgs.runCommandNoCC "foo-bar" {} '' + mkir $out + echo "bar" > $out/foo.txt + ''; + + drv5 = pkgs.writeShellScriptBin "hello" '' echo "Hello world!" ''; - drv5 = pkgs.writeFishBin "hello" '' + drv6 = pkgs.writeFishBin "hello" '' echo "Hello world!" ''; - drv6 = pkgs.writeHaskellBin "hello" '' + drv7 = pkgs.writeHaskellBin "hello" '' main :: IO () main = putStrLn "Hello world!" ''; - drv7 = pkgs.writeJSBin "hello" '' + drv8 = pkgs.writeJSBin "hello" '' console.log('Hello world!'); ''; - drv8 = pkgs.writePerlBin "hello" '' + drv9 = pkgs.writePerlBin "hello" '' print("Hello world!\n"); ''; - drv9 = pkgs.writePythonBin "hello" '' + drv10 = pkgs.writePythonBin "hello" '' print("Hello world!"); ''; - drv10 = pkgs.writeRustBin "hello" '' + drv11 = pkgs.writeRustBin "hello" '' fn main() { println!("Hello world!"); } ''; - drv11 = { + drv12 = { nodes = null; testScript = '' print("Hello world!"); From 45d08da7bb3ea206d698b33f0576fdf9661e2979 Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Fri, 26 Dec 2025 21:45:27 +0100 Subject: [PATCH 036/127] chore(nix): add mrcjkb to maintainers --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index b2c006f84..318a004f8 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -189,7 +189,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka [nim](https://github.com/alaviss/tree-sitter-nim) | unstable | `HF JL` | @aMOPel [nim_format_string](https://github.com/aMOPel/tree-sitter-nim-format-string) | unstable | `H  J ` | @aMOPel [ninja](https://github.com/alemuller/tree-sitter-ninja) | unstable | `HFIJ ` | @alemuller -[nix](https://github.com/nix-community/tree-sitter-nix) | unstable | `HFIJL` | @leo60228, @zimbatm +[nix](https://github.com/nix-community/tree-sitter-nix) | unstable | `HFIJL` | @leo60228, @mrcjkb, @zimbatm [nqc](https://github.com/tree-sitter-grammars/tree-sitter-nqc) | unstable | `HFIJL` | @amaanq [nu](https://github.com/nushell/tree-sitter-nu) | unstable | `HFIJ ` | @abhisheksingh0x558 [objc](https://github.com/tree-sitter-grammars/tree-sitter-objc) | unstable | `HFIJL` | @amaanq diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 595191dde..2c06f6dce 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1448,7 +1448,7 @@ return { revision = 'eabf96807ea4ab6d6c7f09b671a88cd483542840', url = 'https://github.com/nix-community/tree-sitter-nix', }, - maintainers = { '@leo60228', '@zimbatm' }, + maintainers = { '@leo60228', '@mrcjkb', '@zimbatm' }, tier = 2, }, nqc = { From 36fcb4a4238928f0b627e1ab84ade0acc1facc2c Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 27 Dec 2025 06:52:04 +0000 Subject: [PATCH 037/127] bot(parsers): update desktop, editorconfig, erlang, gotmpl, helm, lua, mlir, pascal, sql, typoscript, v, xresources --- lua/nvim-treesitter/parsers.lua | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 2c06f6dce..f5e0d7d4b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -338,7 +338,7 @@ return { }, desktop = { install_info = { - revision = 'c38aed8c230dd8f59b5f74ffa5046352b3d376e2', + revision = '317de59070dd4f8bd0af03dd3dea5dda0e7a0449', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -441,7 +441,7 @@ return { }, editorconfig = { install_info = { - revision = 'c571889b7c875690b78f79c4304cbf267e130818', + revision = '3d4994215125087ffea228ccec3654d313968579', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -512,7 +512,7 @@ return { }, erlang = { install_info = { - revision = 'a260cb65eaa6e055289a34434f98c3aae6137ed5', + revision = 'f21023bbd6cd30cadbc793d80ae4d990d9be86fc', url = 'https://github.com/WhatsApp/tree-sitter-erlang', }, maintainers = { '@filmor' }, @@ -794,7 +794,7 @@ return { }, gotmpl = { install_info = { - revision = 'c59999dc449c29549f5735eaac31b938a13b6c14', + revision = '04270cd3512e2c7de0c5f2823725d7b0c4c01fda', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -906,7 +906,7 @@ return { helm = { install_info = { location = 'dialects/helm', - revision = 'c59999dc449c29549f5735eaac31b938a13b6c14', + revision = '04270cd3512e2c7de0c5f2823725d7b0c4c01fda', url = 'https://github.com/ngalaiko/tree-sitter-go-template', }, maintainers = { '@qvalentin' }, @@ -1278,7 +1278,7 @@ return { }, lua = { install_info = { - revision = 'd76023017f7485eae629cb60d406c7a1ca0f40c9', + revision = '97db86785105b198a760c82f146e4b52d889f386', url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua', }, maintainers = { '@muniftanjim' }, @@ -1381,7 +1381,7 @@ return { mlir = { install_info = { generate = true, - revision = '6b15a0164c0aeed3009e9feff3dc38d54e91cef9', + revision = 'c7eec06be8a9ddae688e1b03fca2eed79e9801c4', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1522,7 +1522,7 @@ return { }, pascal = { install_info = { - revision = '5054931bcd022860dd5936864f981e359fb63aef', + revision = '042119eca2e18a60e56317fb06ee3ba5c32cb447', url = 'https://github.com/Isopod/tree-sitter-pascal', }, maintainers = { '@Isopod' }, @@ -2123,7 +2123,7 @@ return { sql = { install_info = { branch = 'gh-pages', - revision = '0a3d963f48bf34d2765301f92ea525b4c5103696', + revision = '2d5dcd16f9ee49cb5a6d99eabb00fd4ea298587f', url = 'https://github.com/derekstride/tree-sitter-sql', }, maintainers = { '@derekstride' }, @@ -2422,7 +2422,7 @@ return { }, typoscript = { install_info = { - revision = 'e59069a4cc08b2dacccd40827fe971ca3c6821b7', + revision = '1811c767f3f72be669891b524a07c58b1eb0db87', url = 'https://github.com/Teddytrombone/tree-sitter-typoscript', }, maintainers = { '@Teddytrombone' }, @@ -2480,7 +2480,7 @@ return { v = { install_info = { location = 'tree_sitter_v', - revision = '236d51bba1bccd57fd2950956fbffe5fe0248735', + revision = '5f6c9c414f6e1ca3b991830c2d32b4cb83bef383', url = 'https://github.com/vlang/v-analyzer', }, maintainers = { '@kkharji', '@amaanq' }, @@ -2612,7 +2612,7 @@ return { }, xresources = { install_info = { - revision = 'a19a2acc5299b9bc0e3b4c8184c2860fdc66eba0', + revision = 'ff2b89e99d7760e77544b662125df84d7be1641d', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 7efc1b58a8061d29786860006c7257c90a5196dc Mon Sep 17 00:00:00 2001 From: Marc Jakobi Date: Mon, 29 Dec 2025 16:47:03 +0100 Subject: [PATCH 038/127] fix(nix): refactor nixosTest injections for better performance (#8378) --- runtime/queries/nix/injections.scm | 38 ++++++++++++++----- .../injections/nix/test-nix-injections.nix | 8 ++-- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/runtime/queries/nix/injections.scm b/runtime/queries/nix/injections.scm index 7d0ffe8e5..718a9c1c5 100644 --- a/runtime/queries/nix/injections.scm +++ b/runtime/queries/nix/injections.scm @@ -251,17 +251,35 @@ (#lua-match? @_func "^%a*%.*writeRust%a*$") (#set! injection.combined)) -; (nixosTest) testScript -((binding - attrpath: (attrpath) @_attr_name - (#eq? @_attr_name "nodes")) - (binding - attrpath: (attrpath) @_func_name - (#eq? @_func_name "testScript") +; (runTest) testScript +(apply_expression + function: (_) @_func + argument: (_ + (_)* (_ - (string_fragment) @injection.content - (#set! injection.language "python"))) - (#set! injection.combined)) + (binding + attrpath: (attrpath) @_func_name + expression: (_ + (string_fragment) @injection.content + (#set! injection.language "python"))) + (#eq? @_func_name "testScript") + (#lua-match? @_func "^.*%.*runTest$") + (#set! injection.combined)))) + +; (nixosTest) testScript +(apply_expression + function: (_) @_func + argument: (_ + (_)* + (_ + (binding + attrpath: (attrpath) @_func_name + expression: (_ + (string_fragment) @injection.content + (#set! injection.language "python"))) + (#eq? @_func_name "testScript") + (#lua-match? @_func "^.*%.*nixosTest$") + (#set! injection.combined)))) ; home-manager Neovim plugin config (attrset_expression diff --git a/tests/query/injections/nix/test-nix-injections.nix b/tests/query/injections/nix/test-nix-injections.nix index b358326ab..7505398e6 100644 --- a/tests/query/injections/nix/test-nix-injections.nix +++ b/tests/query/injections/nix/test-nix-injections.nix @@ -1,7 +1,7 @@ # NOTE: This file is for testing queries. If evaluated with nix, this will probably error. -{ pkgs, stdenv }: let +{ pkgs, stdenv, lib }: let match = builtins.match; -in { +in { regex = builtins.match "^.*[{](.+)[}].*$" "blahblah {something} blahblah" [ "something" ]; regex2 = match "^.*[{](.+)[}].*$" "blahblah {something} blahblah" [ "something" ]; @@ -12,7 +12,7 @@ in { echo "bar" > $out/foo.txt ''; }; - + drv2 = pkgs.writeShellApplication { name = "shellApp"; buildInputs = []; @@ -62,7 +62,7 @@ in { } ''; - drv12 = { + drv12 = lib.nixos.runTest { nodes = null; testScript = '' print("Hello world!"); From d6ce707613e9d19873b7f9f37d9643c9caf4b032 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 31 Dec 2025 13:47:33 +0100 Subject: [PATCH 039/127] feat(lua): replace operator list with field --- runtime/queries/lua/highlights.scm | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm index 79ab165aa..6e33a955c 100644 --- a/runtime/queries/lua/highlights.scm +++ b/runtime/queries/lua/highlights.scm @@ -70,36 +70,18 @@ ] @keyword.function) ; Operators +(binary_expression + operator: _ @operator) + +(unary_expression + operator: _ @operator) + [ "and" "not" "or" ] @keyword.operator -[ - "+" - "-" - "*" - "/" - "%" - "^" - "#" - "==" - "~=" - "<=" - ">=" - "<" - ">" - "=" - "&" - "~" - "|" - "<<" - ">>" - "//" - ".." -] @operator - ; Punctuations [ ";" From c6dd314086f7b471bf6c9110092a94ce1c06d220 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 31 Dec 2025 14:15:06 +0100 Subject: [PATCH 040/127] fix(lua): re-add missing assignment operator --- runtime/queries/lua/highlights.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runtime/queries/lua/highlights.scm b/runtime/queries/lua/highlights.scm index 6e33a955c..0bfdda4e5 100644 --- a/runtime/queries/lua/highlights.scm +++ b/runtime/queries/lua/highlights.scm @@ -76,6 +76,8 @@ (unary_expression operator: _ @operator) +"=" @operator + [ "and" "not" From efa5d1fa3a7218c6fd8e04c42882af4b8468e8b2 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Fri, 2 Jan 2026 09:56:33 +0100 Subject: [PATCH 041/127] feat(robots)!: adapt to renamed parser --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 4 ++-- runtime/queries/{robots => robots_txt}/highlights.scm | 0 runtime/queries/{robots => robots_txt}/injections.scm | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename runtime/queries/{robots => robots_txt}/highlights.scm (100%) rename runtime/queries/{robots => robots_txt}/injections.scm (100%) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 318a004f8..15cd8c8b0 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -245,7 +245,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka [rifleconf](https://github.com/purarue/tree-sitter-rifleconf) | unstable | `H  J ` | @purarue [rnoweb](https://github.com/bamonroe/tree-sitter-rnoweb) | unstable | `HF J ` | @bamonroe [robot](https://github.com/Hubro/tree-sitter-robot) | unstable | `HFIJ ` | @Hubro -[robots](https://github.com/opa-oz/tree-sitter-robots-txt) | unstable | `H  J ` | @opa-oz +[robots_txt](https://github.com/opa-oz/tree-sitter-robots-txt) | unstable | `H  J ` | @opa-oz [roc](https://github.com/faldor20/tree-sitter-roc) | unstable | `H IJL` | @nat-418 [ron](https://github.com/tree-sitter-grammars/tree-sitter-ron) | unstable | `HFIJL` | @amaanq [rst](https://github.com/stsewd/tree-sitter-rst) | unstable | `H  JL` | @stsewd diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index f5e0d7d4b..ab1ecc464 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1914,9 +1914,9 @@ return { maintainers = { '@Hubro' }, tier = 2, }, - robots = { + robots_txt = { install_info = { - revision = '8e3a4205b76236bb6dbebdbee5afc262ce38bb62', + revision = '0c066107e3548de79316a6a4ec771e2f7cf7c468', url = 'https://github.com/opa-oz/tree-sitter-robots-txt', }, maintainers = { '@opa-oz' }, diff --git a/runtime/queries/robots/highlights.scm b/runtime/queries/robots_txt/highlights.scm similarity index 100% rename from runtime/queries/robots/highlights.scm rename to runtime/queries/robots_txt/highlights.scm diff --git a/runtime/queries/robots/injections.scm b/runtime/queries/robots_txt/injections.scm similarity index 100% rename from runtime/queries/robots/injections.scm rename to runtime/queries/robots_txt/injections.scm From 1927c76aec829d40dcad24b6469cb639f1334096 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 1 Jan 2026 20:52:04 +0100 Subject: [PATCH 042/127] feat(install): warn on unsupported parsers --- lua/nvim-treesitter/config.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lua/nvim-treesitter/config.lua b/lua/nvim-treesitter/config.lua index f76897bc4..b3a294563 100644 --- a/lua/nvim-treesitter/config.lua +++ b/lua/nvim-treesitter/config.lua @@ -140,8 +140,12 @@ function M.norm_languages(languages, skip) languages = vim.tbl_filter( --- @param v string function(v) - -- TODO(lewis6991): warn of any unknown parsers? - return parsers[v] ~= nil + if parsers[v] ~= nil then + return true + else + require('nvim-treesitter.log').warn('skipping unsupported language: ' .. v) + return false + end end, languages ) From 737088f8571293f6a1ef8cd6c858d5daf9a38162 Mon Sep 17 00:00:00 2001 From: Daniel Jakots Date: Fri, 2 Jan 2026 10:37:00 -0500 Subject: [PATCH 043/127] docs(languages): remove unused `node` legend (#8396) erroneously reintroduced in 69c76488f7c6929ce55222f6a887e497a24c74b8. --- SUPPORTED_LANGUAGES.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 15cd8c8b0..33b1dd041 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -5,7 +5,6 @@ The following is a list of languages for which a parser can be installed through Legend: - **Tier:** _stable_ (updates follow semver releases), _unstable_ (updates follow HEAD), _unmaintained_ (no automatic updates), or _unsupported_ (known to be broken, cannot be installed) - **Queries** available for **H**ighlights, **I**ndents, **F**olds, In**J**ections, **L**ocals -- **Node:** Parser requires `node` for installation - **Maintainer** of queries in nvim-treesitter (may be different from parser maintainer!) From 46c16d89a8e2d53c1a38c01dd4b93d971b850c75 Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 3 Jan 2026 06:52:19 +0000 Subject: [PATCH 044/127] bot(parsers): update c3, desktop, editorconfig, javadoc, kitty, lua, nginx, query, swift, templ, typespec, v, vim, xresources --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 32 ++++++++++++++++---------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 33b1dd041..03e8b5d4f 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -22,7 +22,7 @@ Language | Tier | Queries | Maintainer [awk](https://github.com/Beaglefoot/tree-sitter-awk) | unstable | `H  J ` | [bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HF JL` | @TravonteD [bass](https://github.com/vito/tree-sitter-bass) | unstable | `HFIJL` | @amaanq -[beancount](https://github.com/polarmutex/tree-sitter-beancount) | unstable | `HF J ` | @polarmutex +[beancount](https://github.com/polarmutex/tree-sitter-beancount) | unmaintained | `HF J ` | @polarmutex [bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | unstable | `HFIJ ` | @theHamsta, @clason [bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | unstable | `HFIJL` | @amaanq [bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ab1ecc464..ac6284f42 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -93,11 +93,11 @@ return { }, beancount = { install_info = { - revision = 'b7a2557e6c8cf1dc70a52cece1861522ad3903fc', + revision = '07bfb0ec6d9e255d776cdd3362128364d2b0bb2f', url = 'https://github.com/polarmutex/tree-sitter-beancount', }, maintainers = { '@polarmutex' }, - tier = 2, + tier = 3, }, bibtex = { install_info = { @@ -158,7 +158,7 @@ return { }, c3 = { install_info = { - revision = '6b4e9127f90fa35d39f5314211bc5f7e304304bb', + revision = '805f776dcfbfef5c9baf4270ec942b3e8dc7ff16', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, @@ -338,7 +338,7 @@ return { }, desktop = { install_info = { - revision = '317de59070dd4f8bd0af03dd3dea5dda0e7a0449', + revision = 'c0279c1fb1e2e1f06f374437815d4abda02e30b2', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -441,7 +441,7 @@ return { }, editorconfig = { install_info = { - revision = '3d4994215125087ffea228ccec3654d313968579', + revision = 'f8e8a4cefe4de5d7e87bd129f3a69bdcdf73eebe', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -1058,7 +1058,7 @@ return { }, javadoc = { install_info = { - revision = '5c6157fe1c44e843f739e11b41c48c5918ec8709', + revision = '373fbd84f35aff70031426ed6edf3cdf52b93532', url = 'https://github.com/rmuir/tree-sitter-javadoc', }, maintainers = { '@rmuir' }, @@ -1181,7 +1181,7 @@ return { }, kitty = { install_info = { - revision = '2e9b602ca676cac63887cca5a4535106f3475c82', + revision = 'f821c16397ffab5b776d8781245215811438a624', url = 'https://github.com/OXY2DEV/tree-sitter-kitty', }, maintainers = { '@OXY2DEV' }, @@ -1278,7 +1278,7 @@ return { }, lua = { install_info = { - revision = '97db86785105b198a760c82f146e4b52d889f386', + revision = 'e284fcec45ead0d477e326fccd2cd4a68a89dae4', url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua', }, maintainers = { '@muniftanjim' }, @@ -1405,7 +1405,7 @@ return { }, nginx = { install_info = { - revision = '989da760be05a3334af3ec88705cbf57e6a9c41d', + revision = '47ade644d754cce57974aac44d2c9450e823d4f4', url = 'https://github.com/opa-oz/tree-sitter-nginx', }, maintainers = { '@opa-oz' }, @@ -1787,7 +1787,7 @@ return { }, query = { install_info = { - revision = 'a4e379d4a4b77a09e91c1c9e12d4b898214f990e', + revision = '6350ad724e7b17a7eea712d4860b4d2ae892e0b6', url = 'https://github.com/tree-sitter-grammars/tree-sitter-query', }, maintainers = { '@steelsojka' }, @@ -2214,7 +2214,7 @@ return { swift = { install_info = { generate = true, - revision = '78d84ef82c387fceeb6094038da28717ea052e39', + revision = '82a239e4c164b0567fb99b80b53f99ba661f2168', url = 'https://github.com/alex-pinkus/tree-sitter-swift', }, maintainers = { '@alex-pinkus' }, @@ -2287,7 +2287,7 @@ return { }, templ = { install_info = { - revision = '3057cd485f7f23a8ad24107c6adc604f8c5ce3db', + revision = '1c6db04effbcd7773c826bded9783cbc3061bd55', url = 'https://github.com/vrischmann/tree-sitter-templ', }, maintainers = { '@vrischmann' }, @@ -2414,7 +2414,7 @@ return { }, typespec = { install_info = { - revision = '814c98283fd92a248ba9d49ebfe61bc672a35875', + revision = '395bef1e1eb4dd18365401642beb534e8a244056', url = 'https://github.com/happenslol/tree-sitter-typespec', }, maintainers = { '@happenslol' }, @@ -2480,7 +2480,7 @@ return { v = { install_info = { location = 'tree_sitter_v', - revision = '5f6c9c414f6e1ca3b991830c2d32b4cb83bef383', + revision = '9cf6a37689f06b17d170dec644ace81eb8eab280', url = 'https://github.com/vlang/v-analyzer', }, maintainers = { '@kkharji', '@amaanq' }, @@ -2520,7 +2520,7 @@ return { }, vim = { install_info = { - revision = '8b8db7d8e4db799ab6b0db25a7990c2890133c1e', + revision = '78866caaacf123f4d9d227fe1ab521cc62167a88', url = 'https://github.com/tree-sitter-grammars/tree-sitter-vim', }, maintainers = { '@clason' }, @@ -2612,7 +2612,7 @@ return { }, xresources = { install_info = { - revision = 'ff2b89e99d7760e77544b662125df84d7be1641d', + revision = 'f60fb1e661d85f35fb8e7b988a41d2a74f65bfd4', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 86cf4fb68444be61eae330baf50fbd7451e1568b Mon Sep 17 00:00:00 2001 From: neno <2623996218@qq.com> Date: Wed, 31 Dec 2025 23:54:37 +0800 Subject: [PATCH 045/127] fix(ruby): improve highlights for pattern matching and for...in loops --- runtime/queries/ruby/highlights.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/runtime/queries/ruby/highlights.scm b/runtime/queries/ruby/highlights.scm index 0472df092..5aa518a28 100644 --- a/runtime/queries/ruby/highlights.scm +++ b/runtime/queries/ruby/highlights.scm @@ -48,6 +48,9 @@ "then" ] @keyword.conditional +(in_clause + "in" @keyword.conditional) + (if "end" @keyword.conditional) @@ -61,6 +64,9 @@ "next" ] @keyword.repeat +(in + "in" @keyword.repeat) + (constant) @constant ((identifier) @keyword.modifier @@ -291,6 +297,9 @@ (pair ":" @punctuation.delimiter) +(keyword_pattern + ":" @punctuation.delimiter) + [ "(" ")" From 433779916223596dce3ea64f4b77300c3aa2bfdc Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Wed, 31 Dec 2025 08:59:16 +0200 Subject: [PATCH 046/127] feat(bash): add indents query It's pretty basic at the moment but already makes working with bash scripts way easier. --- SUPPORTED_LANGUAGES.md | 2 +- runtime/queries/bash/indents.scm | 32 ++++++++++++++++++++++++++ tests/indent/bash/test.sh | 39 ++++++++++++++++++++++++++++++++ tests/indent/bash_spec.lua | 33 +++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 runtime/queries/bash/indents.scm create mode 100644 tests/indent/bash/test.sh create mode 100644 tests/indent/bash_spec.lua diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 03e8b5d4f..d1e0e7907 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -20,7 +20,7 @@ Language | Tier | Queries | Maintainer [astro](https://github.com/virchau13/tree-sitter-astro) | unstable | `HFIJL` | @virchau13 [authzed](https://github.com/mleonidas/tree-sitter-authzed) | unstable | `H  J ` | @mattpolzin [awk](https://github.com/Beaglefoot/tree-sitter-awk) | unstable | `H  J ` | -[bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HF JL` | @TravonteD +[bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HFIJL` | @TravonteD [bass](https://github.com/vito/tree-sitter-bass) | unstable | `HFIJL` | @amaanq [beancount](https://github.com/polarmutex/tree-sitter-beancount) | unmaintained | `HF J ` | @polarmutex [bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | unstable | `HFIJ ` | @theHamsta, @clason diff --git a/runtime/queries/bash/indents.scm b/runtime/queries/bash/indents.scm new file mode 100644 index 000000000..c0a4bed47 --- /dev/null +++ b/runtime/queries/bash/indents.scm @@ -0,0 +1,32 @@ +[ + (if_statement) + (for_statement) + (while_statement) + (case_statement) + (function_definition) + (compound_statement) + (subshell) + (command_substitution) + (do_group) + (case_item) +] @indent.begin + +[ + "fi" + "done" + "esac" + "}" + ")" + "then" + "do" + (elif_clause) + (else_clause) +] @indent.branch + +[ + "fi" + "done" + "esac" + "}" + ")" +] @indent.end diff --git a/tests/indent/bash/test.sh b/tests/indent/bash/test.sh new file mode 100644 index 000000000..7e708a93d --- /dev/null +++ b/tests/indent/bash/test.sh @@ -0,0 +1,39 @@ +for i in 1 2 3; do + if [[ true ]]; then + echo "asd" + elif [ true ]; then + echo "dsa" + else + echo "" + fi + echo $i +done + +while true; do + break +done + +case $foo in + a) echo a ;; + b) echo b ;; +esac + +function x() { + echo x +} + +y() { + echo y +} + +{ + echo z +} + +( + echo subshell +) + +A=$( + echo command substitution +) diff --git a/tests/indent/bash_spec.lua b/tests/indent/bash_spec.lua new file mode 100644 index 000000000..fa551c37c --- /dev/null +++ b/tests/indent/bash_spec.lua @@ -0,0 +1,33 @@ +local Runner = require('tests.indent.common').Runner +local XFAIL = require('tests.indent.common').XFAIL + +local run = Runner:new(it, 'tests/indent/bash', { + tabstop = 4, + shiftwidth = 4, + softtabstop = 0, + expandtab = true, +}) + +describe('indent Bash:', function() + describe('whole file:', function() + run:whole_file('.', { + expected_failures = {}, + }) + end) + + describe('new line:', function() + run:new_line('test.sh', { on_line = 1, text = 'echo test', indent = 4 }) -- in "for" + run:new_line('test.sh', { on_line = 2, text = 'echo test', indent = 8 }) -- in "if" + run:new_line('test.sh', { on_line = 4, text = 'echo test', indent = 8 }) -- in "elif" + run:new_line('test.sh', { on_line = 6, text = 'echo test', indent = 8 }) -- in "else" + run:new_line('test.sh', { on_line = 8, text = 'echo test', indent = 4 }) -- after "fi" + run:new_line('test.sh', { on_line = 12, text = 'echo test', indent = 4 }) -- in "while" + run:new_line('test.sh', { on_line = 18, text = 'c) echo test ;;', indent = 4 }) -- in "case" + run:new_line('test.sh', { on_line = 21, text = 'echo test', indent = 4 }) -- in "function" + run:new_line('test.sh', { on_line = 25, text = 'echo test', indent = 4 }) -- in "f() { ... }" + run:new_line('test.sh', { on_line = 29, text = 'echo test', indent = 4 }) -- in "{ ... }" + run:new_line('test.sh', { on_line = 33, text = 'echo test', indent = 4 }) -- in subshell + run:new_line('test.sh', { on_line = 37, text = 'echo test', indent = 4 }) -- in command substitution + run:new_line('test.sh', { on_line = 39, text = 'echo test', indent = 0 }) + end) +end) From 300b906a9514d5e0ce02911d371445382fe35a31 Mon Sep 17 00:00:00 2001 From: PolarMutex <115141+polarmutex@users.noreply.github.com> Date: Sat, 3 Jan 2026 12:15:14 -0500 Subject: [PATCH 047/127] fix(beancount): update to windows-compatible version (#8401) --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index d1e0e7907..a487c7cca 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -22,7 +22,7 @@ Language | Tier | Queries | Maintainer [awk](https://github.com/Beaglefoot/tree-sitter-awk) | unstable | `H  J ` | [bash](https://github.com/tree-sitter/tree-sitter-bash) | unstable | `HFIJL` | @TravonteD [bass](https://github.com/vito/tree-sitter-bass) | unstable | `HFIJL` | @amaanq -[beancount](https://github.com/polarmutex/tree-sitter-beancount) | unmaintained | `HF J ` | @polarmutex +[beancount](https://github.com/polarmutex/tree-sitter-beancount) | unstable | `HF J ` | @polarmutex [bibtex](https://github.com/latex-lsp/tree-sitter-bibtex) | unstable | `HFIJ ` | @theHamsta, @clason [bicep](https://github.com/tree-sitter-grammars/tree-sitter-bicep) | unstable | `HFIJL` | @amaanq [bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ac6284f42..9ce38664d 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -93,11 +93,11 @@ return { }, beancount = { install_info = { - revision = '07bfb0ec6d9e255d776cdd3362128364d2b0bb2f', + revision = '653cce316fbff8d212a2488ae13df648efb542a4', url = 'https://github.com/polarmutex/tree-sitter-beancount', }, maintainers = { '@polarmutex' }, - tier = 3, + tier = 2, }, bibtex = { install_info = { From 31fc7e10cd7c1fd7717b439050d0f91c2c4f0a4b Mon Sep 17 00:00:00 2001 From: Chris Dragan Date: Sun, 4 Jan 2026 10:08:07 +0000 Subject: [PATCH 048/127] feat: add kos parser and queries (#8389) --- SUPPORTED_LANGUAGES.md | 1 + lua/nvim-treesitter/parsers.lua | 8 ++ runtime/queries/kos/folds.scm | 19 ++++ runtime/queries/kos/highlights.scm | 141 ++++++++++++++++++++++++++ runtime/queries/kos/injections.scm | 6 ++ runtime/queries/kos/locals.scm | 41 ++++++++ tests/query/highlights/kos/test.kos | 149 ++++++++++++++++++++++++++++ 7 files changed, 365 insertions(+) create mode 100644 runtime/queries/kos/folds.scm create mode 100644 runtime/queries/kos/highlights.scm create mode 100644 runtime/queries/kos/injections.scm create mode 100644 runtime/queries/kos/locals.scm create mode 100644 tests/query/highlights/kos/test.kos diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index a487c7cca..153483006 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -157,6 +157,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka [kconfig](https://github.com/tree-sitter-grammars/tree-sitter-kconfig) | unstable | `HFIJL` | @amaanq [kdl](https://github.com/tree-sitter-grammars/tree-sitter-kdl) | unstable | `HFIJL` | @amaanq [kitty](https://github.com/OXY2DEV/tree-sitter-kitty) | unstable | `H  J ` | @OXY2DEV +[kos](https://github.com/kos-lang/tree-sitter-kos) | unstable | `HF JL` | @cdragan [kotlin](https://github.com/fwcd/tree-sitter-kotlin) | unstable | `HF JL` | @SalBakraa [koto](https://github.com/koto-lang/tree-sitter-koto) | unstable | `HF JL` | @irh [kusto](https://github.com/Willem-J-an/tree-sitter-kusto) | unstable | `H  J ` | @Willem-J-an diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 9ce38664d..b7037d245 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1187,6 +1187,14 @@ return { maintainers = { '@OXY2DEV' }, tier = 2, }, + kos = { + install_info = { + revision = '5f11d41b3150b0837e8b3964151ebb7fc4f367e9', + url = 'https://github.com/kos-lang/tree-sitter-kos', + }, + maintainers = { '@cdragan' }, + tier = 2, + }, kotlin = { install_info = { revision = '57fb4560ba8641865bc0baa6b3f413b236112c4c', diff --git a/runtime/queries/kos/folds.scm b/runtime/queries/kos/folds.scm new file mode 100644 index 000000000..ca51a5406 --- /dev/null +++ b/runtime/queries/kos/folds.scm @@ -0,0 +1,19 @@ +[ + (function_decl) + (constructor_literal) + (function_literal) + (class_decl) + (class_literal) + (do_statement) + (if_statement) + (try_statement) + (defer_statement) + (with_statement) + (switch_statement) + (switch_case) + (default_case) + (loop_statement) + (repeat_statement) + (while_statement) + (for_statement) +] @fold diff --git a/runtime/queries/kos/highlights.scm b/runtime/queries/kos/highlights.scm new file mode 100644 index 000000000..0942b2b89 --- /dev/null +++ b/runtime/queries/kos/highlights.scm @@ -0,0 +1,141 @@ +(hash_bang) @keyword.directive + +(comment) @comment @spell + +(number) @number + +(identifier) @variable + +(property_identifier) @property + +[ + (string_literal) + (string_literal_begin) + (string_literal_continuation) + (string_literal_end) +] @string + +[ + "case" + "default" + "else" + "if" + "switch" +] @keyword.conditional + +"import" @keyword.import + +[ + (break_statement) + (continue_statement) + "for" + "loop" + "repeat" + "while" +] @keyword.repeat + +(for_statement + "in" @keyword.repeat) + +"class" @keyword.type + +[ + "return" + "yield" +] @keyword.return + +[ + "catch" + "defer" + "throw" + "try" +] @keyword.exception + +[ + "constructor" + "fun" + "=>" +] @keyword.function + +[ + "_" + (line) + "assert" + ;"async" + "const" + "do" + "extends" + (fallthrough_statement) + ;"get" + ;"match" + "public" + ;"set" + ;"static" + "var" + "with" +] @keyword + +[ + (this) + (super) +] @variable.builtin + +[ + (false) + (true) +] @boolean + +(void) @constant.builtin + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + ";" + ":" + "." + "," +] @punctuation.delimiter + +[ + (arithmetic_assignment_operator) + (comparison_operator) + (bitwise_operator) + (additive_operator) + (multiplicative_operator) + (logical_operator) + (unary_operator) + "->" + "..." + "=" + "?" +] @operator + +(conditional_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +(class_member + (function_decl + name: (identifier) @function.method)) + +(function_decl + name: (identifier) @function) + +(class_decl + name: (identifier) @type) + +(invocation + (identifier) @function.call) + +(invocation + (refinement + property: (property_identifier) @function.method.call)) diff --git a/runtime/queries/kos/injections.scm b/runtime/queries/kos/injections.scm new file mode 100644 index 000000000..2677f272b --- /dev/null +++ b/runtime/queries/kos/injections.scm @@ -0,0 +1,6 @@ +(((comment) @_jsdoc_comment + (#lua-match? @_jsdoc_comment "^/[*][*][^*].*[*]/$")) @injection.content + (#set! injection.language "jsdoc")) + +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/runtime/queries/kos/locals.scm b/runtime/queries/kos/locals.scm new file mode 100644 index 000000000..37f14f4e6 --- /dev/null +++ b/runtime/queries/kos/locals.scm @@ -0,0 +1,41 @@ +; Scopes +;------- +(compound_statement) @local.scope + +(for_statement) @local.scope + +(function_decl) @local.scope + +(constructor_literal) @local.scope + +(function_literal) @local.scope + +(with_statement) @local.scope + +(catch_clause) @local.scope + +; Definitions +;------------ +(variable_decl + variable: (identifier) @local.definition.var) + +(parameter + parameter: (identifier) @local.definition.parameter) + +(import + module: (identifier) @local.definition.import) + +(import + symbol: (identifier) @local.definition.import) + +(function_decl + name: (identifier) @local.definition.function + (#set! definition.var.scope parent)) + +(class_decl + name: (identifier) @local.definition.type + (#set! definition.var.scope parent)) + +; References +;------------ +(identifier) @local.reference diff --git a/tests/query/highlights/kos/test.kos b/tests/query/highlights/kos/test.kos new file mode 100644 index 000000000..981fdb313 --- /dev/null +++ b/tests/query/highlights/kos/test.kos @@ -0,0 +1,149 @@ +#!/usr/bin/env kos +# ^ keyword.directive +public var item = 1; +# ^ keyword +# ^ keyword +# ^ variable +# ^ operator +# ^ number +# ^ punctuation.delimiter + +# hash comment +# <- @comment @spell + +// slash comment +# <- @comment @spell + +/* block comment */ +# <- @comment @spell + +fun name(arg1, +# ^ keyword.function +# ^ function +# ^ punctuation.bracket +# ^ variable +# ^ punctuation.delimiter + arg2 = "default", +# ^ variable +# ^ operator +# ^ string +# ^ punctuation.delimiter + arg3...) +# ^ variable +# ^ operator +# ^ punctuation.bracket +{ +# <- punctuation.bracket + arg1 += 1 + # ^ variable + # ^ operator + # ^ number + arg1 -= 2 + # ^ variable + # ^ operator + # ^ number + arg1 *= 3 + # ^ variable + # ^ operator + # ^ number + arg1 /= 4 + # ^ variable + # ^ operator + # ^ number + arg1 %= 5 + # ^ variable + # ^ operator + # ^ number + arg1 |= 6 + # ^ variable + # ^ operator + # ^ number + arg1 &= 7 + # ^ variable + # ^ operator + # ^ number + arg1 ^= 8 + # ^ variable + # ^ operator + # ^ number + arg1 <<= 9 + # ^ variable + # ^ operator + # ^ number + arg1 >>= 10 + # ^ variable + # ^ operator + # ^ number + arg1 >>>= 11 + # ^ variable + # ^ operator + # ^ number + arg1.prop[arg1](arg1)[void] = true + # ^ variable + # ^ punctuation.delimiter + # ^ property + # ^ punctuation.bracket + # ^ variable + # ^ punctuation.bracket + # ^ punctuation.bracket + # ^ variable + # ^ punctuation.bracket + # ^ punctuation.bracket + # ^ constant.builtin + # ^ operator + # ^ boolean + arg1 = 1 * (arg1 + 2) / arg1 - 3 % arg1 + # ^ variable + # ^ operator + # ^ number + # ^ operator + # ^ punctuation.bracket + # ^ variable + # ^ operator + # ^ number + # ^ punctuation.bracket + # ^ operator + # ^ variable + # ^ operator + # ^ number + # ^ operator + # ^ variable + for const elem in arg1 { + # ^ keyword.repeat + # ^ keyword + # ^ variable + # ^ keyword.repeat + # ^ variable + # ^ punctuation.bracket + if elem { + # ^ keyword.conditional + # ^ variable + # ^ punctuation.bracket + continue + # ^ keyword.repeat + } + # ^ punctuation.bracket + else { + # ^ keyword.conditional + # ^ punctuation.bracket + break + # ^ keyword.repeat + } + # ^ punctuation.bracket + } + # <- punctuation.bracket +} +# <- punctuation.bracket + +name(42) +# <- function.call +# ^ punctuation.bracket +# ^ number +# ^ punctuation.bracket + +name.name() +# <- variable +# ^ punctuation.delimiter +# ^ function.method.call +# ^ punctuation.bracket +# ^ punctuation.bracket From 99dfc5acefd7728cec4ad0d0a6a9720f2c2896ff Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Jan 2026 18:04:18 +0100 Subject: [PATCH 049/127] docs(readme): fix lazy snippet --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0f363c5f7..298ee8182 100644 --- a/README.md +++ b/README.md @@ -32,10 +32,10 @@ For details on these and how to help improving them, see [CONTRIBUTING.md](./CON You can install `nvim-treesitter` with your favorite package manager (or using the native `package` feature of vim, see `:h packages`). This plugin is only guaranteed to work with specific versions of language parsers** (as specified in the `parser.lua` table). **When upgrading the plugin, you must make sure that all installed parsers are updated to the latest version** via `:TSUpdate`. -It is strongly recommended to automate this; e.g., using [lazy.nvim](https://github.com/folke/lazy.nvim) +It is strongly recommended to automate this; e.g., using the following spec with [lazy.nvim](https://github.com/folke/lazy.nvim): ```lua -require('lazy').setup({ +{ 'nvim-treesitter/nvim-treesitter', lazy = false, build = ':TSUpdate' From b033ab331ca0bccbd93c3c2b4f886fdfc09abec0 Mon Sep 17 00:00:00 2001 From: Farid Date: Mon, 5 Jan 2026 14:15:36 +0400 Subject: [PATCH 050/127] docs(readme): fix lazy snippet --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 298ee8182..f542e4933 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ It is strongly recommended to automate this; e.g., using the following spec with 'nvim-treesitter/nvim-treesitter', lazy = false, build = ':TSUpdate' -}) +} ``` >[!IMPORTANT] From de878155ca66c49b027b1380e4e60a6c665b2630 Mon Sep 17 00:00:00 2001 From: Igor Lacerda Date: Wed, 7 Jan 2026 12:39:29 -0300 Subject: [PATCH 051/127] fix(html_tags): disable spell for tags (#8410) When tags are embedded into markdown, they'd get spell checked, in spite of that not really making sense. The real culprit of this issue is markdown's spell being too "loose". --- runtime/queries/html_tags/highlights.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/queries/html_tags/highlights.scm b/runtime/queries/html_tags/highlights.scm index 9eaf813be..94a338aa7 100644 --- a/runtime/queries/html_tags/highlights.scm +++ b/runtime/queries/html_tags/highlights.scm @@ -1,9 +1,11 @@ -(tag_name) @tag +(tag_name) @tag @nospell ; (erroneous_end_tag_name) @error ; we do not lint syntax errors (comment) @comment @spell -(attribute_name) @tag.attribute +(attribute_name) @tag.attribute @nospell + +(attribute_value) @nospell ((attribute (quoted_attribute_value) @string) From 6feaebb4561711cf6b99f2e8b96715a9fc9b496b Mon Sep 17 00:00:00 2001 From: Chris Dragan Date: Thu, 8 Jan 2026 05:53:42 +0000 Subject: [PATCH 052/127] feat(kos): highlights improvements (#8404) * Mark floats as number.float * Mark function arguments as variable.parameter * Mark _ placeholder as character.special * Mark string interpolation delimiters as punctuation.special --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/kos/highlights.scm | 17 +++++++++++- tests/query/highlights/kos/test.kos | 40 ++++++++++++++++++++++++++--- 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index b7037d245..e8af232b6 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1189,7 +1189,7 @@ return { }, kos = { install_info = { - revision = '5f11d41b3150b0837e8b3964151ebb7fc4f367e9', + revision = '03b261c1a78b71c38cf4616497f253c4a4ce118b', url = 'https://github.com/kos-lang/tree-sitter-kos', }, maintainers = { '@cdragan' }, diff --git a/runtime/queries/kos/highlights.scm b/runtime/queries/kos/highlights.scm index 0942b2b89..07757d2e3 100644 --- a/runtime/queries/kos/highlights.scm +++ b/runtime/queries/kos/highlights.scm @@ -4,8 +4,13 @@ (number) @number +(float_number) @number.float + (identifier) @variable +(parameter + parameter: (identifier) @variable.parameter) + (property_identifier) @property [ @@ -57,8 +62,9 @@ "=>" ] @keyword.function +"_" @character.special + [ - "_" (line) "assert" ;"async" @@ -96,6 +102,15 @@ "}" ] @punctuation.bracket +(string_literal_begin + "\\(" @punctuation.special) + +(string_literal_continuation + "\\(" @punctuation.special) + +(formatted_string + ")" @punctuation.special) + [ ";" ":" diff --git a/tests/query/highlights/kos/test.kos b/tests/query/highlights/kos/test.kos index 981fdb313..4e1b0ec6d 100644 --- a/tests/query/highlights/kos/test.kos +++ b/tests/query/highlights/kos/test.kos @@ -21,15 +21,15 @@ fun name(arg1, # ^ keyword.function # ^ function # ^ punctuation.bracket -# ^ variable +# ^ variable.parameter # ^ punctuation.delimiter arg2 = "default", -# ^ variable +# ^ variable.parameter # ^ operator # ^ string # ^ punctuation.delimiter arg3...) -# ^ variable +# ^ variable.parameter # ^ operator # ^ punctuation.bracket { @@ -147,3 +147,37 @@ name.name() # ^ function.method.call # ^ punctuation.bracket # ^ punctuation.bracket + +print("hello \(123 + var) world \(true)") +# <- function.call +# ^ punctuation.bracket +# ^ string +# ^ punctuation.special +# ^ number +# ^ operator +# ^ variable +# ^ punctuation.special +# ^ string +# ^ punctuation.special +# ^ boolean +# ^ punctuation.special +# ^ punctuation.bracket + +[] -> each((x,_,y) => x + y) +# <- punctuation.bracket +#^ punctuation.bracket +# ^ operator +# ^ function.call +# ^ punctuation.bracket +# ^ punctuation.bracket +# ^ variable.parameter +# ^ punctuation.delimiter +# ^ character.special +# ^ punctuation.delimiter +# ^ variable.parameter +# ^ punctuation.bracket +# ^ keyword.function +# ^ variable +# ^ operator +# ^ variable +# ^ punctuation.bracket From 9177f2ff061627f0af0f994e3a3c620a84c0c59b Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Thu, 8 Jan 2026 06:59:10 +0100 Subject: [PATCH 053/127] feat(parsers): add bpftrace (#8399) Co-authored-by: Riley Bruins --- SUPPORTED_LANGUAGES.md | 1 + lua/nvim-treesitter/parsers.lua | 8 + runtime/queries/bpftrace/highlights.scm | 228 ++++++++++++++++++++++++ runtime/queries/bpftrace/injections.scm | 12 ++ 4 files changed, 249 insertions(+) create mode 100644 runtime/queries/bpftrace/highlights.scm create mode 100644 runtime/queries/bpftrace/injections.scm diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 153483006..59be83a32 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -28,6 +28,7 @@ Language | Tier | Queries | Maintainer [bitbake](https://github.com/tree-sitter-grammars/tree-sitter-bitbake) | unstable | `HFIJL` | @amaanq [blade](https://github.com/EmranMR/tree-sitter-blade) | unstable | `HFIJ ` | @calebdw [bp](https://github.com/ambroisie/tree-sitter-bp)[^bp] | unstable | `HFIJL` | @ambroisie +[bpftrace](https://github.com/sgruszka/tree-sitter-bpftrace) | unstable | `H  J ` | @sgruszka [brightscript](https://github.com/ajdelcimmuto/tree-sitter-brightscript) | unstable | `HFIJ ` | @ajdelcimmuto [c](https://github.com/tree-sitter/tree-sitter-c) | unstable | `HFIJL` | @amaanq [c3](https://github.com/c3lang/tree-sitter-c3) | unstable | `HFIJ ` | @cbuttner diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index e8af232b6..1aa37c35c 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -140,6 +140,14 @@ return { readme_note = 'Android Blueprint', tier = 2, }, + bpftrace = { + install_info = { + revision = '9cdfa285bb4fd3abc74cce6e2fb46f381feca987', + url = 'https://github.com/sgruszka/tree-sitter-bpftrace', + }, + maintainers = { '@sgruszka' }, + tier = 2, + }, brightscript = { install_info = { revision = '253fdfaa23814cb46c2d5fc19049fa0f2f62c6da', diff --git a/runtime/queries/bpftrace/highlights.scm b/runtime/queries/bpftrace/highlights.scm new file mode 100644 index 000000000..30a489537 --- /dev/null +++ b/runtime/queries/bpftrace/highlights.scm @@ -0,0 +1,228 @@ +; Comments +[ + (line_comment) + (block_comment) +] @comment @spell + +; String and numeric literals +(string_literal) @string + +(escape_sequence) @string.escape + +(integer_literal) @number + +(boolean_literal) @boolean + +; Variables +(identifier) @variable + +(args_keyword) @variable.builtin + +((identifier) @variable.builtin + (#lua-match? @variable.builtin "^arg[0-9]+$")) + +(scratch_variable) @variable + +(map_variable) @variable + +(script_parameter) @variable.parameter + +; Macro +(macro_definition + (identifier) @function.macro) + +; Probes +; fentry/fexit, kprobe/kretprobe, rawtracepoint +(probe + provider: (_) @type.builtin + module: (wildcard_identifier) @module + function: (wildcard_identifier) @property) + +(probe + provider: (_) @type.builtin + function: (wildcard_identifier) @property) + +; uprobe/uretprobe +(probe + provider: (uprobe_uretprobe_provider) @type.builtin + binary: (file_identifier) @string.special.path + function: (identifier) @property) + +; tracepoint +(probe + provider: (_) @type.builtin + subsys: (wildcard_identifier) @module + event: (wildcard_identifier) @property) + +; software/hardware +(probe + provider: (_) @type.builtin + event: (identifier_with_dash) @property + count: (integer_literal) @number) + +(probe + provider: (_) @type.builtin + event: (identifier_with_dash) @property) + +; bench/test +(probe + provider: (bench_test_provider) @type.builtin + function: (identifier) @property) + +; profile/interval +(probe + provider: (profile_interval_provider) @type.builtin + unit: (time_unit) @string.special + count: (integer_literal) @property) + +(probe + provider: (profile_interval_provider) @type.builtin + count: (integer_literal) @number) + +; iter +(probe + provider: (iter_provider) @type.builtin + object: (identifier) @module + pin: (file_identifier) @property) + +(probe + provider: (iter_provider) @type.builtin + object: (identifier) @module) + +; ustd +(probe + provider: (ustd_provider) @type.builtin + binary: (file_identifier) @string.special.path + namespace: (identifier) @variable + function: (identifier) @property) + +(probe + provider: (ustd_provider) @type.builtin + binary: (file_identifier) @string.special.path + function: (identifier) @property) + +; watchpoint/asyncwatchpoint +(probe + provider: (watchpoint_provider) @type.builtin + address: (integer_literal) @number + length: (integer_literal) @number + mode: (watchpoint_mode) @property) + +; Types +(type_specifier) @type + +(integer_type) @type.builtin + +[ + "BEGIN" + "begin" + "END" + "end" +] @type.builtin + +; Keywords +(hashbang) @keyword.directive + +(return_statement) @keyword.return + +[ + "config" + "let" + "macro" + "offsetof" + "sizeof" +] @keyword + +[ + "if" + "else" +] @keyword.conditional + +[ + "for" + "unroll" + "while" + (break_statement) + (continue_statement) +] @keyword.repeat + +"import" @keyword.import + +(field_expression + field: (identifier) @property) + +(call_expression + function: (identifier) @function.call) + +; Punctuations +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +[ + "," + ";" + ":" + "." +] @punctuation.delimiter + +; Operators +[ + ; Field access + "->" + ; Range + ".." + ; Assignment + "=" + "<<=" + ">>=" + "+=" + "-=" + "*=" + "/=" + "%=" + "&=" + "|=" + "^=" + ; Update + "--" + "++" + ; Arithmetic + "%" + "+" + "-" + "*" + "/" + ; Relational + "<=" + "<" + ">=" + ">" + "==" + "!=" + ; Bitwise + "&" + "^" + "|" + "~" + "<<" + ">>" + ; Logical + "&&" + "||" + "!" +] @operator + +(conditional_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +(predicate + "/" @punctuation.delimiter) diff --git a/runtime/queries/bpftrace/injections.scm b/runtime/queries/bpftrace/injections.scm new file mode 100644 index 000000000..8907d9f84 --- /dev/null +++ b/runtime/queries/bpftrace/injections.scm @@ -0,0 +1,12 @@ +([ + (c_struct) + (c_preproc) + (c_preproc_block) +] @injection.content + (#set! injection.language "c")) + +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) From 5e8652dbafca97855514c5aab9ae6f7901d2504b Mon Sep 17 00:00:00 2001 From: Riley Bruins Date: Wed, 7 Jan 2026 22:05:52 -0800 Subject: [PATCH 054/127] fix(usd): misc punctuation highlights --- runtime/queries/usd/highlights.scm | 2 ++ tests/query/highlights/usd/prims.usda | 2 ++ 2 files changed, 4 insertions(+) diff --git a/runtime/queries/usd/highlights.scm b/runtime/queries/usd/highlights.scm index d6c2a3668..98a7ff95c 100644 --- a/runtime/queries/usd/highlights.scm +++ b/runtime/queries/usd/highlights.scm @@ -52,12 +52,14 @@ "]" "{" "}" + "[]" ] @punctuation.bracket [ ":" ";" "." + "," ] @punctuation.delimiter "=" @operator diff --git a/tests/query/highlights/usd/prims.usda b/tests/query/highlights/usd/prims.usda index da9a5d6fe..dcb6c3b59 100644 --- a/tests/query/highlights/usd/prims.usda +++ b/tests/query/highlights/usd/prims.usda @@ -3,8 +3,10 @@ def Xform "cube" ( # <- @keyword asset[] payloadAssetDependencies = [@fizz.usd@, @buzz.usd@] # <- @type + # ^ @punctuation.bracket # ^ @keyword # ^ @string.special.url + # ^ @punctuation.delimiter # ^ @string.special.url } ) From 2ba5ec184609a96b513bf4c53a20512d64e27f39 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 8 Jan 2026 10:22:02 +0100 Subject: [PATCH 055/127] test(init): remove upstreamed Nickel ft detection --- scripts/minimal_init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/minimal_init.lua b/scripts/minimal_init.lua index 4a5e14f16..a90f56004 100644 --- a/scripts/minimal_init.lua +++ b/scripts/minimal_init.lua @@ -7,7 +7,6 @@ vim.cmd.runtime({ 'plugin/filetypes.lua', bang = true }) vim.filetype.add({ extension = { conf = 'hocon', - ncl = 'nickel', tig = 'tiger', w = 'wing', }, From 6016f1232dea2c3f4e60a90d36510a362d5703e0 Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 10 Jan 2026 06:51:38 +0000 Subject: [PATCH 056/127] bot(parsers): update beancount, bpftrace, c3, fortran, gleam, lua, mlir, sql --- lua/nvim-treesitter/parsers.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 1aa37c35c..ab2ec1c1f 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -93,7 +93,7 @@ return { }, beancount = { install_info = { - revision = '653cce316fbff8d212a2488ae13df648efb542a4', + revision = '23b21252da8b8cb0f03d1d1fc4c8f87d407e1cdf', url = 'https://github.com/polarmutex/tree-sitter-beancount', }, maintainers = { '@polarmutex' }, @@ -142,7 +142,7 @@ return { }, bpftrace = { install_info = { - revision = '9cdfa285bb4fd3abc74cce6e2fb46f381feca987', + revision = 'dee4269b564fdf7071ee454e873767fd334f79ae', url = 'https://github.com/sgruszka/tree-sitter-bpftrace', }, maintainers = { '@sgruszka' }, @@ -166,7 +166,7 @@ return { }, c3 = { install_info = { - revision = '805f776dcfbfef5c9baf4270ec942b3e8dc7ff16', + revision = '2c04e7858d63497152d42f08d3067972618aeedc', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, @@ -592,7 +592,7 @@ return { }, fortran = { install_info = { - revision = 'e0132896b8959c09dc20b56e4a1c5d25bc341697', + revision = '589151aab08fdd7404678330e8abacf9b78bb595', url = 'https://github.com/stadelmanma/tree-sitter-fortran', }, maintainers = { '@amaanq' }, @@ -700,7 +700,7 @@ return { }, gleam = { install_info = { - revision = '0c0c63a07998767b22f0d2655f903611eca6acd0', + revision = 'dd4e328c5fd5f158d47a22339d8ce0f8be918a0b', url = 'https://github.com/gleam-lang/tree-sitter-gleam', }, maintainers = { '@amaanq' }, @@ -1294,7 +1294,7 @@ return { }, lua = { install_info = { - revision = 'e284fcec45ead0d477e326fccd2cd4a68a89dae4', + revision = 'de08dfd9640604763558530d2ce703cbe6a16bb6', url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua', }, maintainers = { '@muniftanjim' }, @@ -1397,7 +1397,7 @@ return { mlir = { install_info = { generate = true, - revision = 'c7eec06be8a9ddae688e1b03fca2eed79e9801c4', + revision = '9edc9201736c5a471314b4e28c20d0f0b4642b6f', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -2139,7 +2139,7 @@ return { sql = { install_info = { branch = 'gh-pages', - revision = '2d5dcd16f9ee49cb5a6d99eabb00fd4ea298587f', + revision = '5129061608da71146c813e13c32a54f4b13645c8', url = 'https://github.com/derekstride/tree-sitter-sql', }, maintainers = { '@derekstride' }, From 5a7e5638e7d220575b1c22c8a2e099b52231886e Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 10 Jan 2026 06:51:35 +0000 Subject: [PATCH 057/127] bot(parsers): update inko --- lua/nvim-treesitter/parsers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ab2ec1c1f..1bee7e59b 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1033,7 +1033,7 @@ return { }, inko = { install_info = { - revision = 'v0.4.0', + revision = 'v0.5.1', url = 'https://github.com/inko-lang/tree-sitter-inko', }, maintainers = { '@yorickpeterse' }, From c872ec85cc73fba3f3368f6974d17b82f7c0f72b Mon Sep 17 00:00:00 2001 From: Abbath Date: Tue, 13 Jan 2026 02:19:22 +0100 Subject: [PATCH 058/127] fix(haskell): syntax highlighting for Haskell lambda expressions Fixes highlighting for lambdas with multiple parameters. --- runtime/queries/haskell/highlights.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/queries/haskell/highlights.scm b/runtime/queries/haskell/highlights.scm index de0eaf0a1..8e9f1b3c3 100644 --- a/runtime/queries/haskell/highlights.scm +++ b/runtime/queries/haskell/highlights.scm @@ -9,7 +9,8 @@ (_) @variable.parameter)) (expression/lambda - (_)+ @variable.parameter + patterns: (patterns + (_) @variable.parameter) "->") (decl/function From 15b3416cc1f557c4932468e512a0bd45871167bc Mon Sep 17 00:00:00 2001 From: Abbath Date: Wed, 14 Jan 2026 11:16:45 +0100 Subject: [PATCH 059/127] fix(haskell): highlighting for operator definition and operator-like constructors. --- runtime/queries/haskell/highlights.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/queries/haskell/highlights.scm b/runtime/queries/haskell/highlights.scm index 8e9f1b3c3..9d043b49d 100644 --- a/runtime/queries/haskell/highlights.scm +++ b/runtime/queries/haskell/highlights.scm @@ -227,7 +227,9 @@ (qualified ((module) @module (variable) @function.call)) - ]) + ] + (operator) @_op + (#match? @_op "^[^:].*")) ; infix operators applied to variables ((expression/variable) @variable @@ -246,7 +248,7 @@ (function (infix left_operand: [ - (variable) @variable + (variable) @variable.parameter (qualified ((module) @module (variable) @variable)) From 8aada0e3940c573e38b417a226b43bc8675f8958 Mon Sep 17 00:00:00 2001 From: Abbath Date: Fri, 16 Jan 2026 17:56:29 +0100 Subject: [PATCH 060/127] fix(haskell): use grammar for operator detection instead of match --- runtime/queries/haskell/highlights.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/runtime/queries/haskell/highlights.scm b/runtime/queries/haskell/highlights.scm index 9d043b49d..d0fdc17f6 100644 --- a/runtime/queries/haskell/highlights.scm +++ b/runtime/queries/haskell/highlights.scm @@ -228,8 +228,7 @@ ((module) @module (variable) @function.call)) ] - (operator) @_op - (#match? @_op "^[^:].*")) + operator: (operator)) ; infix operators applied to variables ((expression/variable) @variable From 7c14161403275550f94e1b218510f3ecbbb3c58e Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 17 Jan 2026 06:51:48 +0000 Subject: [PATCH 061/127] bot(parsers): update bpftrace, desktop, editorconfig, glimmer, javadoc, liquidsoap, markdown, markdown_inline, matlab, meson, mlir, nim, pkl, rego, rescript, swift, vhdl, xresources --- lua/nvim-treesitter/parsers.lua | 36 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 1bee7e59b..b45d1067d 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -142,7 +142,7 @@ return { }, bpftrace = { install_info = { - revision = 'dee4269b564fdf7071ee454e873767fd334f79ae', + revision = '99ad82e02067a25b2a717fc006ea74b1604f7115', url = 'https://github.com/sgruszka/tree-sitter-bpftrace', }, maintainers = { '@sgruszka' }, @@ -346,7 +346,7 @@ return { }, desktop = { install_info = { - revision = 'c0279c1fb1e2e1f06f374437815d4abda02e30b2', + revision = 'f9cf7575dd35ee3f0964efd850f5547023f8b3c7', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -449,7 +449,7 @@ return { }, editorconfig = { install_info = { - revision = 'f8e8a4cefe4de5d7e87bd129f3a69bdcdf73eebe', + revision = '1c07dcd050e98eaaa9aa628599dda0406821899a', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -708,7 +708,7 @@ return { }, glimmer = { install_info = { - revision = 'da605af8c5999b43e6839b575eae5e6cafabb06f', + revision = '88af85568bde3b91acb5d4c352ed094d0c1f9d84', url = 'https://github.com/ember-tooling/tree-sitter-glimmer', }, maintainers = { '@NullVoxPopuli' }, @@ -1066,7 +1066,7 @@ return { }, javadoc = { install_info = { - revision = '373fbd84f35aff70031426ed6edf3cdf52b93532', + revision = '60bfacbc38a4d7902915ddf5338d0035274226d5', url = 'https://github.com/rmuir/tree-sitter-javadoc', }, maintainers = { '@rmuir' }, @@ -1278,7 +1278,7 @@ return { }, liquidsoap = { install_info = { - revision = '4de01f44de2c051c33832ce523cf44690561320d', + revision = 'd092c65598e940564e12214ff7c2097528cfa159', url = 'https://github.com/savonet/tree-sitter-liquidsoap', }, maintainers = { '@toots' }, @@ -1345,7 +1345,7 @@ return { markdown = { install_info = { location = 'tree-sitter-markdown', - revision = '2dfd57f547f06ca5631a80f601e129d73fc8e9f0', + revision = 'aca7767daa8bbe3daddafc312c34be88383c828b', url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown', }, maintainers = { '@MDeiml' }, @@ -1356,7 +1356,7 @@ return { markdown_inline = { install_info = { location = 'tree-sitter-markdown-inline', - revision = '2dfd57f547f06ca5631a80f601e129d73fc8e9f0', + revision = 'aca7767daa8bbe3daddafc312c34be88383c828b', url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown', }, maintainers = { '@MDeiml' }, @@ -1365,7 +1365,7 @@ return { }, matlab = { install_info = { - revision = '1bccabdbd420a9c3c3f96f36d7f9e65b3d9c88ef', + revision = 'f3eef66526fdae0469207d8e561fb5771eea1721', url = 'https://github.com/acristoffers/tree-sitter-matlab', }, maintainers = { '@acristoffers' }, @@ -1388,7 +1388,7 @@ return { }, meson = { install_info = { - revision = 'd4fa3c7260d1537ac5183740b9338373a673d5c0', + revision = '64ecb49f15417ee08037ddbcf29709dbabb67a8a', url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson', }, maintainers = { '@Decodetalkers' }, @@ -1397,7 +1397,7 @@ return { mlir = { install_info = { generate = true, - revision = '9edc9201736c5a471314b4e28c20d0f0b4642b6f', + revision = 'c457b68dd485c6bcbd82acc642ead9340f37fa77', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1436,7 +1436,7 @@ return { }, nim = { install_info = { - revision = '4ad352773688deb84a95eeaa9872acda5b466439', + revision = '9b4ede21a6ca866d29263f6b66c070961bc622b4', url = 'https://github.com/alaviss/tree-sitter-nim', }, maintainers = { '@aMOPel' }, @@ -1608,7 +1608,7 @@ return { }, pkl = { install_info = { - revision = 'ac58931956c000d3aeefbb55a81fc3c5bd6aecf0', + revision = 'd9c591b4e770934fe15c2f1b3658f35553f6cb40', url = 'https://github.com/apple/tree-sitter-pkl', }, maintainers = { '@ribru17' }, @@ -1883,7 +1883,7 @@ return { }, rego = { install_info = { - revision = '20b5a5958c837bc9f74b231022a68a594a313f6d', + revision = 'ddd39af81fe8b0288102a7cb97959dfce723e0f3', url = 'https://github.com/FallenAngel97/tree-sitter-rego', }, maintainers = { '@FallenAngel97' }, @@ -1900,7 +1900,7 @@ return { }, rescript = { install_info = { - revision = 'd2df8a285fff95de56a91d2f8152aeceb66f40ef', + revision = '4abea6f22b180cd5a82b55941a9c42c1d281c30f', url = 'https://github.com/rescript-lang/tree-sitter-rescript', }, maintainers = { '@ribru17' }, @@ -2230,7 +2230,7 @@ return { swift = { install_info = { generate = true, - revision = '82a239e4c164b0567fb99b80b53f99ba661f2168', + revision = '237e5dc79f041ca775b1742e36ba18f15fcece83', url = 'https://github.com/alex-pinkus/tree-sitter-swift', }, maintainers = { '@alex-pinkus' }, @@ -2520,7 +2520,7 @@ return { }, vhdl = { install_info = { - revision = '7ae08deb5d1641aa57111342218ca1e1b3a5d539', + revision = '674ed9fe6c13c79c0e7407daaf4518d053e6f0f4', url = 'https://github.com/jpt13653903/tree-sitter-vhdl', }, maintainers = { '@jpt13653903' }, @@ -2628,7 +2628,7 @@ return { }, xresources = { install_info = { - revision = 'f60fb1e661d85f35fb8e7b988a41d2a74f65bfd4', + revision = 'c08cb31b8a3a8c37cc8a98ff251790994bbfb25e', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 19261d56ed222ed93c6310943af0954d54c618fa Mon Sep 17 00:00:00 2001 From: Nico Salm Date: Fri, 16 Jan 2026 01:09:25 -0600 Subject: [PATCH 062/127] fix(rust): highlight doc comment markers as @comment.documentation Co-authored-by: LunarLambda --- runtime/queries/rust/highlights.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runtime/queries/rust/highlights.scm b/runtime/queries/rust/highlights.scm index de9d09684..2342dcfa3 100644 --- a/runtime/queries/rust/highlights.scm +++ b/runtime/queries/rust/highlights.scm @@ -476,9 +476,12 @@ [ (line_comment) (block_comment) +] @comment @spell + +[ (outer_doc_comment_marker) (inner_doc_comment_marker) -] @comment @spell +] @comment.documentation (line_comment (doc_comment)) @comment.documentation From d19def46c112c26c17adeef88dd1253cc6d623a1 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 17 Jan 2026 16:10:23 +0100 Subject: [PATCH 063/127] fix(make): switch to maintained fork --- SUPPORTED_LANGUAGES.md | 2 +- lua/nvim-treesitter/parsers.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 59be83a32..421ed2026 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -175,7 +175,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | @steelsojka [luap](https://github.com/tree-sitter-grammars/tree-sitter-luap)[^luap] | unstable | `H    ` | @amaanq [luau](https://github.com/tree-sitter-grammars/tree-sitter-luau) | unstable | `HFIJL` | @amaanq [m68k](https://github.com/grahambates/tree-sitter-m68k) | unstable | `HF JL` | @grahambates -[make](https://github.com/alemuller/tree-sitter-make) | unstable | `HF J ` | @lewis6991 +[make](https://github.com/tree-sitter-grammars/tree-sitter-make) | unstable | `HF J ` | @lewis6991 [markdown](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown] | unstable | `HFIJ ` | @MDeiml [markdown_inline](https://github.com/tree-sitter-grammars/tree-sitter-markdown)[^markdown_inline] | unstable | `H  J ` | @MDeiml [matlab](https://github.com/acristoffers/tree-sitter-matlab) | unstable | `HFIJL` | @acristoffers diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index b45d1067d..de7a85171 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -1336,8 +1336,8 @@ return { }, make = { install_info = { - revision = 'a4b9187417d6be349ee5fd4b6e77b4172c6827dd', - url = 'https://github.com/alemuller/tree-sitter-make', + revision = '5e9e8f8ff3387b0edcaa90f46ddf3629f4cfeb1d', + url = 'https://github.com/tree-sitter-grammars/tree-sitter-make', }, maintainers = { '@lewis6991' }, tier = 2, From 3121570f07fb6da120e22208d82ea70c7cbcd457 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 17 Jan 2026 14:41:56 +0100 Subject: [PATCH 064/127] docs(contributing): inclusion criteria --- CONTRIBUTING.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0dc03947b..52ec52633 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,21 @@ Before describing these in detail, some general advice: ## Parsers +>[!IMPORTANT] +> To qualify for inclusion, a parser must meet the following criteria: +> * correspond to a filetype detected by Neovim (nightly) +> * feature complete, tested by users, and actively maintained (according to maintainer discretion) +> * hosted or mirrored on Github (other codeforges are not reliable enough for CI) +> * covered by CI using [upstream workflows](https://github.com/tree-sitter/workflows) +> * provide reference queries covered by a [`ts_query_ls` workflow](https://github.com/tree-sitter-grammars/template/blob/9c46d09d688d27c7aef31c2b32f50260de4e7906/.github/workflows/ci.yml#L69-L86) +> * if the repo contains a `src/parser.c`, it must support the latest ABI +> * if the repo does _not_ contain a `src/parser.c`, it must contain an up-to-date `src/grammar.json` +> * if the repo contains an external scanner, it must be written in C99 +> +> Tier 1 parsers (preferred) in addition need to +> * make regular releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns) +> * provide WASM release artifacts + To add a new parser, edit the following files: 1. In `lua/parsers.lua`, add an entry to the returned table of the following form: @@ -36,30 +51,15 @@ zimbu = { } ``` ->[!IMPORTANT] -> If the repo does not contain a pre-generated `src/parser.c`, it **must** at least contain `src/grammar.json` so that the parser can be generated without having `node` installed. - >[!IMPORTANT] > The "maintainers" here refers to the person maintaining the **queries** in `nvim-treesitter`, not the parser maintainers (who likely don't use Neovim). The maintainers' duty is to review issues and PRs related to the query and to keep them updated with respect to parser changes. ->[!IMPORTANT] -> Due to reliability issues with smaller codeforges, only Github-hosted parsers are currently eligible for inclusion. (The development may happen elsewhere, but there must at least exist a Github mirror to pull the source from.) We are monitoring the situation and hope to support more codeforges again in the future. - ->[!NOTE] -> To qualify for Tier 1 ("stable"), a parser needs to -> * make releases following semver (_patch_ for fixes not affecting queries; _minor_ for changes introducing new nodes or patterns; _major_ for changes removing nodes or previously valid patterns); -> * provide WASM release artifacts; -> * include and maintain reference queries. - 2. If the parser name is not the same as the Vim filetype, add an entry to the `filetypes` table in `plugin/filetypes.lua`: ```lua zimbu = { 'zu' }, ``` ->[!IMPORTANT] -> Only external scanners written in C are supported for portability reasons. - 3. Update the list of [supported languages] by running `make docs` (or `./scripts/update-readme.lua` if on Windows). 4. Test if both `:TSInstall zimbu` and `:TSInstallFromGrammar zimbu` work without errors (`:checkhealth treesitter` or `./scripts/check-parsers.lua zimbu`). From d9a5fb8484374e8ed5d88dd9e0475a760c168d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariusz=20Biega=C5=84ski?= Date: Sun, 18 Jan 2026 17:18:53 +0100 Subject: [PATCH 065/127] docs(supported_languages): fix order of available queries --- SUPPORTED_LANGUAGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md index 421ed2026..32d538361 100644 --- a/SUPPORTED_LANGUAGES.md +++ b/SUPPORTED_LANGUAGES.md @@ -4,7 +4,7 @@ The following is a list of languages for which a parser can be installed through Legend: - **Tier:** _stable_ (updates follow semver releases), _unstable_ (updates follow HEAD), _unmaintained_ (no automatic updates), or _unsupported_ (known to be broken, cannot be installed) -- **Queries** available for **H**ighlights, **I**ndents, **F**olds, In**J**ections, **L**ocals +- **Queries** available for **H**ighlights, **F**olds, **I**ndents, In**J**ections, **L**ocals - **Maintainer** of queries in nvim-treesitter (may be different from parser maintainer!) From b9933f0e1386c7b63fe131d9979d9c2613da551a Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 19 Jan 2026 10:32:26 +0100 Subject: [PATCH 066/127] test(init): remove upstreamed Tiger ft detection --- scripts/minimal_init.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/minimal_init.lua b/scripts/minimal_init.lua index a90f56004..5af027d5a 100644 --- a/scripts/minimal_init.lua +++ b/scripts/minimal_init.lua @@ -7,7 +7,6 @@ vim.cmd.runtime({ 'plugin/filetypes.lua', bang = true }) vim.filetype.add({ extension = { conf = 'hocon', - tig = 'tiger', w = 'wing', }, }) From e75c007f2747050c2c620dc862c77b8f242551a8 Mon Sep 17 00:00:00 2001 From: Peter Cardenas <16930781+PeterCardenas@users.noreply.github.com> Date: Mon, 19 Jan 2026 05:34:27 -0800 Subject: [PATCH 067/127] fix(fish): update builtin highlights --- runtime/queries/fish/highlights.scm | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/runtime/queries/fish/highlights.scm b/runtime/queries/fish/highlights.scm index 549bceda0..da5c52a32 100644 --- a/runtime/queries/fish/highlights.scm +++ b/runtime/queries/fish/highlights.scm @@ -112,15 +112,16 @@ (command name: (word) @function.call) -; derived from builtin -n (fish 3.2.2) +; derived from builtin -n (fish 4.3.3) (command name: [ (word) @function.builtin (#any-of? @function.builtin "." ":" "_" "abbr" "alias" "argparse" "bg" "bind" "block" "breakpoint" "builtin" "cd" "command" "commandline" "complete" "contains" "count" "disown" "echo" "emit" "eval" "exec" - "exit" "fg" "functions" "history" "isatty" "jobs" "math" "path" "printf" "pwd" "random" "read" - "realpath" "set" "set_color" "source" "status" "string" "test" "time" "type" "ulimit" "wait") + "exit" "fg" "fish_indent" "fish_key_reader" "functions" "history" "isatty" "jobs" "math" + "path" "printf" "pwd" "random" "read" "realpath" "set" "set_color" "source" "status" "string" + "test" "time" "type" "ulimit" "wait") ]) ; Functions @@ -163,15 +164,15 @@ ; Reference: https://fishshell.com/docs/current/language.html#special-variables ((variable_name) @variable.builtin (#any-of? @variable.builtin - "PATH" "CDPATH" "LANG" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_MONETARY" "LC_NUMERIC" - "LC_TIME" "fish_color_normal" "fish_color_command" "fish_color_keyword" "fish_color_keyword" - "fish_color_redirection" "fish_color_end" "fish_color_error" "fish_color_param" - "fish_color_valid_path" "fish_color_option" "fish_color_comment" "fish_color_selection" - "fish_color_operator" "fish_color_escape" "fish_color_autosuggestion" "fish_color_cwd" - "fish_color_cwd_root" "fish_color_user" "fish_color_host" "fish_color_host_remote" - "fish_color_status" "fish_color_cancel" "fish_color_search_match" "fish_color_history_current" - "fish_pager_color_progress" "fish_pager_color_background" "fish_pager_color_prefix" - "fish_pager_color_completion" "fish_pager_color_description" + "PATH" "CDPATH" "LANG" "LANGUAGE" "LC_ALL" "LC_COLLATE" "LC_CTYPE" "LC_MESSAGES" "LC_MONETARY" + "LC_NUMERIC" "LC_TIME" "fish_color_normal" "fish_color_command" "fish_color_keyword" + "fish_color_keyword" "fish_color_redirection" "fish_color_end" "fish_color_error" + "fish_color_param" "fish_color_valid_path" "fish_color_option" "fish_color_comment" + "fish_color_selection" "fish_color_operator" "fish_color_escape" "fish_color_autosuggestion" + "fish_color_cwd" "fish_color_cwd_root" "fish_color_user" "fish_color_host" + "fish_color_host_remote" "fish_color_status" "fish_color_cancel" "fish_color_search_match" + "fish_color_history_current" "fish_pager_color_progress" "fish_pager_color_background" + "fish_pager_color_prefix" "fish_pager_color_completion" "fish_pager_color_description" "fish_pager_color_selected_background" "fish_pager_color_selected_prefix" "fish_pager_color_selected_completion" "fish_pager_color_selected_description" "fish_pager_color_secondary_background" "fish_pager_color_secondary_prefix" @@ -183,8 +184,8 @@ "fish_cursor_visual" "fish_cursor_external" "fish_function_path" "fish_greeting" "fish_history" "fish_trace" "FISH_DEBUG" "FISH_DEBUG_OUTPUT" "fish_user_paths" "umask" "BROWSER" "_" "argv" "CMD_DURATION" "COLUMNS" "LINES" "fish_kill_signal" "fish_killring" "fish_read_limit" "fish_pid" - "history" "HOME" "hostname" "IFS" "last_pid" "PWD" "pipestatus" "SHLVL" "status" - "status_generation" "TERM" "USER" "EUID" "version" "FISH_VERSION")) + "fish_terminal_color_theme" "history" "HOME" "hostname" "IFS" "last_pid" "PWD" "pipestatus" + "SHLVL" "status" "status_generation" "TERM" "USER" "EUID" "version" "FISH_VERSION")) ; Nodes [ From ec034813775d7e2974c7551c8c34499a828963f8 Mon Sep 17 00:00:00 2001 From: mintbug Date: Tue, 20 Jan 2026 17:32:27 +0300 Subject: [PATCH 068/127] feat(typst): set url attribute for links --- runtime/queries/typst/highlights.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/runtime/queries/typst/highlights.scm b/runtime/queries/typst/highlights.scm index a0dcc1b89..0ae538fe1 100644 --- a/runtime/queries/typst/highlights.scm +++ b/runtime/queries/typst/highlights.scm @@ -106,7 +106,17 @@ (emph) @markup.italic -(url) @markup.link.url +((url) @markup.link.url + (#set! @markup.link.url url @markup.link.url)) + +(call + item: (ident) @_link + (#eq? @_link "link") + (group + . + (string) @markup.link.url + (#offset! @markup.link.url 0 1 0 -1) + (#set! @markup.link.url url @markup.link.url))) ; code blocks (raw_span) @markup.raw From 0d1b8b026b1c731011697f8010bc4856126c1f06 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 22 Jan 2026 18:23:05 +0100 Subject: [PATCH 069/127] ci: use ubuntu-slim for small jobs --- .github/workflows/lint.yml | 6 +++--- .github/workflows/update-parsers.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 41830b225..6ed8e7ba2 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -12,7 +12,7 @@ on: jobs: lua: name: Lint Lua files - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 @@ -26,7 +26,7 @@ jobs: queries: name: Lint query files - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 @@ -40,7 +40,7 @@ jobs: readme: name: Lint docs - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/update-parsers.yml b/.github/workflows/update-parsers.yml index 23741d761..7b68b2412 100644 --- a/.github/workflows/update-parsers.yml +++ b/.github/workflows/update-parsers.yml @@ -15,7 +15,7 @@ jobs: matrix: tier: [1, 2] name: Update parsers tier ${{ matrix.tier }} - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 with: From 61d3f5b186dbaf0eb12528b9ff9343fb1c2a956f Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 22 Jan 2026 18:24:05 +0100 Subject: [PATCH 070/127] test(lint): bump luals to 3.17.1 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 15482e03b..9442df997 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ NVIM_VERSION ?= nightly -LUALS_VERSION := 3.15.0 +LUALS_VERSION := 3.17.1 DEPDIR ?= .test-deps CURL ?= curl -sL --create-dirs From 62dad2a60a10ca8e2b835875841b01b1c3f9304d Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 22 Jan 2026 18:30:35 +0100 Subject: [PATCH 071/127] ci: add concurrency for downstream tests --- .github/workflows/downstream.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index e9f69fb72..c3829c51a 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -8,6 +8,10 @@ on: - "lua/nvim-treesitter/parsers.lua" workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-generate-${{ github.ref }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: test-downstream: name: Check downstream queries From 511e5ccf404f8a96ee31866b079fca033a8a7c4e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 22 Jan 2026 18:37:55 +0100 Subject: [PATCH 072/127] ci: correct concurrency group for downstream --- .github/workflows/downstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index c3829c51a..46e699613 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -9,7 +9,7 @@ on: workflow_dispatch: concurrency: - group: ${{ github.workflow }}-generate-${{ github.ref }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: ${{ github.event_name == 'pull_request' }} jobs: From 88f1dfc211c3a2fb47f1451fd5edc972ec697e58 Mon Sep 17 00:00:00 2001 From: Stanislaw Gruszka Date: Fri, 23 Jan 2026 09:03:17 +0100 Subject: [PATCH 073/127] feat(bpftrace): update parser and small highlights improvements Update parser. Use new builtins from grammar (don't use lua-match). --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/bpftrace/highlights.scm | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index de7a85171..5ea9c8f69 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -142,7 +142,7 @@ return { }, bpftrace = { install_info = { - revision = '99ad82e02067a25b2a717fc006ea74b1604f7115', + revision = '0978030fdcdab74d49faaee2a60eb94607a367cc', url = 'https://github.com/sgruszka/tree-sitter-bpftrace', }, maintainers = { '@sgruszka' }, diff --git a/runtime/queries/bpftrace/highlights.scm b/runtime/queries/bpftrace/highlights.scm index 30a489537..19e568515 100644 --- a/runtime/queries/bpftrace/highlights.scm +++ b/runtime/queries/bpftrace/highlights.scm @@ -18,8 +18,9 @@ (args_keyword) @variable.builtin -((identifier) @variable.builtin - (#lua-match? @variable.builtin "^arg[0-9]+$")) +(argn_identifier) @variable.builtin + +(retval_identifier) @variable.builtin (scratch_variable) @variable From b67d29ce748c3c488485a4733e16acda0ec8d09e Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 24 Jan 2026 06:53:33 +0000 Subject: [PATCH 074/127] bot(parsers): update c_sharp, desktop, dtd, editorconfig, fennel, fortran, hcl, javadoc, just, lalrpop, lua, markdown, markdown_inline, meson, mlir, rescript, rifleconf, sql, swift, terraform, tlaplus, vim, xml, xresources --- lua/nvim-treesitter/parsers.lua | 48 ++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 5ea9c8f69..65ffba196 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -174,7 +174,7 @@ return { }, c_sharp = { install_info = { - revision = '485f0bae0274ac9114797fc10db6f7034e4086e3', + revision = 'f05a2ca99d329de2e6c32f26a21c6169b2bfcbb7', url = 'https://github.com/tree-sitter/tree-sitter-c-sharp', }, maintainers = { '@amaanq' }, @@ -346,7 +346,7 @@ return { }, desktop = { install_info = { - revision = 'f9cf7575dd35ee3f0964efd850f5547023f8b3c7', + revision = '137292ae28e05011dbc7c5c383e2b25db1cf77c9', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -419,7 +419,7 @@ return { dtd = { install_info = { location = 'dtd', - revision = '863dbc381f44f6c136a399e684383b977bb2beaa', + revision = '5000ae8f22d11fbe93939b05c1e37cf21117162d', url = 'https://github.com/tree-sitter-grammars/tree-sitter-xml', }, maintainers = { '@ObserverOfTime' }, @@ -449,7 +449,7 @@ return { }, editorconfig = { install_info = { - revision = '1c07dcd050e98eaaa9aa628599dda0406821899a', + revision = '851f2c2483239ce62f919bf3408ccd20dc0b5c01', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -544,7 +544,7 @@ return { }, fennel = { install_info = { - revision = 'fd4a24e349bcbac8a03a5a00d0dfa207baf53ca5', + revision = '3f0f6b24d599e92460b969aabc4f4c5a914d15a0', url = 'https://github.com/alexmozaidze/tree-sitter-fennel', }, maintainers = { '@alexmozaidze' }, @@ -592,7 +592,7 @@ return { }, fortran = { install_info = { - revision = '589151aab08fdd7404678330e8abacf9b78bb595', + revision = '43cd127cd41ff6e57b3ececb3cc283c5af4796e7', url = 'https://github.com/stadelmanma/tree-sitter-fortran', }, maintainers = { '@amaanq' }, @@ -897,7 +897,7 @@ return { }, hcl = { install_info = { - revision = 'fad991865fee927dd1de5e172fb3f08ac674d914', + revision = '64ad62785d442eb4d45df3a1764962dafd5bc98b', url = 'https://github.com/tree-sitter-grammars/tree-sitter-hcl', }, maintainers = { '@MichaHoffmann' }, @@ -1066,7 +1066,7 @@ return { }, javadoc = { install_info = { - revision = '60bfacbc38a4d7902915ddf5338d0035274226d5', + revision = '141525e73c9ad2fe7df8861047d4068ddbb6c337', url = 'https://github.com/rmuir/tree-sitter-javadoc', }, maintainers = { '@rmuir' }, @@ -1157,7 +1157,7 @@ return { }, just = { install_info = { - revision = 'bb0c898a80644de438e6efe5d88d30bf092935cd', + revision = '7333f8c150aaac5bb46decc2d225a2d4cde8c51e', url = 'https://github.com/IndianBoy42/tree-sitter-just', }, maintainers = { '@Hubro' }, @@ -1229,7 +1229,7 @@ return { }, lalrpop = { install_info = { - revision = '8d38e9755c05d37df8a24dadb0fc64f6588ac188', + revision = '27b0f7bb55b4cabd8f01a933d9ee6a49dbfc2192', url = 'https://github.com/traxys/tree-sitter-lalrpop', }, maintainers = { '@traxys' }, @@ -1294,7 +1294,7 @@ return { }, lua = { install_info = { - revision = 'de08dfd9640604763558530d2ce703cbe6a16bb6', + revision = 'e40f5b6e6df9c2d1d6d664ff5d346a75d71ee6b2', url = 'https://github.com/tree-sitter-grammars/tree-sitter-lua', }, maintainers = { '@muniftanjim' }, @@ -1345,7 +1345,7 @@ return { markdown = { install_info = { location = 'tree-sitter-markdown', - revision = 'aca7767daa8bbe3daddafc312c34be88383c828b', + revision = 'da063e1ba4303ff08781eb440cc9a7bd41e55dd8', url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown', }, maintainers = { '@MDeiml' }, @@ -1356,7 +1356,7 @@ return { markdown_inline = { install_info = { location = 'tree-sitter-markdown-inline', - revision = 'aca7767daa8bbe3daddafc312c34be88383c828b', + revision = 'da063e1ba4303ff08781eb440cc9a7bd41e55dd8', url = 'https://github.com/tree-sitter-grammars/tree-sitter-markdown', }, maintainers = { '@MDeiml' }, @@ -1388,7 +1388,7 @@ return { }, meson = { install_info = { - revision = '64ecb49f15417ee08037ddbcf29709dbabb67a8a', + revision = 'c84f3540624b81fc44067030afce2ff78d6ede05', url = 'https://github.com/tree-sitter-grammars/tree-sitter-meson', }, maintainers = { '@Decodetalkers' }, @@ -1397,7 +1397,7 @@ return { mlir = { install_info = { generate = true, - revision = 'c457b68dd485c6bcbd82acc642ead9340f37fa77', + revision = '4ab28ecdacef343af56c09b7981580503e49fadb', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1900,7 +1900,7 @@ return { }, rescript = { install_info = { - revision = '4abea6f22b180cd5a82b55941a9c42c1d281c30f', + revision = '5938ae1578aa559b4fa903f7cabc31da14f71c84', url = 'https://github.com/rescript-lang/tree-sitter-rescript', }, maintainers = { '@ribru17' }, @@ -1908,7 +1908,7 @@ return { }, rifleconf = { install_info = { - revision = 'fe10eab6cacff239ec61f4456e793bed15703aaf', + revision = '6389ef0fc0d48f0397ec233109c074a0cb685e36', url = 'https://github.com/purarue/tree-sitter-rifleconf', }, maintainers = { '@purarue' }, @@ -2139,7 +2139,7 @@ return { sql = { install_info = { branch = 'gh-pages', - revision = '5129061608da71146c813e13c32a54f4b13645c8', + revision = '86e3d03837d282544439620eb74d224586074b8b', url = 'https://github.com/derekstride/tree-sitter-sql', }, maintainers = { '@derekstride' }, @@ -2230,7 +2230,7 @@ return { swift = { install_info = { generate = true, - revision = '237e5dc79f041ca775b1742e36ba18f15fcece83', + revision = 'c7287392d610ca9d7c80f9edd2c6ef8f518b377b', url = 'https://github.com/alex-pinkus/tree-sitter-swift', }, maintainers = { '@alex-pinkus' }, @@ -2320,7 +2320,7 @@ return { terraform = { install_info = { location = 'dialects/terraform', - revision = 'fad991865fee927dd1de5e172fb3f08ac674d914', + revision = '64ad62785d442eb4d45df3a1764962dafd5bc98b', url = 'https://github.com/MichaHoffmann/tree-sitter-hcl', }, maintainers = { '@MichaHoffmann' }, @@ -2353,7 +2353,7 @@ return { }, tlaplus = { install_info = { - revision = '2d831940c782850f64dabf5b7b17e9e51f7f0ebb', + revision = '8d749f9a598b47b7110c7340006c8eb8a9552566', url = 'https://github.com/tlaplus-community/tree-sitter-tlaplus', }, maintainers = { '@ahelwer', '@susliko' }, @@ -2536,7 +2536,7 @@ return { }, vim = { install_info = { - revision = '78866caaacf123f4d9d227fe1ab521cc62167a88', + revision = '1cd0a0892b389bd314a9bd09545160e5ee3c9137', url = 'https://github.com/tree-sitter-grammars/tree-sitter-vim', }, maintainers = { '@clason' }, @@ -2619,7 +2619,7 @@ return { xml = { install_info = { location = 'xml', - revision = '863dbc381f44f6c136a399e684383b977bb2beaa', + revision = '5000ae8f22d11fbe93939b05c1e37cf21117162d', url = 'https://github.com/tree-sitter-grammars/tree-sitter-xml', }, maintainers = { '@ObserverOfTime' }, @@ -2628,7 +2628,7 @@ return { }, xresources = { install_info = { - revision = 'c08cb31b8a3a8c37cc8a98ff251790994bbfb25e', + revision = 'a81f1ea4478d03c223ef7eace535a36220bddd8c', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, From 275b9fe801d56d5fea6d34f5bfea8bb24887b805 Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 24 Jan 2026 06:53:19 +0000 Subject: [PATCH 075/127] bot(parsers): update zsh --- lua/nvim-treesitter/parsers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 65ffba196..556bcdf8d 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -2692,7 +2692,7 @@ return { }, zsh = { install_info = { - revision = 'v0.52.1', + revision = 'v0.53.0', url = 'https://github.com/georgeharker/tree-sitter-zsh', }, maintainers = { '@georgeharker' }, From 67b3ce05295bb7fb6548de29ff651e48a59d2194 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 24 Jan 2026 16:21:10 -0500 Subject: [PATCH 076/127] fix(glimmer) update injections --- runtime/queries/glimmer/injections.scm | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/runtime/queries/glimmer/injections.scm b/runtime/queries/glimmer/injections.scm index 30b438682..9efa71f5e 100644 --- a/runtime/queries/glimmer/injections.scm +++ b/runtime/queries/glimmer/injections.scm @@ -3,19 +3,12 @@ (#set! injection.language "comment")) ;