Compare commits

...

10 commits

5 changed files with 111 additions and 32 deletions

View file

@ -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-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-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, "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-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-dockerfile/queries/highlights.scm");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-elixir/queries/highlights.scm");
@ -70,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-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-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-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-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/queries/highlights.scm");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown-inline/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-markdown/tree-sitter-markdown-inline/queries/highlights.scm");
@ -92,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-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-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-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-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-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-rust/queries/highlights.scm");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ssh-config/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ssh-config/queries/highlights.scm");
@ -113,16 +116,20 @@ 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-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/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, "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/runtime/queries/systemverilog/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/runtime/queries/comment/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/runtime/queries/commonlisp/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/runtime/queries/latex/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/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");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/cmake/injections.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"); 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-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, "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-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-elm/queries/injections.scm");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-fsharp/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-fsharp/queries/injections.scm");
@ -147,6 +154,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-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/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-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-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-superhtml/tree-sitter-superhtml/queries/injections.scm");
ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-swift/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-swift/queries/injections.scm");
@ -154,11 +163,13 @@ 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-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-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, "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/runtime/queries/systemverilog/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/runtime/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/runtime/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/runtime/queries/llvm/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/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", .{ const syntax_mod = b.addModule("syntax", .{
.root_source_file = b.path("src/syntax.zig"), .root_source_file = b.path("src/syntax.zig"),

View file

@ -6,8 +6,8 @@
.dependencies = .{ .dependencies = .{
.tree_sitter = .{ .tree_sitter = .{
.url = "https://github.com/neurocyte/tree-sitter/releases/download/master-772776d4a090b2d08b10834ab623d8d40c75a3b0/source.tar.gz", .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-4f6c39ab6e313122b43957bc555377318bfa51f0/source.tar.gz",
.hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyLF0iTBSKlZFqwf9kbYT1ENCbCFYp9XoKpZUrm2v", .hash = "tree_sitter-0.26.7-z0LhyEjBnzDRrCtuKtQrrkdtSIO5v8dE8ildxwOrWcGt",
}, },
.cbor = .{ .cbor = .{
.url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0", .url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0",

View file

@ -54,6 +54,14 @@ pub const @"c-sharp" = .{
.comment = "//", .comment = "//",
}; };
pub const comment = .{
.description = "Comment tags",
.icon = "#",
.extensions = .{},
.comment = "#",
.highlights = "nvim-treesitter/runtime/queries/comment/highlights.scm",
};
pub const conf = .{ pub const conf = .{
.description = "Config", .description = "Config",
.color = 0x000000, .color = 0x000000,
@ -105,6 +113,16 @@ pub const css = .{
.comment = "//", .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 = .{ pub const diff = .{
.description = "Diff", .description = "Diff",
.extensions = .{ "diff", "patch", "rej" }, .extensions = .{ "diff", "patch", "rej" },
@ -214,8 +232,8 @@ pub const hcl = .{
.icon = "", .icon = "",
.extensions = .{ "hcl", "tf", "tfvars" }, .extensions = .{ "hcl", "tf", "tfvars" },
.comment = "#", .comment = "#",
.highlights = "nvim-treesitter/queries/hcl/highlights.scm", .highlights = "nvim-treesitter/runtime/queries/hcl/highlights.scm",
.injections = "nvim-treesitter/queries/hcl/injections.scm", .injections = "nvim-treesitter/runtime/queries/hcl/injections.scm",
}; };
pub const html = .{ pub const html = .{
@ -243,7 +261,8 @@ pub const hurl = .{
.icon = "", .icon = "",
.extensions = .{"hurl"}, .extensions = .{"hurl"},
.comment = "#", .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 = .{ pub const java = .{
@ -299,8 +318,8 @@ pub const latex = .{
.icon = "", .icon = "",
.extensions = .{ "tex", "aux", "sty", "cls" }, .extensions = .{ "tex", "aux", "sty", "cls" },
.comment = "%", .comment = "%",
.highlights = "nvim-treesitter/queries/latex/highlights.scm", .highlights = "nvim-treesitter/runtime/queries/latex/highlights.scm",
.injections = "nvim-treesitter/queries/latex/injections.scm", .injections = "nvim-treesitter/runtime/queries/latex/injections.scm",
}; };
pub const commonlisp = .{ pub const commonlisp = .{
@ -309,8 +328,17 @@ pub const commonlisp = .{
.icon = "", .icon = "",
.extensions = .{ "lisp", "ls", "el" }, .extensions = .{ "lisp", "ls", "el" },
.comment = ";", .comment = ";",
.highlights = "nvim-treesitter/queries/commonlisp/highlights.scm", .highlights = "nvim-treesitter/runtime/queries/commonlisp/highlights.scm",
.injections = "nvim-treesitter/queries/commonlisp/injections.scm", .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 = .{ pub const lua = .{
@ -328,7 +356,6 @@ pub const mail = .{
.icon = "󰇮", .icon = "󰇮",
.extensions = .{ "eml", "mbox" }, .extensions = .{ "eml", "mbox" },
.comment = ">", .comment = ">",
.highlights = "tree-sitter-mail/queries/mail/highlights.scm",
.first_line_matches = FirstLineMatch{ .prefix = "From" }, .first_line_matches = FirstLineMatch{ .prefix = "From" },
}; };
@ -535,20 +562,31 @@ pub const regex = .{
.comment = "#", .comment = "#",
}; };
pub const rpmbash = .{
.description = "RPM spec (bash)",
.color = 0xff0000,
.icon = "󱄛",
.extensions = .{},
.comment = "#",
.highlights = "tree-sitter-rpmspec/rpmbash/queries/highlights.scm",
};
pub const rpmspec = .{ pub const rpmspec = .{
.description = "RPM spec", .description = "RPM spec",
.color = 0xff0000, .color = 0xff0000,
.icon = "󱄛", .icon = "󱄛",
.extensions = .{"spec"}, .extensions = .{"spec"},
.comment = "#", .comment = "#",
.highlights = "tree-sitter-rpmspec/rpmspec/queries/highlights.scm",
.injections = "tree-sitter-rpmspec/rpmspec/queries/injections.scm",
}; };
pub const rst = .{ pub const rst = .{
.description = "reStructuredText", .description = "reStructuredText",
.extensions = .{"rst"}, .extensions = .{"rst"},
.comment = "..", .comment = "..",
.highlights = "nvim-treesitter/queries/rst/highlights.scm", .highlights = "nvim-treesitter/runtime/queries/rst/highlights.scm",
.injections = "nvim-treesitter/queries/rst/injections.scm", .injections = "nvim-treesitter/runtime/queries/rst/injections.scm",
}; };
pub const ruby = .{ pub const ruby = .{
@ -568,9 +606,17 @@ pub const rust = .{
.injections = "tree-sitter-rust/queries/injections.scm", .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 = .{ pub const scheme = .{
.description = "Scheme", .description = "Scheme",
.extensions = .{ "scm", "ss" }, .extensions = .{ "scm", "ss", "scheme" },
.comment = ";", .comment = ";",
}; };
@ -595,12 +641,12 @@ pub const swift = .{
.comment = "//", .comment = "//",
}; };
pub const verilog = .{ pub const systemverilog = .{
.description = "SystemVerilog", .description = "SystemVerilog",
.extensions = .{ "sv", "svh", "v", "vh" }, .extensions = .{ "sv", "svh", "v", "vh" },
.comment = "//", .comment = "//",
.highlights = "nvim-treesitter/queries/verilog/highlights.scm", .highlights = "nvim-treesitter/runtime/queries/systemverilog/highlights.scm",
.injections = "nvim-treesitter/queries/verilog/injections.scm", .injections = "nvim-treesitter/runtime/queries/systemverilog/injections.scm",
}; };
pub const toml = .{ pub const toml = .{

View file

@ -33,10 +33,28 @@ pub fn main() anyerror!void {
for (file_types) |file_type| { 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 = 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.writeValue(writer, file_type.name);
try cbor.writeMapHeader(writer, if (file_type.injections) |_| 3 else 2); try cbor.writeMapHeader(writer, if (file_type.injections) |_| 3 else 2);
const highlights_in = try treez.Query.create(lang, file_type.highlights); 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_| 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)); const ts_highlights_in: *tss.TSQuery = @ptrCast(@alignCast(highlights_in));
const highlights_cb = try tss.toCbor(ts_highlights_in, allocator); const highlights_cb = try tss.toCbor(ts_highlights_in, allocator);
@ -47,7 +65,7 @@ pub fn main() anyerror!void {
if (verbose) if (verbose)
std.log.info("file_type {s} highlights {d} bytes", .{ file_type.name, highlights_cb.len }); 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 ts_errors_in: *tss.TSQuery = @ptrCast(@alignCast(errors_in));
const errors_cb = try tss.toCbor(ts_errors_in, allocator); const errors_cb = try tss.toCbor(ts_errors_in, allocator);
@ -59,7 +77,10 @@ pub fn main() anyerror!void {
std.log.info("file_type {s} errors {d} bytes", .{ file_type.name, errors_cb.len }); std.log.info("file_type {s} errors {d} bytes", .{ file_type.name, errors_cb.len });
if (file_type.injections) |injections| { 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 ts_injections_in: *tss.TSQuery = @ptrCast(@alignCast(injections_in));
const injections_cb = try tss.toCbor(ts_injections_in, allocator); const injections_cb = try tss.toCbor(ts_injections_in, allocator);

View file

@ -171,11 +171,12 @@ pub const QueryStep = extern struct {
// is_last_child: u1, // is_last_child: u1,
// is_pass_through: u1, // is_pass_through: u1,
// is_dead_end: u1, // is_dead_end: u1,
// alternative_is_immediate: u1, // is_inside_alternation: u1,
// contains_captures: u1, // contains_captures: u1,
// root_pattern_guaranteed: u1, // root_pattern_guaranteed: u1,
flags8: u8, flags8: u8,
// parent_pattern_guaranteed: u1, // parent_pattern_guaranteed: u1,
// is_missing: u1,
flags16: u8, flags16: u8,
pub fn cborEncode(self: *const @This(), writer: *Io.Writer) !void { pub fn cborEncode(self: *const @This(), writer: *Io.Writer) !void {