diff --git a/build.zig b/build.zig index b67031e..c51ab40 100644 --- a/build.zig +++ b/build.zig @@ -2,6 +2,7 @@ const std = @import("std"); pub fn build(b: *std.Build) void { const use_tree_sitter = b.option(bool, "use_tree_sitter", "Enable tree-sitter (default: yes)") orelse true; + const use_llvm = b.option(bool, "use_llvm", "Enable llvm backend (default: none)"); const options = b.addOptions(); options.addOption(bool, "use_tree_sitter", use_tree_sitter); const options_mod = options.createModule(); @@ -29,6 +30,10 @@ pub fn build(b: *std.Build) void { .optimize = .Debug, }), }); + if (use_llvm) |value| { + ts_bin_query_gen.use_llvm = value; + ts_bin_query_gen.use_lld = value; + } ts_bin_query_gen.linkLibC(); ts_bin_query_gen.root_module.addImport("cbor", cbor_dep.module("cbor")); ts_bin_query_gen.root_module.addImport("treez", tree_sitter_host_dep.module("treez")); @@ -36,6 +41,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "queries/cmake/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-agda/queries/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-asm/queries/asm/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-astro/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-awk/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-bash/queries/highlights.scm"); @@ -74,6 +80,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ninja/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-nix/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-nu/queries/nu/highlights.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-objc/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-ocaml/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-odin/queries/highlights.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-openscad/queries/highlights.scm"); @@ -113,6 +120,7 @@ pub fn build(b: *std.Build) void { 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, "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-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-elixir/queries/injections.scm"); @@ -131,6 +139,7 @@ pub fn build(b: *std.Build) void { ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-nickel/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-nix/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-nu/queries/nu/injections.scm"); + ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-objc/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-odin/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-openscad/queries/injections.scm"); ts_queryfile(b, tree_sitter_dep, ts_bin_query_gen, "tree-sitter-perl/queries/injections.scm"); diff --git a/build.zig.zon b/build.zig.zon index 7bb39ac..aea837a 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,13 +1,13 @@ .{ .name = .flow_syntax, - .version = "0.6.0", + .version = "0.7.2", .fingerprint = 0x3ba2584ea1cec85f, .minimum_zig_version = "0.15.2", .dependencies = .{ .tree_sitter = .{ - .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-6e2827ee231e220467bf04d2a2746faff5cb204a/source.tar.gz", - .hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyGeG1y67PeOltaplVkxRNT2jMMexQhbUlrh0vdxM", + .url = "https://github.com/neurocyte/tree-sitter/releases/download/master-772776d4a090b2d08b10834ab623d8d40c75a3b0/source.tar.gz", + .hash = "tree_sitter-0.22.4-150-g7e3f5726-z0LhyLF0iTBSKlZFqwf9kbYT1ENCbCFYp9XoKpZUrm2v", }, .cbor = .{ .url = "git+https://github.com/neurocyte/cbor?ref=master#7d2eeb68c8a2fb3f4d6baad6cc04c521b92974c0", diff --git a/src/QueryCache.zig b/src/QueryCache.zig index 7b011d5..24f6436 100644 --- a/src/QueryCache.zig +++ b/src/QueryCache.zig @@ -190,6 +190,6 @@ fn deserialize_query(query_bin: []const u8, language: ?*const treez.Language, al var ts_query_out, const arena = try tss.fromCbor(query_bin, allocator); ts_query_out.language = @intFromPtr(language); - const query_out: *Query = @alignCast(@ptrCast(ts_query_out)); + const query_out: *Query = @ptrCast(@alignCast(ts_query_out)); return .{ query_out, arena }; } diff --git a/src/file_types.zig b/src/file_types.zig index 8bd7055..60ca3ea 100644 --- a/src/file_types.zig +++ b/src/file_types.zig @@ -7,6 +7,15 @@ pub const agda = .{ .comment = "--", }; +pub const @"asm" = .{ + .description = "Assembly (asm)", + .icon = "", + .extensions = .{ "s", "asm", "assembly" }, + .comment = "#", + .highlights = "tree-sitter-asm/queries/asm/highlights.scm", + .injections = "tree-sitter-asm/queries/asm/injections.scm", +}; + pub const astro = .{ .description = "Astro", .icon = "", @@ -17,7 +26,7 @@ pub const astro = .{ pub const awk = .{ .description = "Awk", .icon = "", - .extensions = .{"awk", "gawk"}, + .extensions = .{ "awk", "gawk" }, .comment = "#", }; @@ -131,7 +140,7 @@ pub const elm = .{ .description = "Elm", .color = 0x0e76ad, .icon = "", - .extensions = .{ "elm" }, + .extensions = .{"elm"}, .comment = "--", .injections = "tree-sitter-elm/queries/injections.scm", }; @@ -254,6 +263,14 @@ pub const javascript = .{ .injections = "tree-sitter-javascript/queries/injections.scm", }; +pub const jsdoc = .{ + .description = "JSDoc", + .color = 0xf0db4f, + .icon = "󰌞", + .extensions = .{}, + .comment = "//", +}; + pub const json = .{ .description = "JSON", .extensions = .{"json"}, @@ -325,7 +342,7 @@ pub const markdown = .{ .description = "Markdown", .color = 0x000000, .icon = "󰍔", - .extensions = .{"md", "smd"}, + .extensions = .{ "md", "smd" }, .comment = "