From f769544eedc005e1cb40ed34e91b6e9c510c97bd Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 16 Mar 2026 19:43:19 +0100 Subject: [PATCH 01/10] feat: add comment file type --- src/file_types.zig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/file_types.zig b/src/file_types.zig index 60ca3ea..a958264 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -54,6 +54,12 @@ pub const @"c-sharp" = .{ .comment = "//", }; +pub const comment = .{ + .description = "Comments", + .icon = "#", + .extensions = .{}, +}; + pub const conf = .{ .description = "Config", .color = 0x000000, From 8a3f9deb2dcadf74c5e9b085d94557ef94515db6 Mon Sep 17 00:00:00 2001 From: IDONTUSEGH Date: Thu, 5 Mar 2026 16:03:06 +0100 Subject: [PATCH 02/10] feat: add D file type --- build.zig | 2 ++ build.zig.zon | 4 ++-- src/file_types.zig | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index c51ab40..3e7d476 100644 --- a/build.zig +++ b/build.zig @@ -49,6 +49,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-c/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-cpp/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-css/queries/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/d/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-diff/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-dockerfile/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/highlights.scm"); @@ -123,6 +124,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-asm/queries/asm/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-astro/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-cpp/queries/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/d/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elm/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-fsharp/queries/injections.scm"); diff --git a/build.zig.zon b/build.zig.zon index aea837a..28cc9b9 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,8 +6,8 @@ .dependencies = .{ .tree_sitter = .{ - .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-772776d4a090b2d08b10834ab623d8d40c75a3b0/source.tar.gz", - .hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyLF0iTBSKlZFqwf9kbYT1ENCbCFYp9XoKpZUrm2v", + .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-2a69207533ccf6bed7855300bde3360dfbd2d373/source.tar.gz", + .hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyKT_6jFv0gD0WoVKfsB6o_RYzaGTceQZvJQ62bhs", }, .cbor = .{ .url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0", diff --git a/src/file_types.zig b/src/file_types.zig index a958264..bba15ba 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -111,6 +111,16 @@ pub const css = .{ .comment = "//", }; +pub const d = .{ + .description = "D", + .color = 0xF54927, + .icon = "", + .extensions = .{ "d", "di" }, + .comment = "//", + .highlights = "queries/d/highlights.scm", + .injections = "queries/d/injections.scm", +}; + pub const diff = .{ .description = "Diff", .extensions = .{ "diff", "patch", "rej" }, From 43fc008c58f305dc1679ba28f378324ffa0aec80 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 17:25:17 +0100 Subject: [PATCH 03/10] fixup: comment file type --- build.zig | 1 + src/file_types.zig | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index 3e7d476..34ebe57 100644 --- a/build.zig +++ b/build.zig @@ -115,6 +115,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy-schema/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/verilog/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/comment/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/commonlisp/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/latex/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/hcl/highlights.scm"); diff --git a/src/file_types.zig b/src/file_types.zig index bba15ba..8df3aa1 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -55,9 +55,10 @@ pub const @"c-sharp" = .{ }; pub const comment = .{ - .description = "Comments", + .description = "Comment tags", .icon = "#", .extensions = .{}, + .highlights = "nvim-treesitter/queries/comment/highlights.scm", }; pub const conf = .{ From e95f1ad04901ef5274cdf4c5c70ce3f9e5e4c09d Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 18:34:01 +0100 Subject: [PATCH 04/10] build: add version check of tree-sitter parsers --- src/ts_bin_query_gen.zig | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/ts_bin_query_gen.zig b/src/ts_bin_query_gen.zig index a618a58..b6bc168 100644 --- a/src/ts_bin_query_gen.zig +++ b/src/ts_bin_query_gen.zig @@ -33,10 +33,27 @@ pub fn main() anyerror!void { for (file_types) |file_type| { const lang = file_type.lang_fn() orelse std.debug.panic("tree-sitter parser function failed for language: {s}", .{file_type.name}); + const lang_abi = lang.getLanguageAbiVersion(); + if (lang_abi < treez.TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION) + std.debug.panic("tree-sitter language '{s}' API is too old: {d} (our MIN API:{d})", .{ + lang.getLanguageName(), + lang_abi, + treez.TREE_SITTER_MIN_COMPATIBLE_LANGUAGE_VERSION, + }); + if (lang_abi > treez.TREE_SITTER_LANGUAGE_VERSION) + std.debug.panic("tree-sitter language '{s}' API is too new: {d} (our API:{d})", .{ + lang.getLanguageName(), + lang_abi, + treez.TREE_SITTER_LANGUAGE_VERSION, + }); + try cbor.writeValue(writer, file_type.name); try cbor.writeMapHeader(writer, if (file_type.injections) |_| 3 else 2); - const highlights_in = try treez.Query.create(lang, file_type.highlights); + const highlights_in = treez.Query.create(lang, file_type.highlights) catch |e| switch (e) { + error.InvalidLanguage => std.debug.panic("tree-sitter invalid language error: {s}", .{file_type.name}), + else => |e_| return e_, + }; const ts_highlights_in: *tss.TSQuery = @ptrCast(@alignCast(highlights_in)); const highlights_cb = try tss.toCbor(ts_highlights_in, allocator); From 9cf6617fd26165c29478d0df09c5a18f39ccbe4f Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 18:34:25 +0100 Subject: [PATCH 05/10] fix: comment file type --- src/file_types.zig | 1 + 1 file changed, 1 insertion(+) diff --git a/src/file_types.zig b/src/file_types.zig index 8df3aa1..7e1b1dd 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -58,6 +58,7 @@ pub const comment = .{ .description = "Comment tags", .icon = "#", .extensions = .{}, + .comment = "#", .highlights = "nvim-treesitter/queries/comment/highlights.scm", }; From 68f0f7d26a95227d4fbc76c9d9f203231d6e8ef9 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 18:34:39 +0100 Subject: [PATCH 06/10] docs: update ts_serializer.zig comments for tree-sitter 0.26.x --- src/ts_serializer.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ts_serializer.zig b/src/ts_serializer.zig index 02c6daa..79a1a70 100644 --- a/src/ts_serializer.zig +++ b/src/ts_serializer.zig @@ -171,11 +171,12 @@ pub const QueryStep = extern struct { // is_last_child: u1, // is_pass_through: u1, // is_dead_end: u1, - // alternative_is_immediate: u1, + // is_inside_alternation: u1, // contains_captures: u1, // root_pattern_guaranteed: u1, flags8: u8, // parent_pattern_guaranteed: u1, + // is_missing: u1, flags16: u8, pub fn cborEncode(self: *const @This(), writer: *Io.Writer) !void { From b8240ffc25dbb6de47162beb6ad1bebf91845a34 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 21:37:01 +0100 Subject: [PATCH 07/10] feat: add more detail to ts_bin_query_gen errors --- src/ts_bin_query_gen.zig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ts_bin_query_gen.zig b/src/ts_bin_query_gen.zig index b6bc168..a265abe 100644 --- a/src/ts_bin_query_gen.zig +++ b/src/ts_bin_query_gen.zig @@ -50,9 +50,10 @@ pub fn main() anyerror!void { try cbor.writeValue(writer, file_type.name); try cbor.writeMapHeader(writer, if (file_type.injections) |_| 3 else 2); - const highlights_in = treez.Query.create(lang, file_type.highlights) catch |e| switch (e) { + var error_offset: u32 = 0; + const highlights_in = treez.Query.create(lang, file_type.highlights, &error_offset) catch |e| switch (e) { error.InvalidLanguage => std.debug.panic("tree-sitter invalid language error: {s}", .{file_type.name}), - else => |e_| return e_, + else => |e_| std.debug.panic("tree-sitter failed to read highlights: {s} -> {t} at pos {d}", .{ file_type.name, e_, error_offset }), }; const ts_highlights_in: *tss.TSQuery = @ptrCast(@alignCast(highlights_in)); @@ -64,7 +65,7 @@ pub fn main() anyerror!void { if (verbose) std.log.info("file_type {s} highlights {d} bytes", .{ file_type.name, highlights_cb.len }); - const errors_in = try treez.Query.create(lang, "(ERROR) @error"); + const errors_in = try treez.Query.create(lang, "(ERROR) @error", &error_offset); const ts_errors_in: *tss.TSQuery = @ptrCast(@alignCast(errors_in)); const errors_cb = try tss.toCbor(ts_errors_in, allocator); @@ -76,7 +77,10 @@ pub fn main() anyerror!void { std.log.info("file_type {s} errors {d} bytes", .{ file_type.name, errors_cb.len }); if (file_type.injections) |injections| { - const injections_in = try treez.Query.create(lang, injections); + const injections_in = treez.Query.create(lang, injections, &error_offset) catch |e| switch (e) { + error.InvalidLanguage => std.debug.panic("tree-sitter invalid language error: {s}", .{file_type.name}), + else => |e_| std.debug.panic("tree-sitter failed to read injections: {s} -> {t} at pos {d}", .{ file_type.name, e_, error_offset }), + }; const ts_injections_in: *tss.TSQuery = @ptrCast(@alignCast(injections_in)); const injections_cb = try tss.toCbor(ts_injections_in, allocator); From b56a7847d0d6dc5d9790db2c57f70a55925ff696 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 21:43:18 +0100 Subject: [PATCH 08/10] feat: big tree-sitter 0.26 update --- build.zig | 32 ++++++++++++++++++------------ src/file_types.zig | 49 ++++++++++++++++++++++++++++++++-------------- 2 files changed, 53 insertions(+), 28 deletions(-) diff --git a/build.zig b/build.zig index 34ebe57..ae8f52c 100644 --- a/build.zig +++ b/build.zig @@ -71,7 +71,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-julia/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-kdl/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-lua/queries/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-mail/queries/mail/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-mail/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-make/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown-inline/queries/highlights.scm"); @@ -93,8 +93,10 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-proto/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-python/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/queries/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-query/queries/query/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-regex/queries/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/queries/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmbash/queries/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmspec/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ruby/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rust/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ssh-config/queries/highlights.scm"); @@ -114,12 +116,13 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-zig/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ziggy/tree-sitter-ziggy-schema/queries/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/verilog/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/comment/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/commonlisp/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/latex/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/hcl/highlights.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/rst/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/systemverilog/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/comment/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/cmake/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-asm/queries/asm/injections.scm"); @@ -150,6 +153,8 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-po/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-purescript/vim_queries/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-query/queries/query/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rpmspec/rpmspec/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-rust/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-superhtml/tree-sitter-superhtml/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-swift/queries/injections.scm"); @@ -157,11 +162,12 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-uxntal/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-vim/queries/vim/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-zig/queries/injections.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/verilog/injections.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/commonlisp/injections.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/latex/injections.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/hcl/injections.scm"); - ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/queries/rst/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/systemverilog/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/injections.scm"); const syntax_mod = b.addModule("syntax", .{ .root_source_file = b.path("src/syntax.zig"), diff --git a/src/file_types.zig b/src/file_types.zig index 7e1b1dd..ad003e8 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -59,7 +59,7 @@ pub const comment = .{ .icon = "#", .extensions = .{}, .comment = "#", - .highlights = "nvim-treesitter/queries/comment/highlights.scm", + .highlights = "nvim-treesitter/runtime/queries/comment/highlights.scm", }; pub const conf = .{ @@ -232,8 +232,8 @@ pub const hcl = .{ .icon = "", .extensions = .{ "hcl", "tf", "tfvars" }, .comment = "#", - .highlights = "nvim-treesitter/queries/hcl/highlights.scm", - .injections = "nvim-treesitter/queries/hcl/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/hcl/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/hcl/injections.scm", }; pub const html = .{ @@ -261,7 +261,8 @@ pub const hurl = .{ .icon = "", .extensions = .{"hurl"}, .comment = "#", - .injections = "tree-sitter-hurl/queries/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/hurl/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/hurl/injections.scm", }; pub const java = .{ @@ -317,8 +318,8 @@ pub const latex = .{ .icon = "", .extensions = .{ "tex", "aux", "sty", "cls" }, .comment = "%", - .highlights = "nvim-treesitter/queries/latex/highlights.scm", - .injections = "nvim-treesitter/queries/latex/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/latex/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/latex/injections.scm", }; pub const commonlisp = .{ @@ -327,8 +328,8 @@ pub const commonlisp = .{ .icon = "", .extensions = .{ "lisp", "ls", "el" }, .comment = ";", - .highlights = "nvim-treesitter/queries/commonlisp/highlights.scm", - .injections = "nvim-treesitter/queries/commonlisp/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/commonlisp/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/commonlisp/injections.scm", }; pub const lua = .{ @@ -346,7 +347,6 @@ pub const mail = .{ .icon = "󰇮", .extensions = .{ "eml", "mbox" }, .comment = ">", - .highlights = "tree-sitter-mail/queries/mail/highlights.scm", .first_line_matches = FirstLineMatch{ .prefix = "From" }, }; @@ -553,20 +553,31 @@ pub const regex = .{ .comment = "#", }; +pub const rpmbash = .{ + .description = "RPM spec (bash)", + .color = 0xff0000, + .icon = "󱄛", + .extensions = .{}, + .comment = "#", + .highlights = "tree-sitter-rpmspec/rpmbash/queries/highlights.scm", +}; + pub const rpmspec = .{ .description = "RPM spec", .color = 0xff0000, .icon = "󱄛", .extensions = .{"spec"}, .comment = "#", + .highlights = "tree-sitter-rpmspec/rpmspec/queries/highlights.scm", + .injections = "tree-sitter-rpmspec/rpmspec/queries/injections.scm", }; pub const rst = .{ .description = "reStructuredText", .extensions = .{"rst"}, .comment = "..", - .highlights = "nvim-treesitter/queries/rst/highlights.scm", - .injections = "nvim-treesitter/queries/rst/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/rst/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/rst/injections.scm", }; pub const ruby = .{ @@ -586,9 +597,17 @@ pub const rust = .{ .injections = "tree-sitter-rust/queries/injections.scm", }; +pub const query = .{ + .description = "Query (tree-sitter)", + .extensions = .{"scm"}, + .comment = ";", + .highlights = "tree-sitter-query/queries/query/highlights.scm", + .injections = "tree-sitter-query/queries/query/injections.scm", +}; + pub const scheme = .{ .description = "Scheme", - .extensions = .{ "scm", "ss" }, + .extensions = .{ "scm", "ss", "scheme" }, .comment = ";", }; @@ -613,12 +632,12 @@ pub const swift = .{ .comment = "//", }; -pub const verilog = .{ +pub const systemverilog = .{ .description = "SystemVerilog", .extensions = .{ "sv", "svh", "v", "vh" }, .comment = "//", - .highlights = "nvim-treesitter/queries/verilog/highlights.scm", - .injections = "nvim-treesitter/queries/verilog/injections.scm", + .highlights = "nvim-treesitter/runtime/queries/systemverilog/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/systemverilog/injections.scm", }; pub const toml = .{ From 505427ee327e880ac261605745627ed4ff971ac7 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 22:06:27 +0100 Subject: [PATCH 09/10] feat: add llvm file type --- build.zig | 2 ++ src/file_types.zig | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/build.zig b/build.zig index ae8f52c..8e73488 100644 --- a/build.zig +++ b/build.zig @@ -120,6 +120,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/comment/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/llvm/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/highlights.scm"); @@ -165,6 +166,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/systemverilog/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/commonlisp/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/latex/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/llvm/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hcl/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/hurl/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "nvim-treesitter/runtime/queries/rst/injections.scm"); diff --git a/src/file_types.zig b/src/file_types.zig index ad003e8..e74fe16 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -332,6 +332,15 @@ pub const commonlisp = .{ .injections = "nvim-treesitter/runtime/queries/commonlisp/injections.scm", }; +pub const llvm = .{ + .description = "Llvm", + .icon = "", + .extensions = .{ "llvm", "ll" }, + .comment = ";", + .highlights = "nvim-treesitter/runtime/queries/llvm/highlights.scm", + .injections = "nvim-treesitter/runtime/queries/llvm/injections.scm", +}; + pub const lua = .{ .description = "Lua", .color = 0x02027d, From 2d2d8dd88d06e82fa58e0066373f3891edfb6dd4 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Tue, 17 Mar 2026 22:38:44 +0100 Subject: [PATCH 10/10] feat: update tree-sitter to 0.26 --- build.zig.zon | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index 28cc9b9..0ac1327 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -6,8 +6,8 @@ .dependencies = .{ .tree_sitter = .{ - .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-2a69207533ccf6bed7855300bde3360dfbd2d373/source.tar.gz", - .hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyKT_6jFv0gD0WoVKfsB6o_RYzaGTceQZvJQ62bhs", + .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-4f6c39ab6e313122b43957bc555377318bfa51f0/source.tar.gz", + .hash = "tree_sitter-0.26.7-z0LhyEjBnzDRrCtuKtQrrkdtSIO5v8dE8ildxwOrWcGt", }, .cbor = .{ .url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0",