From 5465196ba8ca9c566fd1717cc0bd6414c10152ad Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 29 Jan 2026 10:17:04 +0100 Subject: [PATCH 1/7] fix(health): update required tree-sitter version --- lua/nvim-treesitter/health.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-treesitter/health.lua b/lua/nvim-treesitter/health.lua index 08ec42bb7..b81483e73 100644 --- a/lua/nvim-treesitter/health.lua +++ b/lua/nvim-treesitter/health.lua @@ -7,7 +7,7 @@ local health = vim.health local M = {} local NVIM_TREESITTER_MINIMUM_ABI = 13 -local TREE_SITTER_MIN_VER = { 0, 25, 0 } +local TREE_SITTER_MIN_VER = { 0, 26, 1 } ---@param name string ---@return table? From cc12e37e5bdc5467c9a06ab9b0887a97758f567f Mon Sep 17 00:00:00 2001 From: stefan Date: Wed, 28 Jan 2026 15:55:38 -0800 Subject: [PATCH 2/7] fix(nix): make all bash injections combined --- runtime/queries/nix/injections.scm | 12 ++++++++---- tests/query/injections/nix/test-nix-injections.nix | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/runtime/queries/nix/injections.scm b/runtime/queries/nix/injections.scm index 718a9c1c5..c1593b91f 100644 --- a/runtime/queries/nix/injections.scm +++ b/runtime/queries/nix/injections.scm @@ -48,7 +48,8 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#lua-match? @_path "^%a+Phase$")) + (#lua-match? @_path "^%a+Phase$") + (#set! injection.combined)) (binding attrpath: (attrpath @@ -61,7 +62,8 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#lua-match? @_path "^pre%a+$")) + (#lua-match? @_path "^pre%a+$") + (#set! injection.combined)) (binding attrpath: (attrpath @@ -74,7 +76,8 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#lua-match? @_path "^post%a+$")) + (#lua-match? @_path "^post%a+$") + (#set! injection.combined)) (binding attrpath: (attrpath @@ -87,7 +90,8 @@ ((string_fragment) @injection.content (#set! injection.language "bash"))) ] - (#lua-match? @_path "^script$")) + (#lua-match? @_path "^script$") + (#set! injection.combined)) (apply_expression function: (_) @_func diff --git a/tests/query/injections/nix/test-nix-injections.nix b/tests/query/injections/nix/test-nix-injections.nix index 7505398e6..f0907a901 100644 --- a/tests/query/injections/nix/test-nix-injections.nix +++ b/tests/query/injections/nix/test-nix-injections.nix @@ -9,7 +9,8 @@ in { drv1 = stdenv.mkDerivation { buildPhase = "mkdir $out"; installPhase = '' - echo "bar" > $out/foo.txt + echo "${bar}" > $out/foo.txt + echo "baz"" >> $out/foo.txt ''; }; From 04ab807f8e6d3e42f385b872fd1dc20dcef12193 Mon Sep 17 00:00:00 2001 From: Christian Buttner Date: Thu, 29 Jan 2026 11:02:30 +0100 Subject: [PATCH 3/7] feat(c3)!: update parser and highlights (#8477) Breaking: `(import_declaration (path_ident))` changed to `(import_path (path_ident))` --- lua/nvim-treesitter/parsers.lua | 2 +- runtime/queries/c3/highlights.scm | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index 344da0130..ed9aa327e 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -166,7 +166,7 @@ return { }, c3 = { install_info = { - revision = '2c04e7858d63497152d42f08d3067972618aeedc', + revision = '7ef54adef1008ce7d943c2cca03aee93a79b2252', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, diff --git a/runtime/queries/c3/highlights.scm b/runtime/queries/c3/highlights.scm index 1f02496b8..f2aa46dea 100644 --- a/runtime/queries/c3/highlights.scm +++ b/runtime/queries/c3/highlights.scm @@ -106,6 +106,7 @@ "$if" "$include" "$is_const" + "$kindof" "$nameof" "$offsetof" "$qnameof" @@ -218,6 +219,8 @@ "&&&" "+++" "|||" + "???" + "+++=" ] @operator (range_expr @@ -232,6 +235,7 @@ (ternary_expr [ "?" + "???" ":" ] @keyword.conditional.ternary) @@ -268,8 +272,8 @@ (#any-of? @variable.builtin "alignof" "associated" "elements" "extnameof" "from_ordinal" "get" "inf" "is_eq" "is_ordered" "is_substruct" "len" "lookup" "lookup_field" "max" "membersof" "methodsof" "min" "nan" "inner" - "kindof" "names" "nameof" "params" "paramsof" "parentof" "qnameof" "returns" "sizeof" "tagof" - "has_tagof" "values" "typeid"))) + "kindof" "names" "nameof" "params" "paramsof" "parentof" "qnameof" "returns" "sizeof" "set" + "tagof" "has_tagof" "values" "typeid"))) ; Label [ @@ -285,7 +289,7 @@ (path_ident (ident) @module)) -(import_declaration +(import_path (path_ident (ident) @module)) @@ -298,6 +302,9 @@ (call_inline_attributes (at_ident) @attribute) +(type_suffix + (at_ident) @attribute) + (asm_block_stmt (at_ident) @attribute) From 19c729dae6e0eeb79423df0cf37780aa9a7cc3b7 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 29 Jan 2026 16:14:17 +0100 Subject: [PATCH 4/7] fix(install)!: remove gitlab codepath Gitlab tarballs have started including the commit hash, so downstream processing fails anyway. --- lua/nvim-treesitter/install.lua | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua index 1020e7da9..81fad11d2 100644 --- a/lua/nvim-treesitter/install.lua +++ b/lua/nvim-treesitter/install.lua @@ -197,17 +197,13 @@ end ---@param output_dir string ---@return string? err local function do_download(logger, url, project_name, cache_dir, revision, output_dir) - local is_gitlab = url:find('gitlab.com', 1, true) - local tmp = output_dir .. '-tmp' rmpath(tmp) a.schedule() url = url:gsub('.git$', '') - local target = is_gitlab - and string.format('%s/-/archive/%s/%s-%s.tar.gz', url, revision, project_name, revision) - or string.format('%s/archive/%s.tar.gz', url, revision) + local target = string.format('%s/archive/%s.tar.gz', url, revision) local tarball_path = fs.joinpath(cache_dir, project_name .. '.tar.gz') From ac1d0ff910f3d7c6e0452461e7fe7d12c3687971 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sat, 31 Jan 2026 11:01:43 +0100 Subject: [PATCH 5/7] fix(scripts): guard against empty reply when checking new revisions --- scripts/update-parsers.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/update-parsers.lua b/scripts/update-parsers.lua index 469865393..d3a33ad6c 100755 --- a/scripts/update-parsers.lua +++ b/scripts/update-parsers.lua @@ -64,7 +64,7 @@ for k, p in pairs(parsers) do sha = stdout[line] and vim.split(stdout[line], '\t')[1] end - if sha and info.revision ~= sha then + if sha and sha ~= '' and info.revision ~= sha then info.revision = sha updates[#updates + 1] = name end From 4967fa48b0fe7a7f92cee546c76bb4bb61bb14d5 Mon Sep 17 00:00:00 2001 From: "nvim-treesitter-bot[bot]" <157957100+nvim-treesitter-bot[bot]@users.noreply.github.com> Date: Sat, 31 Jan 2026 10:08:25 +0000 Subject: [PATCH 6/7] bot(parsers): update beancount, c3, dart, desktop, editorconfig, gap, jinja, jinja_inline, matlab, mlir, nu, pkl, swift, unison, xresources, yaml --- 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 ed9aa327e..dd2e14309 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -93,7 +93,7 @@ return { }, beancount = { install_info = { - revision = '23b21252da8b8cb0f03d1d1fc4c8f87d407e1cdf', + revision = 'd7a03a7506fbbbc4b16a9a2054ff7c2b337744b8', url = 'https://github.com/polarmutex/tree-sitter-beancount', }, maintainers = { '@polarmutex' }, @@ -166,7 +166,7 @@ return { }, c3 = { install_info = { - revision = '7ef54adef1008ce7d943c2cca03aee93a79b2252', + revision = '302fab443c2237e3b8fb3e991454db0e442af130', url = 'https://github.com/c3lang/tree-sitter-c3', }, maintainers = { '@cbuttner' }, @@ -337,7 +337,7 @@ return { }, dart = { install_info = { - revision = 'd4d8f3e337d8be23be27ffc35a0aef972343cd54', + revision = '5650b09d9fc4ef9315b361c74aa811bbdbc09458', url = 'https://github.com/UserNobody14/tree-sitter-dart', }, maintainers = { '@akinsho' }, @@ -345,7 +345,7 @@ return { }, desktop = { install_info = { - revision = '137292ae28e05011dbc7c5c383e2b25db1cf77c9', + revision = '27c713cd097f85d3024569adf34e069cade84905', url = 'https://github.com/ValdezFOmar/tree-sitter-desktop', }, maintainers = { '@ValdezFOmar' }, @@ -448,7 +448,7 @@ return { }, editorconfig = { install_info = { - revision = '851f2c2483239ce62f919bf3408ccd20dc0b5c01', + revision = 'b58de0ce2c52990c8913e39a8c14ce4a40e29a39', url = 'https://github.com/ValdezFOmar/tree-sitter-editorconfig', }, maintainers = { '@ValdezFOmar' }, @@ -624,7 +624,7 @@ return { }, gap = { install_info = { - revision = '2bac14863b76ad0ff6fd7204c50574732acd66df', + revision = 'ed2480d42281586932920527823b307bc45052b8', url = 'https://github.com/gap-system/tree-sitter-gap', }, maintainers = { '@reiniscirpons' }, @@ -1083,7 +1083,7 @@ return { jinja = { install_info = { location = 'tree-sitter-jinja', - revision = 'e589222a1ad44361bc376d5abdccd08e1fecfee5', + revision = '7bd0422c6a57aaabfee8603502d7708d0a536f5f', url = 'https://github.com/cathaysia/tree-sitter-jinja', }, maintainers = { '@cathaysia' }, @@ -1094,7 +1094,7 @@ return { jinja_inline = { install_info = { location = 'tree-sitter-jinja_inline', - revision = 'e589222a1ad44361bc376d5abdccd08e1fecfee5', + revision = '7bd0422c6a57aaabfee8603502d7708d0a536f5f', url = 'https://github.com/cathaysia/tree-sitter-jinja', }, maintainers = { '@cathaysia' }, @@ -1364,7 +1364,7 @@ return { }, matlab = { install_info = { - revision = 'f3eef66526fdae0469207d8e561fb5771eea1721', + revision = 'f29f784107722e237e188bec333d4779082a2db1', url = 'https://github.com/acristoffers/tree-sitter-matlab', }, maintainers = { '@acristoffers' }, @@ -1396,7 +1396,7 @@ return { mlir = { install_info = { generate = true, - revision = '4ab28ecdacef343af56c09b7981580503e49fadb', + revision = 'd989734f56e86c4949a4e74b39d573db8528efa0', url = 'https://github.com/artagnon/tree-sitter-mlir', }, maintainers = { '@artagnon' }, @@ -1476,7 +1476,7 @@ return { }, nu = { install_info = { - revision = '4c149627cc592560f77ead1c384e27ec85926407', + revision = 'bb3f533e5792260291945e1f329e1f0a779def6e', url = 'https://github.com/nushell/tree-sitter-nu', }, maintainers = { '@abhisheksingh0x558' }, @@ -1607,7 +1607,7 @@ return { }, pkl = { install_info = { - revision = 'd9c591b4e770934fe15c2f1b3658f35553f6cb40', + revision = '57ed643ffd6b4f12c6f829cd3268e9ad216e2c30', url = 'https://github.com/apple/tree-sitter-pkl', }, maintainers = { '@ribru17' }, @@ -2228,7 +2228,7 @@ return { swift = { install_info = { generate = true, - revision = 'c7287392d610ca9d7c80f9edd2c6ef8f518b377b', + revision = '12bacf3ee30f6c39e7cfa6ca6625cac012589236', url = 'https://github.com/alex-pinkus/tree-sitter-swift', }, maintainers = { '@alex-pinkus' }, @@ -2469,7 +2469,7 @@ return { unison = { install_info = { generate = true, - revision = '169e7f748a540ec360c0cb086b448faad012caa4', + revision = 'c09e95252b4b3f5914c33d72a48af25089737afd', url = 'https://github.com/kylegoetz/tree-sitter-unison', }, maintainers = { '@tapegram' }, @@ -2626,7 +2626,7 @@ return { }, xresources = { install_info = { - revision = 'a81f1ea4478d03c223ef7eace535a36220bddd8c', + revision = '8ec70e2171025d09146afd2cce9712affe9ff3dd', url = 'https://github.com/ValdezFOmar/tree-sitter-xresources', }, maintainers = { '@ValdezFOmar' }, @@ -2634,7 +2634,7 @@ return { }, yaml = { install_info = { - revision = '7708026449bed86239b1cd5bce6e3c34dbca6415', + revision = '4463985dfccc640f3d6991e3396a2047610cf5f8', url = 'https://github.com/tree-sitter-grammars/tree-sitter-yaml', }, maintainers = { '@amaanq' }, From 70a9fecaf5aeae70c765d4c51a8038165a91aa06 Mon Sep 17 00:00:00 2001 From: phanium <91544758+phanen@users.noreply.github.com> Date: Thu, 5 Feb 2026 10:52:53 +0800 Subject: [PATCH 7/7] fix(lua): injections in vim.{rpcrequest,rpcnotify} --- runtime/queries/lua/injections.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/queries/lua/injections.scm b/runtime/queries/lua/injections.scm index e76745f4f..8f371c9ed 100644 --- a/runtime/queries/lua/injections.scm +++ b/runtime/queries/lua/injections.scm @@ -34,10 +34,10 @@ (_) . (string - content: _ @_method) + content: (_) @_method) . (string - content: _ @injection.content))) + content: (_) @injection.content))) (#any-of? @_vimcmd_identifier "vim.rpcrequest" "vim.rpcnotify") (#eq? @_method "nvim_exec_lua") (#set! injection.language "lua"))