diff --git a/build.zig b/build.zig index aa59884..01597ae 100644 --- a/build.zig +++ b/build.zig @@ -42,6 +42,8 @@ pub fn build(b: *std.Build) void { const use_all_langs = b.option(bool, "use_all_langs", "Build and Include all language grammars") orelse true; const use_langs = b.option([]const []const u8, "use_langs", "List of langs to build (ie. `md`, `c`, `zig`)") orelse &[_][]const u8{}; + const use_third_party = b.option(bool, "third-party", "Include third-party community grammars (not from tree-sitter or tree-sitter-grammars orgs)") orelse false; + var gb = GrammarBuilder{ .b = b, .mod = mod, @@ -49,6 +51,7 @@ pub fn build(b: *std.Build) void { .optimize = optimize, .use_all_langs = use_all_langs, .use_langs = use_langs, + .use_third_party = use_third_party, }; // ======================== @@ -65,8 +68,1318 @@ pub fn build(b: *std.Build) void { const ts_lua = b.dependency("tree_sitter_lua", .{}); gb.addGrammarChecked(ts_lua, "", "lua", "tree_sitter_lua", true, "queries/highlights.scm"); + const ts_query = b.dependency("tree_sitter_query", .{}); + gb.addGrammarChecked(ts_query, "", "query", "tree_sitter_query", false, null); + + const ts_commonlisp = b.dependency("tree_sitter_commonlisp", .{}); + gb.addGrammarChecked(ts_commonlisp, "", "lisp", "tree_sitter_commonlisp", false, null); + + const ts_hcl = b.dependency("tree_sitter_hcl", .{}); + gb.addGrammarChecked(ts_hcl, "dialects/terraform", "tf", "tree_sitter_terraform", true, null); + gb.addGrammarChecked(ts_hcl, "", "hcl", "tree_sitter_hcl", true, null); + + const ts_cuda = b.dependency("tree_sitter_cuda", .{}); + gb.addGrammarChecked(ts_cuda, "", "cuda", "tree_sitter_cuda", true, "queries/highlights.scm"); + + const ts_glsl = b.dependency("tree_sitter_glsl", .{}); + gb.addGrammarChecked(ts_glsl, "", "glsl", "tree_sitter_glsl", false, "queries/highlights.scm"); + + const ts_diff = b.dependency("tree_sitter_diff", .{}); + gb.addGrammarChecked(ts_diff, "", "diff", "tree_sitter_diff", false, "queries/highlights.scm"); + + const ts_hlsl = b.dependency("tree_sitter_hlsl", .{}); + gb.addGrammarChecked(ts_hlsl, "", "hlsl", "tree_sitter_hlsl", true, null); + + const ts_ungrammar = b.dependency("tree_sitter_ungrammar", .{}); + gb.addGrammarChecked(ts_ungrammar, "", "ungrammar", "tree_sitter_ungrammar", false, "queries/highlights.scm"); + + const ts_thrift = b.dependency("tree_sitter_thrift", .{}); + gb.addGrammarChecked(ts_thrift, "", "thrift", "tree_sitter_thrift", false, "queries/highlights.scm"); + + const ts_meson = b.dependency("tree_sitter_meson", .{}); + gb.addGrammarChecked(ts_meson, "", "meson", "tree_sitter_meson", false, "queries/highlights.scm"); + + const ts_gitattributes = b.dependency("tree_sitter_gitattributes", .{}); + gb.addGrammarChecked(ts_gitattributes, "", "gitattributes", "tree_sitter_gitattributes", false, "queries/highlights.scm"); + + const ts_pymanifest = b.dependency("tree_sitter_pymanifest", .{}); + gb.addGrammarChecked(ts_pymanifest, "", "pymanifest", "tree_sitter_pymanifest", false, "queries/highlights.scm"); + + const ts_poe_filter = b.dependency("tree_sitter_poe_filter", .{}); + gb.addGrammarChecked(ts_poe_filter, "", "poe_filter", "tree_sitter_poe_filter", false, "queries/highlights.scm"); + + const ts_tcl = b.dependency("tree_sitter_tcl", .{}); + gb.addGrammarChecked(ts_tcl, "", "tcl", "tree_sitter_tcl", true, null); + + const ts_chatito = b.dependency("tree_sitter_chatito", .{}); + gb.addGrammarChecked(ts_chatito, "extensions/chatl", "chatl", "tree_sitter_chatl", false, null); + gb.addGrammarChecked(ts_chatito, "", "chatito", "tree_sitter_chatito", false, "queries/highlights.scm"); + + const ts_arduino = b.dependency("tree_sitter_arduino", .{}); + gb.addGrammarChecked(ts_arduino, "", "ino", "tree_sitter_arduino", true, "queries/highlights.scm"); + + const ts_wgsl_bevy = b.dependency("tree_sitter_wgsl_bevy", .{}); + gb.addGrammarChecked(ts_wgsl_bevy, "", "wgsl_bevy", "tree_sitter_wgsl_bevy", true, null); + + + const ts_capnp = b.dependency("tree_sitter_capnp", .{}); + gb.addGrammarChecked(ts_capnp, "", "capnp", "tree_sitter_capnp", false, "queries/highlights.scm"); + + const ts_kdl = b.dependency("tree_sitter_kdl", .{}); + gb.addGrammarChecked(ts_kdl, "", "kdl", "tree_sitter_kdl", true, "queries/highlights.scm"); + + const ts_func = b.dependency("tree_sitter_func", .{}); + gb.addGrammarChecked(ts_func, "", "func", "tree_sitter_func", false, "queries/highlights.scm"); + + const ts_move = b.dependency("tree_sitter_move", .{}); + gb.addGrammarChecked(ts_move, "", "move", "tree_sitter_move", false, null); + + const ts_go_sum = b.dependency("tree_sitter_go_sum", .{}); + gb.addGrammarChecked(ts_go_sum, "", "gosum", "tree_sitter_gosum", false, "queries/highlights.scm"); + + const ts_ron = b.dependency("tree_sitter_ron", .{}); + gb.addGrammarChecked(ts_ron, "", "ron", "tree_sitter_ron", true, "queries/highlights.scm"); + + const ts_po = b.dependency("tree_sitter_po", .{}); + gb.addGrammarChecked(ts_po, "", "po", "tree_sitter_po", false, "queries/highlights.scm"); + + const ts_starlark = b.dependency("tree_sitter_starlark", .{}); + gb.addGrammarChecked(ts_starlark, "", "starlark", "tree_sitter_starlark", true, "queries/highlights.scm"); + + const ts_yuck = b.dependency("tree_sitter_yuck", .{}); + gb.addGrammarChecked(ts_yuck, "", "yuck", "tree_sitter_yuck", true, "queries/highlights.scm"); + + const ts_smali = b.dependency("tree_sitter_smali", .{}); + gb.addGrammarChecked(ts_smali, "", "smali", "tree_sitter_smali", true, "queries/highlights.scm"); + + const ts_bicep = b.dependency("tree_sitter_bicep", .{}); + gb.addGrammarChecked(ts_bicep, "", "bicep", "tree_sitter_bicep", true, "queries/highlights.scm"); + + const ts_cpon = b.dependency("tree_sitter_cpon", .{}); + gb.addGrammarChecked(ts_cpon, "", "cpon", "tree_sitter_cpon", false, "queries/highlights.scm"); + + const ts_firrtl = b.dependency("tree_sitter_firrtl", .{}); + gb.addGrammarChecked(ts_firrtl, "", "firrtl", "tree_sitter_firrtl", true, "queries/highlights.scm"); + + const ts_luap = b.dependency("tree_sitter_luap", .{}); + gb.addGrammarChecked(ts_luap, "", "luap", "tree_sitter_luap", false, "queries/highlights.scm"); + + const ts_squirrel = b.dependency("tree_sitter_squirrel", .{}); + gb.addGrammarChecked(ts_squirrel, "", "squirrel", "tree_sitter_squirrel", true, "queries/highlights.scm"); + + const ts_uxntal = b.dependency("tree_sitter_uxntal", .{}); + gb.addGrammarChecked(ts_uxntal, "", "uxntal", "tree_sitter_uxntal", true, "queries/highlights.scm"); + + const ts_cairo = b.dependency("tree_sitter_cairo", .{}); + gb.addGrammarChecked(ts_cairo, "", "cairo", "tree_sitter_cairo", true, "queries/highlights.scm"); + + const ts_odin = b.dependency("tree_sitter_odin", .{}); + gb.addGrammarChecked(ts_odin, "", "odin", "tree_sitter_odin", true, "queries/highlights.scm"); + + const ts_hare = b.dependency("tree_sitter_hare", .{}); + gb.addGrammarChecked(ts_hare, "", "hare", "tree_sitter_hare", false, "queries/highlights.scm"); + + const ts_pony = b.dependency("tree_sitter_pony", .{}); + gb.addGrammarChecked(ts_pony, "", "pony", "tree_sitter_pony", true, "queries/highlights.scm"); + + const ts_tablegen = b.dependency("tree_sitter_tablegen", .{}); + gb.addGrammarChecked(ts_tablegen, "", "tablegen", "tree_sitter_tablegen", true, "queries/highlights.scm"); + + const ts_luadoc = b.dependency("tree_sitter_luadoc", .{}); + gb.addGrammarChecked(ts_luadoc, "", "luadoc", "tree_sitter_luadoc", false, "queries/highlights.scm"); + + const ts_kotlin = b.dependency("tree_sitter_kotlin", .{}); + gb.addGrammarChecked(ts_kotlin, "", "kt", "tree_sitter_kotlin", true, null); + + const ts_vim = b.dependency("tree_sitter_vim", .{}); + gb.addGrammarChecked(ts_vim, "", "vim", "tree_sitter_vim", true, null); + + const ts_puppet = b.dependency("tree_sitter_puppet", .{}); + gb.addGrammarChecked(ts_puppet, "", "puppet", "tree_sitter_puppet", false, "queries/highlights.scm"); + + const ts_luau = b.dependency("tree_sitter_luau", .{}); + gb.addGrammarChecked(ts_luau, "", "luau", "tree_sitter_luau", true, "queries/highlights.scm"); + + const ts_objc = b.dependency("tree_sitter_objc", .{}); + gb.addGrammarChecked(ts_objc, "", "objc", "tree_sitter_objc", false, "queries/highlights.scm"); + + const ts_ispc = b.dependency("tree_sitter_ispc", .{}); + gb.addGrammarChecked(ts_ispc, "", "ispc", "tree_sitter_ispc", false, "queries/highlights.scm"); + + const ts_pem = b.dependency("tree_sitter_pem", .{}); + gb.addGrammarChecked(ts_pem, "", "pem", "tree_sitter_pem", false, "queries/highlights.scm"); + + const ts_requirements = b.dependency("tree_sitter_requirements", .{}); + gb.addGrammarChecked(ts_requirements, "", "requirements", "tree_sitter_requirements", false, "queries/highlights.scm"); + + const ts_xml = b.dependency("tree_sitter_xml", .{}); + gb.addGrammarChecked(ts_xml, "dtd", "dtd", "tree_sitter_dtd", true, null); + gb.addGrammarChecked(ts_xml, "xml", "xml", "tree_sitter_xml", true, null); + + const ts_gpg_config = b.dependency("tree_sitter_gpg_config", .{}); + gb.addGrammarChecked(ts_gpg_config, "", "gpg", "tree_sitter_gpg", false, "queries/highlights.scm"); + + const ts_bitbake = b.dependency("tree_sitter_bitbake", .{}); + gb.addGrammarChecked(ts_bitbake, "", "bb", "tree_sitter_bitbake", true, "queries/highlights.scm"); + + const ts_csv = b.dependency("tree_sitter_csv", .{}); + gb.addGrammarChecked(ts_csv, "csv", "csv", "tree_sitter_csv", false, "queries/highlights.scm"); + gb.addGrammarChecked(ts_csv, "psv", "psv", "tree_sitter_psv", false, "queries/highlights.scm"); + gb.addGrammarChecked(ts_csv, "tsv", "tsv", "tree_sitter_tsv", false, "queries/highlights.scm"); + + const ts_hyprlang = b.dependency("tree_sitter_hyprlang", .{}); + gb.addGrammarChecked(ts_hyprlang, "", "hyprlang", "tree_sitter_hyprlang", false, null); + + const ts_printf = b.dependency("tree_sitter_printf", .{}); + gb.addGrammarChecked(ts_printf, "", "printf", "tree_sitter_printf", false, "queries/highlights.scm"); + + const ts_gstlaunch = b.dependency("tree_sitter_gstlaunch", .{}); + gb.addGrammarChecked(ts_gstlaunch, "", "gstlaunch", "tree_sitter_gstlaunch", false, null); + + const ts_re2c = b.dependency("tree_sitter_re2c", .{}); + gb.addGrammarChecked(ts_re2c, "", "re2c", "tree_sitter_re2c", false, "queries/highlights.scm"); + + const ts_doxygen = b.dependency("tree_sitter_doxygen", .{}); + gb.addGrammarChecked(ts_doxygen, "", "doxygen", "tree_sitter_doxygen", true, "queries/highlights.scm"); + + const ts_zsh = b.dependency("tree_sitter_zsh", .{}); + gb.addGrammarChecked(ts_zsh, "", "zsh", "tree_sitter_zsh", true, null); + + const ts_ssh_config = b.dependency("tree_sitter_ssh_config", .{}); + gb.addGrammarChecked(ts_ssh_config, "", "ssh_config", "tree_sitter_ssh_config", false, "queries/highlights.scm"); + + const ts_nqc = b.dependency("tree_sitter_nqc", .{}); + gb.addGrammarChecked(ts_nqc, "", "nqc", "tree_sitter_nqc", false, "queries/highlights.scm"); + + const ts_kconfig = b.dependency("tree_sitter_kconfig", .{}); + gb.addGrammarChecked(ts_kconfig, "", "kconfig", "tree_sitter_kconfig", true, "queries/highlights.scm"); + + const ts_gn = b.dependency("tree_sitter_gn", .{}); + gb.addGrammarChecked(ts_gn, "", "gn", "tree_sitter_gn", true, "queries/highlights.scm"); + + const ts_udev = b.dependency("tree_sitter_udev", .{}); + gb.addGrammarChecked(ts_udev, "", "udev", "tree_sitter_udev", false, "queries/highlights.scm"); + + const ts_xcompose = b.dependency("tree_sitter_xcompose", .{}); + gb.addGrammarChecked(ts_xcompose, "", "xcompose", "tree_sitter_xcompose", false, "queries/highlights.scm"); + + const ts_slang = b.dependency("tree_sitter_slang", .{}); + gb.addGrammarChecked(ts_slang, "", "slang", "tree_sitter_slang", true, null); + + const ts_linkerscript = b.dependency("tree_sitter_linkerscript", .{}); + gb.addGrammarChecked(ts_linkerscript, "", "linkerscript", "tree_sitter_linkerscript", false, "queries/highlights.scm"); + + const ts_properties = b.dependency("tree_sitter_properties", .{}); + gb.addGrammarChecked(ts_properties, "", "properties", "tree_sitter_properties", true, "queries/highlights.scm"); + + const ts_readline = b.dependency("tree_sitter_readline", .{}); + gb.addGrammarChecked(ts_readline, "", "readline", "tree_sitter_readline", false, "queries/highlights.scm"); + + const ts_make = b.dependency("tree_sitter_make", .{}); + gb.addGrammarChecked(ts_make, "", "Makefile", "tree_sitter_make", false, "queries/highlights.scm"); + + const ts_yaml = b.dependency("tree_sitter_yaml", .{}); + gb.addGrammarChecked(ts_yaml, "schema/core", "core_schema", "tree_sitter_core_schema", false, null); + gb.addGrammarChecked(ts_yaml, "schema/json", "json_schema", "tree_sitter_json_schema", false, null); + gb.addGrammarChecked(ts_yaml, "schema/legacy", "legacy_schema", "tree_sitter_legacy_schema", false, null); + gb.addGrammarChecked(ts_yaml, "", "yaml", "tree_sitter_yaml", true, "queries/highlights.scm"); + + const ts_toml = b.dependency("tree_sitter_toml", .{}); + gb.addGrammarChecked(ts_toml, "", "toml", "tree_sitter_toml", true, "queries/highlights.scm"); + + const ts_vue = b.dependency("tree_sitter_vue", .{}); + gb.addGrammarChecked(ts_vue, "", "vue", "tree_sitter_vue", true, null); + + const ts_qmldir = b.dependency("tree_sitter_qmldir", .{}); + gb.addGrammarChecked(ts_qmldir, "", "qmldir", "tree_sitter_qmldir", false, null); + + const ts_zig = b.dependency("fork_zig", .{}); + gb.addGrammarChecked(ts_zig, "", "zig", "tree_sitter_zig", false, null); + + + const ts_svelte = b.dependency("tree_sitter_svelte", .{}); + gb.addGrammarChecked(ts_svelte, "", "svelte", "tree_sitter_svelte", true, "queries/highlights.scm"); + + const ts_test = b.dependency("tree_sitter_test", .{}); + gb.addGrammarChecked(ts_test, "", "test", "tree_sitter_test", true, null); + + const ts_scss = b.dependency("tree_sitter_scss", .{}); + gb.addGrammarChecked(ts_scss, "", "scss", "tree_sitter_scss", true, "queries/highlights.scm"); + + const ts_cst = b.dependency("tree_sitter_cst", .{}); + gb.addGrammarChecked(ts_cst, "", "cst", "tree_sitter_cst", false, "queries/highlights.scm"); + + const ts_julia = b.dependency("tree_sitter_julia", .{}); + gb.addGrammarChecked(ts_julia, "", "jl", "tree_sitter_julia", true, "queries/highlights.scm"); + + const ts_haskell = b.dependency("tree_sitter_haskell", .{}); + gb.addGrammarChecked(ts_haskell, "", "hs", "tree_sitter_haskell", true, "queries/highlights.scm"); + + const ts_cyberchef = b.dependency("tree_sitter_cyberchef", .{}); + gb.addGrammarChecked(ts_cyberchef, "", "cyberchef", "tree_sitter_cyberchef", false, "queries/highlights.scm"); + + const ts_javascript = b.dependency("tree_sitter_javascript", .{}); + gb.addGrammarChecked(ts_javascript, "", "js", "tree_sitter_javascript", true, "queries/highlights.scm"); + + const ts_json = b.dependency("tree_sitter_json", .{}); + gb.addGrammarChecked(ts_json, "", "json", "tree_sitter_json", false, "queries/highlights.scm"); + + const ts_cpp = b.dependency("tree_sitter_cpp", .{}); + gb.addGrammarChecked(ts_cpp, "", "cpp", "tree_sitter_cpp", true, "queries/highlights.scm"); + + const ts_ruby = b.dependency("tree_sitter_ruby", .{}); + gb.addGrammarChecked(ts_ruby, "", "rb", "tree_sitter_ruby", true, "queries/highlights.scm"); + + const ts_go = b.dependency("tree_sitter_go", .{}); + gb.addGrammarChecked(ts_go, "", "go", "tree_sitter_go", false, "queries/highlights.scm"); + + const ts_c_sharp = b.dependency("tree_sitter_c_sharp", .{}); + gb.addGrammarChecked(ts_c_sharp, "", "cs", "tree_sitter_c_sharp", true, "queries/highlights.scm"); + + const ts_python = b.dependency("tree_sitter_python", .{}); + gb.addGrammarChecked(ts_python, "", "py", "tree_sitter_python", true, "queries/highlights.scm"); + + const ts_typescript = b.dependency("tree_sitter_typescript", .{}); + gb.addGrammarChecked(ts_typescript, "tsx", "tsx", "tree_sitter_tsx", true, null); + gb.addGrammarChecked(ts_typescript, "typescript", "ts", "tree_sitter_typescript", true, null); + + const ts_rust = b.dependency("tree_sitter_rust", .{}); + gb.addGrammarChecked(ts_rust, "", "rs", "tree_sitter_rust", true, "queries/highlights.scm"); + + const ts_bash = b.dependency("tree_sitter_bash", .{}); + gb.addGrammarChecked(ts_bash, "", "sh", "tree_sitter_bash", true, "queries/highlights.scm"); + + const ts_php = b.dependency("tree_sitter_php", .{}); + gb.addGrammarChecked(ts_php, "php", "php", "tree_sitter_php", true, null); + gb.addGrammarChecked(ts_php, "php_only", "php_only", "tree_sitter_php_only", true, null); + + const ts_java = b.dependency("tree_sitter_java", .{}); + gb.addGrammarChecked(ts_java, "", "java", "tree_sitter_java", false, "queries/highlights.scm"); + + const ts_scala = b.dependency("tree_sitter_scala", .{}); + gb.addGrammarChecked(ts_scala, "", "scala", "tree_sitter_scala", true, "queries/highlights.scm"); + + const ts_ocaml = b.dependency("tree_sitter_ocaml", .{}); + gb.addGrammarChecked(ts_ocaml, "grammars/interface", "mli", "tree_sitter_ocaml_interface", true, null); + gb.addGrammarChecked(ts_ocaml, "grammars/ocaml", "ml", "tree_sitter_ocaml", true, null); + gb.addGrammarChecked(ts_ocaml, "grammars/type", "mly", "tree_sitter_ocaml_type", true, null); + + const ts_agda = b.dependency("tree_sitter_agda", .{}); + gb.addGrammarChecked(ts_agda, "", "agda", "tree_sitter_agda", true, "queries/highlights.scm"); + + const ts_fluent = b.dependency("tree_sitter_fluent", .{}); + gb.addGrammarChecked(ts_fluent, "", "fluent", "tree_sitter_fluent", true, null); + + const ts_html = b.dependency("tree_sitter_html", .{}); + gb.addGrammarChecked(ts_html, "", "html", "tree_sitter_html", true, "queries/highlights.scm"); + + const ts_embedded_template = b.dependency("tree_sitter_embedded_template", .{}); + gb.addGrammarChecked(ts_embedded_template, "", "embedded_template", "tree_sitter_embedded_template", false, "queries/highlights.scm"); + + const ts_regex = b.dependency("tree_sitter_regex", .{}); + gb.addGrammarChecked(ts_regex, "", "regex", "tree_sitter_regex", false, "queries/highlights.scm"); + + const ts_css = b.dependency("tree_sitter_css", .{}); + gb.addGrammarChecked(ts_css, "", "css", "tree_sitter_css", true, "queries/highlights.scm"); + + const ts_verilog = b.dependency("tree_sitter_verilog", .{}); + gb.addGrammarChecked(ts_verilog, "", "v", "tree_sitter_verilog", false, null); + + const ts_jsdoc = b.dependency("tree_sitter_jsdoc", .{}); + gb.addGrammarChecked(ts_jsdoc, "", "jsdoc", "tree_sitter_jsdoc", true, "queries/highlights.scm"); + + const ts_ql = b.dependency("tree_sitter_ql", .{}); + gb.addGrammarChecked(ts_ql, "", "ql", "tree_sitter_ql", false, "queries/highlights.scm"); + + const ts_tsq = b.dependency("tree_sitter_tsq", .{}); + gb.addGrammarChecked(ts_tsq, "", "tsq", "tree_sitter_tsq", false, null); + + const ts_ql_dbscheme = b.dependency("tree_sitter_ql_dbscheme", .{}); + gb.addGrammarChecked(ts_ql_dbscheme, "", "ql_dbscheme", "tree_sitter_ql_dbscheme", false, null); + + // ============================ + // Third-Party Grammars (gated by --third-party flag) + // ============================ + + const tp_ada = b.dependency("tp_ada", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ada, "", "ada", "ada", false, null); + } + + const tp_angular = b.dependency("tp_angular", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_angular, "", "angular", "angular", true, null); + } + + const tp_apex = b.dependency("tp_apex", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_apex, "apex", "apex", "apex", false, null); + } + + const tp_asm = b.dependency("tp_asm", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_asm, "", "asm", "asm", false, null); + } + + const tp_astro = b.dependency("tp_astro", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_astro, "", "astro", "astro", true, null); + } + + const tp_authzed = b.dependency("tp_authzed", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_authzed, "", "authzed", "authzed", false, null); + } + + const tp_awk = b.dependency("tp_awk", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_awk, "", "awk", "awk", true, null); + } + + const tp_bass = b.dependency("tp_bass", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_bass, "", "bass", "bass", false, null); + } + + const tp_beancount = b.dependency("tp_beancount", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_beancount, "", "beancount", "beancount", true, null); + } + + const tp_bibtex = b.dependency("tp_bibtex", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_bibtex, "", "bibtex", "bibtex", false, null); + } + + const tp_blade = b.dependency("tp_blade", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_blade, "", "blade", "blade", true, null); + } + + const tp_bp = b.dependency("tp_bp", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_bp, "", "bp", "bp", false, null); + } + + const tp_brightscript = b.dependency("tp_brightscript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_brightscript, "", "brightscript", "brightscript", false, null); + } + + const tp_caddy = b.dependency("tp_caddy", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_caddy, "", "caddy", "caddy", true, null); + } + + const tp_circom = b.dependency("tp_circom", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_circom, "", "circom", "circom", false, null); + } + + const tp_clojure = b.dependency("tp_clojure", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_clojure, "", "clojure", "clojure", false, null); + } + + const tp_cmake = b.dependency("tp_cmake", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_cmake, "", "cmake", "cmake", true, null); + } + + const tp_comment = b.dependency("tp_comment", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_comment, "", "comment", "comment", true, null); + } + + const tp_cooklang = b.dependency("tp_cooklang", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_cooklang, "", "cooklang", "cooklang", true, null); + } + + const tp_corn = b.dependency("tp_corn", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_corn, "", "corn", "corn", false, null); + } + + const tp_cue = b.dependency("tp_cue", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_cue, "", "cue", "cue", true, null); + } + + const tp_cylc = b.dependency("tp_cylc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_cylc, "", "cylc", "cylc", false, null); + } + + const tp_d = b.dependency("tp_d", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_d, "", "d", "d", true, null); + } + + const tp_dart = b.dependency("tp_dart", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_dart, "", "dart", "dart", true, null); + } + + const tp_desktop = b.dependency("tp_desktop", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_desktop, "", "desktop", "desktop", false, null); + } + + const tp_dhall = b.dependency("tp_dhall", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_dhall, "", "dhall", "dhall", true, null); + } + + const tp_disassembly = b.dependency("tp_disassembly", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_disassembly, "", "disassembly", "disassembly", true, null); + } + + const tp_djot = b.dependency("tp_djot", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_djot, "", "djot", "djot", true, null); + } + + const tp_dockerfile = b.dependency("tp_dockerfile", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_dockerfile, "", "dockerfile", "dockerfile", true, null); + } + + const tp_dot = b.dependency("tp_dot", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_dot, "", "dot", "dot", false, null); + } + + const tp_earthfile = b.dependency("tp_earthfile", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_earthfile, "", "earthfile", "earthfile", true, null); + } + + const tp_ebnf = b.dependency("tp_ebnf", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ebnf, "crates/tree-sitter-ebnf", "ebnf", "ebnf", false, null); + } + + const tp_editorconfig = b.dependency("tp_editorconfig", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_editorconfig, "", "editorconfig", "editorconfig", true, null); + } + + const tp_eds = b.dependency("tp_eds", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_eds, "", "eds", "eds", false, null); + } + + const tp_eex = b.dependency("tp_eex", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_eex, "", "eex", "eex", false, null); + } + + const tp_elixir = b.dependency("tp_elixir", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_elixir, "", "elixir", "elixir", true, null); + } + + const tp_elm = b.dependency("tp_elm", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_elm, "", "elm", "elm", true, null); + } + + const tp_elsa = b.dependency("tp_elsa", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_elsa, "", "elsa", "elsa", false, null); + } + + const tp_elvish = b.dependency("tp_elvish", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_elvish, "", "elvish", "elvish", false, null); + } + + const tp_enforce = b.dependency("tp_enforce", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_enforce, "", "enforce", "enforce", false, null); + } + + const tp_erlang = b.dependency("tp_erlang", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_erlang, "", "erlang", "erlang", true, null); + } + + const tp_facility = b.dependency("tp_facility", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_facility, "", "facility", "facility", false, null); + } + + const tp_faust = b.dependency("tp_faust", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_faust, "", "faust", "faust", false, null); + } + + const tp_fennel = b.dependency("tp_fennel", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fennel, "", "fennel", "fennel", true, null); + } + + const tp_fidl = b.dependency("tp_fidl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fidl, "", "fidl", "fidl", false, null); + } + + const tp_fish = b.dependency("tp_fish", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fish, "", "fish", "fish", true, null); + } + + const tp_foam = b.dependency("tp_foam", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_foam, "", "foam", "foam", true, null); + } + + const tp_forth = b.dependency("tp_forth", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_forth, "", "forth", "forth", false, null); + } + + const tp_fortran = b.dependency("tp_fortran", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fortran, "", "fortran", "fortran", true, null); + } + + const tp_fsh = b.dependency("tp_fsh", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fsh, "", "fsh", "fsh", false, null); + } + + const tp_fsharp = b.dependency("tp_fsharp", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_fsharp, "fsharp", "fsharp", "fsharp", true, null); + } + + const tp_gap = b.dependency("tp_gap", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gap, "", "gap", "gap", true, null); + } + + const tp_gaptst = b.dependency("tp_gaptst", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gaptst, "", "gaptst", "gaptst", true, null); + } + + const tp_gdshader = b.dependency("tp_gdshader", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gdshader, "", "gdshader", "gdshader", false, null); + } + + const tp_git_config = b.dependency("tp_git_config", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_git_config, "", "git_config", "git_config", false, null); + } + + const tp_git_rebase = b.dependency("tp_git_rebase", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_git_rebase, "", "git_rebase", "git_rebase", false, null); + } + + const tp_gitattributes = b.dependency("tp_gitattributes", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gitattributes, "", "gitattributes", "gitattributes", false, null); + } + + const tp_gitcommit = b.dependency("tp_gitcommit", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gitcommit, "", "gitcommit", "gitcommit", true, null); + } + + const tp_gitignore = b.dependency("tp_gitignore", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gitignore, "", "gitignore", "gitignore", false, null); + } + + const tp_gleam = b.dependency("tp_gleam", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gleam, "", "gleam", "gleam", true, null); + } + + const tp_glimmer = b.dependency("tp_glimmer", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_glimmer, "", "glimmer", "glimmer", true, null); + } + + const tp_glimmer_javascript = b.dependency("tp_glimmer_javascript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_glimmer_javascript, "", "glimmer_javascript", "glimmer_javascript", true, null); + } + + const tp_glimmer_typescript = b.dependency("tp_glimmer_typescript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_glimmer_typescript, "", "glimmer_typescript", "glimmer_typescript", true, null); + } + + const tp_gnuplot = b.dependency("tp_gnuplot", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gnuplot, "", "gnuplot", "gnuplot", true, null); + } + + const tp_goctl = b.dependency("tp_goctl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_goctl, "", "goctl", "goctl", false, null); + } + + const tp_godot_resource = b.dependency("tp_godot_resource", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_godot_resource, "", "godot_resource", "godot_resource", true, null); + } + + const tp_gomod = b.dependency("tp_gomod", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gomod, "", "gomod", "gomod", false, null); + } + + const tp_gowork = b.dependency("tp_gowork", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gowork, "", "gowork", "gowork", false, null); + } + + const tp_graphql = b.dependency("tp_graphql", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_graphql, "", "graphql", "graphql", false, null); + } + + const tp_gren = b.dependency("tp_gren", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_gren, "", "gren", "gren", true, null); + } + + const tp_groovy = b.dependency("tp_groovy", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_groovy, "", "groovy", "groovy", false, null); + } + + const tp_hack = b.dependency("tp_hack", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_hack, "", "hack", "hack", true, null); + } + + const tp_haskell_persistent = b.dependency("tp_haskell_persistent", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_haskell_persistent, "", "haskell_persistent", "haskell_persistent", true, null); + } + + const tp_heex = b.dependency("tp_heex", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_heex, "", "heex", "heex", false, null); + } + + const tp_hjson = b.dependency("tp_hjson", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_hjson, "", "hjson", "hjson", false, null); + } + + const tp_hocon = b.dependency("tp_hocon", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_hocon, "", "hocon", "hocon", false, null); + } + + const tp_hoon = b.dependency("tp_hoon", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_hoon, "", "hoon", "hoon", true, null); + } + + const tp_htmldjango = b.dependency("tp_htmldjango", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_htmldjango, "", "htmldjango", "htmldjango", false, null); + } + + const tp_http = b.dependency("tp_http", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_http, "", "http", "http", false, null); + } + + const tp_hurl = b.dependency("tp_hurl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_hurl, "", "hurl", "hurl", false, null); + } + + const tp_idl = b.dependency("tp_idl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_idl, "", "idl", "idl", false, null); + } + + const tp_idris = b.dependency("tp_idris", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_idris, "", "idris", "idris", true, null); + } + + const tp_ini = b.dependency("tp_ini", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ini, "", "ini", "ini", false, null); + } + + const tp_inko = b.dependency("tp_inko", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_inko, "", "inko", "inko", false, null); + } + + const tp_janet_simple = b.dependency("tp_janet_simple", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_janet_simple, "", "janet_simple", "janet_simple", true, null); + } + + const tp_javadoc = b.dependency("tp_javadoc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_javadoc, "", "javadoc", "javadoc", true, null); + } + + const tp_jinja = b.dependency("tp_jinja", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_jinja, "tree-sitter-jinja", "jinja", "jinja", true, null); + } + + const tp_jinja_inline = b.dependency("tp_jinja_inline", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_jinja_inline, "tree-sitter-jinja_inline", "jinja_inline", "jinja_inline", true, null); + } + + const tp_jq = b.dependency("tp_jq", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_jq, "", "jq", "jq", false, null); + } + + const tp_json5 = b.dependency("tp_json5", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_json5, "", "json5", "json5", false, null); + } + + const tp_jsonnet = b.dependency("tp_jsonnet", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_jsonnet, "", "jsonnet", "jsonnet", true, null); + } + + const tp_just = b.dependency("tp_just", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_just, "", "just", "just", true, null); + } + + const tp_kcl = b.dependency("tp_kcl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_kcl, "", "kcl", "kcl", true, null); + } + + const tp_koto = b.dependency("tp_koto", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_koto, "", "koto", "koto", true, null); + } + + const tp_kusto = b.dependency("tp_kusto", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_kusto, "", "kusto", "kusto", false, null); + } + + const tp_lalrpop = b.dependency("tp_lalrpop", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_lalrpop, "", "lalrpop", "lalrpop", true, null); + } + + const tp_ledger = b.dependency("tp_ledger", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ledger, "", "ledger", "ledger", false, null); + } + + const tp_leo = b.dependency("tp_leo", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_leo, "", "leo", "leo", false, null); + } + + const tp_liquid = b.dependency("tp_liquid", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_liquid, "", "liquid", "liquid", true, null); + } + + const tp_liquidsoap = b.dependency("tp_liquidsoap", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_liquidsoap, "", "liquidsoap", "liquidsoap", true, null); + } + + const tp_llvm = b.dependency("tp_llvm", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_llvm, "", "llvm", "llvm", false, null); + } + + const tp_m68k = b.dependency("tp_m68k", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_m68k, "", "m68k", "m68k", false, null); + } + + const tp_menhir = b.dependency("tp_menhir", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_menhir, "", "menhir", "menhir", true, null); + } + + const tp_mermaid = b.dependency("tp_mermaid", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_mermaid, "", "mermaid", "mermaid", false, null); + } + + const tp_mlir = b.dependency("tp_mlir", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_mlir, "", "mlir", "mlir", false, null); + } + + const tp_nasm = b.dependency("tp_nasm", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nasm, "", "nasm", "nasm", false, null); + } + + const tp_nginx = b.dependency("tp_nginx", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nginx, "", "nginx", "nginx", true, null); + } + + const tp_nickel = b.dependency("tp_nickel", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nickel, "", "nickel", "nickel", true, null); + } + + const tp_nim = b.dependency("tp_nim", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nim, "", "nim", "nim", true, null); + } + + const tp_nim_format_string = b.dependency("tp_nim_format_string", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nim_format_string, "", "nim_format_string", "nim_format_string", false, null); + } + + const tp_ninja = b.dependency("tp_ninja", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ninja, "", "ninja", "ninja", false, null); + } + + const tp_nix = b.dependency("tp_nix", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nix, "", "nix", "nix", true, null); + } + + const tp_norg = b.dependency("tp_norg", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_norg, "", "norg", "norg", true, null); + } + + const tp_nu = b.dependency("tp_nu", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_nu, "", "nu", "nu", true, null); + } + + const tp_objdump = b.dependency("tp_objdump", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_objdump, "", "objdump", "objdump", true, null); + } + + const tp_ocamllex = b.dependency("tp_ocamllex", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ocamllex, "", "ocamllex", "ocamllex", true, null); + } + + const tp_pascal = b.dependency("tp_pascal", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_pascal, "", "pascal", "pascal", false, null); + } + + const tp_passwd = b.dependency("tp_passwd", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_passwd, "", "passwd", "passwd", false, null); + } + + const tp_phpdoc = b.dependency("tp_phpdoc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_phpdoc, "", "phpdoc", "phpdoc", true, null); + } + + const tp_pioasm = b.dependency("tp_pioasm", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_pioasm, "", "pioasm", "pioasm", true, null); + } + + const tp_powershell = b.dependency("tp_powershell", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_powershell, "", "powershell", "powershell", true, null); + } + + const tp_prisma = b.dependency("tp_prisma", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_prisma, "", "prisma", "prisma", false, null); + } + + const tp_problog = b.dependency("tp_problog", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_problog, "grammars/problog", "problog", "problog", false, null); + } + + const tp_prolog = b.dependency("tp_prolog", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_prolog, "grammars/prolog", "prolog", "prolog", false, null); + } + + const tp_promql = b.dependency("tp_promql", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_promql, "", "promql", "promql", false, null); + } + + const tp_proto = b.dependency("tp_proto", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_proto, "", "proto", "proto", false, null); + } + + const tp_prql = b.dependency("tp_prql", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_prql, "", "prql", "prql", false, null); + } + + const tp_pug = b.dependency("tp_pug", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_pug, "", "pug", "pug", true, null); + } + + const tp_purescript = b.dependency("tp_purescript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_purescript, "", "purescript", "purescript", true, null); + } + + const tp_qmljs = b.dependency("tp_qmljs", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_qmljs, "", "qmljs", "qmljs", true, null); + } + + const tp_r = b.dependency("tp_r", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_r, "", "r", "r", true, null); + } + + const tp_racket = b.dependency("tp_racket", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_racket, "", "racket", "racket", true, null); + } + + const tp_ralph = b.dependency("tp_ralph", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_ralph, "", "ralph", "ralph", false, null); + } + + const tp_rasi = b.dependency("tp_rasi", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rasi, "", "rasi", "rasi", false, null); + } + + const tp_razor = b.dependency("tp_razor", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_razor, "", "razor", "razor", true, null); + } + + const tp_rbs = b.dependency("tp_rbs", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rbs, "", "rbs", "rbs", false, null); + } + + const tp_rego = b.dependency("tp_rego", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rego, "", "rego", "rego", false, null); + } + + const tp_rescript = b.dependency("tp_rescript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rescript, "", "rescript", "rescript", true, null); + } + + const tp_rnoweb = b.dependency("tp_rnoweb", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rnoweb, "", "rnoweb", "rnoweb", true, null); + } + + const tp_robot = b.dependency("tp_robot", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_robot, "", "robot", "robot", false, null); + } + + const tp_robots = b.dependency("tp_robots", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_robots, "", "robots", "robots_txt", true, null); + } + + const tp_roc = b.dependency("tp_roc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_roc, "", "roc", "roc", true, null); + } + + const tp_rst = b.dependency("tp_rst", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_rst, "", "rst", "rst", true, null); + } + + const tp_scfg = b.dependency("tp_scfg", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_scfg, "", "scfg", "scfg", false, null); + } + + const tp_scheme = b.dependency("tp_scheme", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_scheme, "", "scheme", "scheme", false, null); + } + + const tp_sflog = b.dependency("tp_sflog", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sflog, "sflog", "sflog", "sflog", false, null); + } + + const tp_slim = b.dependency("tp_slim", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_slim, "", "slim", "slim", true, null); + } + + const tp_slint = b.dependency("tp_slint", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_slint, "", "slint", "slint", true, null); + } + + const tp_smithy = b.dependency("tp_smithy", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_smithy, "", "smithy", "smithy", false, null); + } + + const tp_snakemake = b.dependency("tp_snakemake", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_snakemake, "", "snakemake", "snakemake", true, null); + } + + const tp_solidity = b.dependency("tp_solidity", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_solidity, "", "solidity", "solidity", false, null); + } + + const tp_soql = b.dependency("tp_soql", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_soql, "soql", "soql", "soql", false, null); + } + + const tp_sosl = b.dependency("tp_sosl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sosl, "sosl", "sosl", "sosl", false, null); + } + + const tp_sourcepawn = b.dependency("tp_sourcepawn", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sourcepawn, "", "sourcepawn", "sourcepawn", true, null); + } + + const tp_sparql = b.dependency("tp_sparql", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sparql, "", "sparql", "sparql", false, null); + } + + const tp_strace = b.dependency("tp_strace", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_strace, "", "strace", "strace", false, null); + } + + const tp_styled = b.dependency("tp_styled", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_styled, "", "styled", "styled", true, null); + } + + const tp_supercollider = b.dependency("tp_supercollider", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_supercollider, "", "supercollider", "supercollider", true, null); + } + + const tp_surface = b.dependency("tp_surface", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_surface, "", "surface", "surface", false, null); + } + + const tp_sway = b.dependency("tp_sway", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sway, "", "sway", "sway", true, null); + } + + const tp_sxhkdrc = b.dependency("tp_sxhkdrc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_sxhkdrc, "", "sxhkdrc", "sxhkdrc", false, null); + } + + const tp_systemtap = b.dependency("tp_systemtap", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_systemtap, "", "systemtap", "systemtap", false, null); + } + + const tp_tact = b.dependency("tp_tact", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_tact, "", "tact", "tact", false, null); + } + + const tp_templ = b.dependency("tp_templ", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_templ, "", "templ", "templ", true, null); + } + + const tp_tera = b.dependency("tp_tera", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_tera, "", "tera", "tera", true, null); + } + + const tp_textproto = b.dependency("tp_textproto", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_textproto, "", "textproto", "textproto", false, null); + } + + const tp_tiger = b.dependency("tp_tiger", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_tiger, "", "tiger", "tiger", true, null); + } + + const tp_tlaplus = b.dependency("tp_tlaplus", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_tlaplus, "", "tlaplus", "tlaplus", true, null); + } + + const tp_todotxt = b.dependency("tp_todotxt", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_todotxt, "", "todotxt", "todotxt", false, null); + } + + const tp_turtle = b.dependency("tp_turtle", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_turtle, "", "turtle", "turtle", false, null); + } + + const tp_twig = b.dependency("tp_twig", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_twig, "", "twig", "twig", false, null); + } + + const tp_typespec = b.dependency("tp_typespec", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_typespec, "", "typespec", "typespec", false, null); + } + + const tp_typoscript = b.dependency("tp_typoscript", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_typoscript, "", "typoscript", "typoscript", false, null); + } + + const tp_typst = b.dependency("tp_typst", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_typst, "", "typst", "typst", true, null); + } + + const tp_unison = b.dependency("tp_unison", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_unison, "", "unison", "unison", true, null); + } + + const tp_usd = b.dependency("tp_usd", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_usd, "", "usd", "usd", false, null); + } + + const tp_v = b.dependency("tp_v", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_v, "tree_sitter_v", "v", "v", false, null); + } + + const tp_vala = b.dependency("tp_vala", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vala, "", "vala", "vala", false, null); + } + + const tp_vento = b.dependency("tp_vento", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vento, "", "vento", "vento", true, null); + } + + const tp_verilog = b.dependency("tp_verilog", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_verilog, "", "v", "systemverilog", false, null); + } + + const tp_vhdl = b.dependency("tp_vhdl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vhdl, "", "vhdl", "vhdl", true, null); + } + + const tp_vhs = b.dependency("tp_vhs", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vhs, "", "vhs", "vhs", false, null); + } + + const tp_vimdoc = b.dependency("tp_vimdoc", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vimdoc, "", "vimdoc", "vimdoc", false, null); + } + + const tp_vrl = b.dependency("tp_vrl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_vrl, "", "vrl", "vrl", false, null); + } + + const tp_wgsl = b.dependency("tp_wgsl", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_wgsl, "", "wgsl", "wgsl", true, null); + } + + const tp_wing = b.dependency("tp_wing", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_wing, "", "wing", "wing", true, null); + } + + const tp_wit = b.dependency("tp_wit", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_wit, "", "wit", "wit", true, null); + } + + const tp_xresources = b.dependency("tp_xresources", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_xresources, "", "xresources", "xresources", false, null); + } + + const tp_yang = b.dependency("tp_yang", .{}); + if (gb.use_third_party) { + gb.addGrammarChecked(tp_yang, "", "yang", "yang", false, null); + } + mod.addImport("grammars", gb.buildGrammarsModule()); mod.addImport("queries", gb.buildQueriesModule()); + + const test_step = b.step("test", "Run language tests"); + { + const test_mod = b.createModule(.{ + .root_source_file = b.path("src/tests.zig"), + .target = target, + .optimize = optimize, + .imports = &.{ + .{ .name = "eazy_zig_tree_sitter", .module = mod }, + .{ .name = "tree-sitter", .module = tree_sitter.module("tree_sitter") }, + .{ .name = "grammars", .module = gb.buildGrammarsModule() }, + .{ .name = "queries", .module = gb.buildQueriesModule() }, + }, + }); + const test_exe = b.addTest(.{ .root_module = test_mod }); + test_step.dependOn(&test_exe.step); + } + + if (use_third_party) { + const tp_test_mod = b.createModule(.{ + .root_source_file = b.path("src/third_party_tests.zig"), + .target = target, + .optimize = optimize, + .imports = &.{ + .{ .name = "eazy_zig_tree_sitter", .module = mod }, + .{ .name = "tree-sitter", .module = tree_sitter.module("tree_sitter") }, + .{ .name = "grammars", .module = gb.buildGrammarsModule() }, + }, + }); + const tp_test_exe = b.addTest(.{ .root_module = tp_test_mod }); + test_step.dependOn(&tp_test_exe.step); + } } const GrammarEntry = struct { @@ -90,6 +1403,7 @@ const GrammarBuilder = struct { queries_module: ?*std.Build.Module = null, use_all_langs: bool, use_langs: []const []const u8, + use_third_party: bool, fn addGrammarChecked( self: *GrammarBuilder, diff --git a/build.zig.zon b/build.zig.zon index 4f6f487..99023fa 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -20,6 +20,1186 @@ .url = "git+https://github.com/tree-sitter-grammars/tree-sitter-lua#10fe0054734eec83049514ea2e718b2a56acd0c9", .hash = "N-V-__8AAE5ZCQA-BW5BOioWVkGcPTjhC5x1Qv07BH3Xt3dR", }, + .tree_sitter_query = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-query/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACGcAwDom4aYIltGzFDYZqiAvQy5fkAHL36cgvaU", + }, + .tree_sitter_commonlisp = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-commonlisp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFeyXgCMPV_syYXabOKB7zHZo6QI3YvQZKNiZnY6", + }, + .tree_sitter_hcl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-hcl/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAMpBUADBC9-NqnN3d_CelBB1j9TnTFy9NJ8te-3H", + }, + .tree_sitter_cuda = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-cuda/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAG9xQQEZ_jjhIPMUbpodxL5m1EWpD8XbOfPo-H8W", + }, + .tree_sitter_glsl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-glsl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALyhWgDEbbfbZk-ZA6saDhFle0vzlrazPEZYV9sQ", + }, + .tree_sitter_diff = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-diff/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAAULEwDDBPj9cGOTHPT1iE6oZabnwo70bstgVEf_", + }, + .tree_sitter_hlsl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-hlsl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAH-eSAEnZNskQedD48KdReetmiHtL_UWMff6G1Ui", + }, + .tree_sitter_ungrammar = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-ungrammar/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAGZUAQAKvuDTVgjT0yA9DV89Is1P5CaF3m51SS6C", + }, + .tree_sitter_thrift = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-thrift/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAIIgDgCBAS3vnuAd9tZqM3gwc2VqqWbZdPtcjg-L", + }, + .tree_sitter_meson = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-meson/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACAMFgDfI7_biYX7ytCzdupCWCQ9mcqGX3l4_xdV", + }, + .tree_sitter_gitattributes = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-gitattributes/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANBEAwCwl7_Jht-oYIYyJ60LDOoJd8SmqyQ6ugVu", + }, + .tree_sitter_pymanifest = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-pymanifest/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFeOAgCV4QbN6lEGE6JNL8d17zjuIHdP3rOo1ypU", + }, + .tree_sitter_poe_filter = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-poe-filter/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKjKBwDarQIHEo0ZyTqnlZUyXeikDRW-b12d3sOM", + }, + .tree_sitter_tcl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-tcl/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAEfaCQAyRRBIaoKFNh1TExhSoICTHbf27Ezb4GCi", + }, + .tree_sitter_chatito = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-chatito/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFrUBACFXTyf2V-CU7HKUQwhZvlViL_iFt_OnfVX", + }, + .tree_sitter_arduino = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-arduino/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOEjGgEuK2Pzt1NUYexmcom8SNa0M9ISg71V_uVg", + }, + .tree_sitter_wgsl_bevy = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-wgsl-bevy/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALweCwC3dDC401S48UBvLYE4-vF6sh1nJW0o5kdt", + }, + + .tree_sitter_capnp = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-capnp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAC8FCgBdg3MhLTXp_VKpO2dTSs-kbLM5bqaCEWSs", + }, + .tree_sitter_kdl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-kdl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJX-BwDCgzqWrUZwcPgfVSdBLxdyTuBab-aOABlj", + }, + .tree_sitter_func = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-func/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEVGCwAO4BcMi0sM46JVIyRrNZuPh3mrwRZIaOWE", + }, + .tree_sitter_move = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-move/archive/refs/heads/saving.tar.gz", + .hash = "N-V-__8AAMHDCAAAtS5m6VsZhV39PP4XWd3iaORGpYnbqFet", + }, + .tree_sitter_go_sum = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-go-sum/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGsvBACLJp4wgg1AJH--mqBvFCaD1D5hdPgcelQS", + }, + .tree_sitter_ron = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-ron/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIXMAgBvKl_dqg2PcN0g_JoqgS3_D1C0satDkIWG", + }, + .tree_sitter_po = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-po/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAIK0AQDASx-DmIFOTY3k22zkDIZGdhVV35rJrgPf", + }, + .tree_sitter_starlark = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-starlark/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALNxLABsGdUJyQ_Wfim7og36NxX7paHouAeq5YgC", + }, + .tree_sitter_yuck = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-yuck/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAHJOBAAbAP8RVp2tz2UCbHje7qfTNGu04Il07n05", + }, + .tree_sitter_smali = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-smali/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANvvGwBo-nb_Z-L0Com52FiAwo7jEWi2w5u9_ywz", + }, + .tree_sitter_bicep = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-bicep/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKv3FADLd2SQk5vMUtIvzPqbcMIuYEkES0-VNa--", + }, + .tree_sitter_cpon = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-cpon/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAARHAgACvwzH-gDwbVqiQ-kI8fC5Ijc_StvajTfN", + }, + .tree_sitter_firrtl = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-firrtl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHs9FAC1zeOHlQ0h77rrfP9E3mH1c9Y8agzwvDm9", + }, + .tree_sitter_luap = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-luap/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIbiAQCdNsFiSud2Xf3SLKkOtisAQEMKEy9_HRvs", + }, + .tree_sitter_squirrel = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-squirrel/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHPNMgCWB9sNlNCZHPLiCd6Tix3s7IFi03nxB5wB", + }, + .tree_sitter_uxntal = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-uxntal/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALklBwDeH-FtxnIK0tKmQQux6LI0CJHmyniQCp15", + }, + .tree_sitter_cairo = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-cairo/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMp_JwDmWBA_LEEmcKebHO04pP7NhP0Q3WBJ1AB6", + }, + .tree_sitter_odin = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-odin/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAO176ACxtMMQ_9Q2figGWNO7rutiJFIpLrsYyWQf", + }, + .tree_sitter_hare = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-hare/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPHcEAC3akmdJD4svhfWYl-8AQxLJwxBtToXR8L3", + }, + .tree_sitter_pony = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-pony/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFbmSwChUdacq11JNsknWwCbyqbr7GH6fEHmStWR", + }, + .tree_sitter_tablegen = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-tablegen/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJuPCQAFeKgh2eb3natIYs_0mClnBn7Sxcn-zazn", + }, + .tree_sitter_luadoc = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-luadoc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAL8UCwB4z2b3GEngL0gRK6XEZ5calJiehSYeDaUM", + }, + .tree_sitter_kotlin = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-kotlin/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFIvXAGyv7ipNSxY9RluNsK0GGyaMAg6ftjq-7sM", + }, + .tree_sitter_vim = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-vim/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALIhVgBEy5yPKHSTIx57M4tIMXb9TzS0rLR-0eQD", + }, + .tree_sitter_puppet = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-puppet/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMyEDQCDY0jW6ZibpsncT92F-7yPZapc02hY2IcY", + }, + .tree_sitter_luau = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-luau/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMhoDgBwmrI8y85Ds4WX2q42n3ZBVkLWKD-oVBqA", + }, + .tree_sitter_objc = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-objc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPXbuwFG88VJzsmUg_idlQL9-IF-dSLQPQatZGto", + }, + .tree_sitter_ispc = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-ispc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAM4nggBHDdOml77ABotkRJ7T9l-a1JiAmhjQXU9o", + }, + .tree_sitter_pem = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-pem/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGB1AQDBMT-6e_-A_lW91aDB_1ffyveVQ6eOiTC2", + }, + .tree_sitter_requirements = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-requirements/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIzpBAAAyivChU9EDhpga44qoAMMdwKnJkfcRTdq", + }, + .tree_sitter_xml = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-xml/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJagCgC8YcaBL1imS74OFxpifTuFJ4TRH1YnElUV", + }, + .tree_sitter_gpg_config = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-gpg-config/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOiHDwCAWpMb8RPretolL6gG9CKYuI2oVQ8RdN0z", + }, + .tree_sitter_bitbake = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-bitbake/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANe-QQDZ9Hom8jdBh6aODfKtQMNr1APIk3lvPNbx", + }, + .tree_sitter_csv = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-csv/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAC16AwCkhKkrWvJQogmdr8-fOj9W-hPVd5m0ueil", + }, + .tree_sitter_hyprlang = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-hyprlang/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAE7TAwAfdahw5fpG35gahdFrUbvrL5z-3aPIxi1c", + }, + .tree_sitter_printf = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-printf/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAKtoAQBtI2zkatftOQdSJVjq7FliVeT0gNyOA9F8", + }, + .tree_sitter_gstlaunch = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-gstlaunch/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAE3ZAgDpG5Zld84o3BXBTSoZKtWRorgzVQXEP0u9", + }, + .tree_sitter_re2c = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-re2c/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMPqCABc9SrJCGXjnDSdxdUrxRZXdZxEffMIbR-n", + }, + .tree_sitter_doxygen = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-doxygen/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIJ9BQBrz5NMHbdsOd6_refzN7bPblIYbfBj3fW1", + }, + .tree_sitter_zsh = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-zsh/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAD50mQCQKVgB45h3yqE1HB0bV6--DDW-RzsF8J5J", + }, + .tree_sitter_ssh_config = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-ssh-config/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOL2EwCEFShEgyrjnydF5J2kAlsT7hGnYw12dvff", + }, + .tree_sitter_nqc = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-nqc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEnHRwBxWoflk8M-MMyU2RvRBu4p5ydtA3HnSaqO", + }, + .tree_sitter_kconfig = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-kconfig/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAA8fCACP7Ioq1RA9mM_PBBmKITC_QqHN57wskm4a", + }, + .tree_sitter_gn = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-gn/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEfPAwBkRHCfi1FL1SK9VyDF-j8kOdpamuXd1N81", + }, + .tree_sitter_udev = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-udev/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMe2BAA5UByJ8amuefWT7uSv5AMAz9lCG96QdfpW", + }, + .tree_sitter_xcompose = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-xcompose/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABvWAQDPtCDZtNgyTvYgI6GHWWIgUXwltC4Vbvpb", + }, + .tree_sitter_slang = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-slang/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANtrpwEfVgO_E38ckGn8NpCGZeybWQP3J8EdfMgr", + }, + .tree_sitter_linkerscript = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-linkerscript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIdiCQBxvL5Q51mlGz-T5df5DeL7QuqbzhdxZzTb", + }, + .tree_sitter_properties = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-properties/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABpNAgDts8FcFa5f_rxa9WrD0ZFGCYY7Xg8eDIed", + }, + .tree_sitter_readline = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-readline/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABSxBwDAOkHlrgrNrOk-YvEhM6Bk20Fm_P4OPLZw", + }, + .tree_sitter_make = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-make/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAMVsEgC0rug9JAAca82MW3tyFJrFdRA3ou6VEipn", + }, + .tree_sitter_yaml = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-yaml/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEkcHQB61IN4Zp5o83gmDa69AUnJUBSFIVM9lGg-", + }, + .tree_sitter_toml = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-toml/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKI7BABbJ5LWswYbVPhQVdmSYR9zKxmZ7ob_RSNI", + }, + .tree_sitter_vue = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-vue/archive/refs/heads/main.tar.gz", + .hash = "N-V-__8AAFwFBABlynAuAchSv1v6hK9WcwFll62pDdCI7OxS", + }, + .tree_sitter_qmldir = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-qmldir/archive/refs/heads/master.tar.gz", + .hash = "tree_sitter_qmldir-0.1.0-6S9bWz0sAQCl6h9WRB_NVZ3ClwEmc7l_7GruBa4wpazh", + }, + .fork_zig = .{ + .url = "git+https://github.com/gyoder/tree-sitter-zig#zig-0.16.0-update", + .hash = "tree_sitter_zig-1.1.2-JXVA8aR7XADBjv4VZbjbMe7mOmxqhPZwv9nZOSjvGRQv", + }, + + + + .tree_sitter_svelte = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-svelte/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABYgBwCGTDMVY_nARLxmx4ssF9ii3XBJX-PJjp56", + }, + .tree_sitter_test = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-test/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMAsAgBdZHv-ztfRFnRJojTPQ3_HiABU2ds3jUHU", + }, + .tree_sitter_scss = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-scss/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAN6nEgBtg36JPojMket0bfwc04lENplVR2k0zO22", + }, + .tree_sitter_cst = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-cst/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABYWAgCDSef9NabiYJVzIUtZSlsV1zodHwwtCOIO", + }, + .tree_sitter_julia = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-julia/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALwbdQEvTKYLoBp4yidyqUeme90yu_f76H0px2uy", + }, + .tree_sitter_haskell = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-haskell/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABRfQwHLEdmpQbZvewJf2Sv9wHMNpiemZplM5hxH", + }, + .tree_sitter_cyberchef = .{ + .url = "https://github.com/tree-sitter-grammars/tree-sitter-cyberchef/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAALsAQAfYC7vRJFQpnCqoph6KZBPxbucxevdtPle", + }, + .tree_sitter_javascript = .{ + .url = "https://github.com/tree-sitter/tree-sitter-javascript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANlfOQDpOAP-6YMQeJ2nQetX1OpUshQr903bnIHU", + }, + .tree_sitter_json = .{ + .url = "https://github.com/tree-sitter/tree-sitter-json/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHNaAgD6kjK3HX6lAf89chPqS5zIm0tLpvBQLOtX", + }, + .tree_sitter_cpp = .{ + .url = "https://github.com/tree-sitter/tree-sitter-cpp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMePmwGeojPhBaBC10aGwaQIOU4vg1H17IWakWs-", + }, + .tree_sitter_ruby = .{ + .url = "https://github.com/tree-sitter/tree-sitter-ruby/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAB_S8QDTw_FIWZfx_eKtcAvrPJuTP12QEMVN2LDS", + }, + .tree_sitter_go = .{ + .url = "https://github.com/tree-sitter/tree-sitter-go/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAM9cIgDttbrvbwLWFB0JPplu_2KtCWu7__79EjIT", + }, + .tree_sitter_c_sharp = .{ + .url = "https://github.com/tree-sitter/tree-sitter-c-sharp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALpc-AHb3HdtvBSOKNDXiFn8oDT8AXtsm5nk3twv", + }, + .tree_sitter_python = .{ + .url = "https://github.com/tree-sitter/tree-sitter-python/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOiqPgC9tH5tYSAYNsMWLoPiSxcmkHvIhMnezomx", + }, + .tree_sitter_typescript = .{ + .url = "https://github.com/tree-sitter/tree-sitter-typescript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJZtIQHTLStHg_0TegWiaX-N1przeeHzJp9x9b6z", + }, + .tree_sitter_rust = .{ + .url = "https://github.com/tree-sitter/tree-sitter-rust/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHJYbgAipcanYj2A6rnj9wtGzjGzANkrOsqiFAxm", + }, + .tree_sitter_bash = .{ + .url = "https://github.com/tree-sitter/tree-sitter-bash/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANjenwCy_cXlIbU8nqBzGxMlEHVokLZJYrmIXtoz", + }, + .tree_sitter_php = .{ + .url = "https://github.com/tree-sitter/tree-sitter-php/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABgQ6QCTufRtmuKAuAvX1ty8ZouX1jZ17wGFcx6I", + }, + .tree_sitter_java = .{ + .url = "https://github.com/tree-sitter/tree-sitter-java/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGrhLgBgxGFnDv-tHxMarGDRT4VTig1IIX1rcBdc", + }, + .tree_sitter_scala = .{ + .url = "https://github.com/tree-sitter/tree-sitter-scala/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJlN0gFxPUfpXqmIgQLEXkmXsrvo3caVWINVJdTb", + }, + .tree_sitter_ocaml = .{ + .url = "https://github.com/tree-sitter/tree-sitter-ocaml/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGaGxwK7r2vy00a8b4MDEm0eudoNzkzu1WM01h7Q", + }, + .tree_sitter_agda = .{ + .url = "https://github.com/tree-sitter/tree-sitter-agda/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAP7k_AB2jRW86BSWy6UAO7CBOZQa7zEQ5jgHAj81", + }, + .tree_sitter_fluent = .{ + .url = "https://github.com/tree-sitter/tree-sitter-fluent/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAONnAQDXWbfLuM19tqZy76Tv3xSQd_ZBSn450G3-", + }, + .tree_sitter_html = .{ + .url = "https://github.com/tree-sitter/tree-sitter-html/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEmOAwDdgRRlet5t1CEdpX1YMCbfhFiIbj_vsBH9", + }, + .tree_sitter_embedded_template = .{ + .url = "https://github.com/tree-sitter/tree-sitter-embedded-template/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAB52AgDoz8I9GbTi1fPWJWm489aS4SNYFz7LP0z4", + }, + .tree_sitter_regex = .{ + .url = "https://github.com/tree-sitter/tree-sitter-regex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMsOBQB796H3noBI3YTf1a93FBJZgFY3cUqyo57N", + }, + .tree_sitter_css = .{ + .url = "https://github.com/tree-sitter/tree-sitter-css/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKwvEACP3YMpMDoRyyZPOdDN1n-zdTZRWTc3uufz", + }, + .tree_sitter_verilog = .{ + .url = "https://github.com/tree-sitter/tree-sitter-verilog/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALH12AIHKRKIHorvJNEJcBqbzvMqiez_BY4zLm-T", + }, + .tree_sitter_jsdoc = .{ + .url = "https://github.com/tree-sitter/tree-sitter-jsdoc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABRdBAANMFnfpeJkGNp8mRhleFiFu5WQZIkqs8ck", + }, + .tree_sitter_ql = .{ + .url = "https://github.com/tree-sitter/tree-sitter-ql/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHFjKQC_zEKCKO3S_weDKpUAI6g46gAVaSOBa81b", + }, + .tree_sitter_tsq = .{ + .url = "https://github.com/tree-sitter/tree-sitter-tsq/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAI1yAQASc_4nxR6MGIVECL0huLOr5dM3bSeAkIx-", + }, + .tree_sitter_ql_dbscheme = .{ + .url = "https://github.com/tree-sitter/tree-sitter-ql-dbscheme/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALdNAgDuudJd20AidQSiEWgPLD7uVgbEZcdek_rk", + }, + .tp_ada = .{ + .url = "https://github.com/briot/tree-sitter-ada/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHNJMgAgTa051RgoAs48ohsOgCTsM34tTxoj80CE", + }, + .tp_angular = .{ + .url = "https://github.com/dlvandenberg/tree-sitter-angular/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFaREABupicwPGfRrCwG0CfQyO0yf8OIdDivGI5Q", + }, + .tp_apex = .{ + .url = "https://github.com/aheber/tree-sitter-sfapex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEenxQCAfb1Y3W5o1LC8wKM1ibrjEcU0EQsWquW8", + }, + .tp_asm = .{ + .url = "https://github.com/RubixDev/tree-sitter-asm/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKCJAwAZWntp4NxgGM276QdZuQpKaS4tOd1vgrLL", + }, + .tp_astro = .{ + .url = "https://github.com/virchau13/tree-sitter-astro/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJNXBABREQeOPSNuanG8SHorPxYfcVDUmc1wdjR4", + }, + .tp_authzed = .{ + .url = "https://github.com/mleonidas/tree-sitter-authzed/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJAoDgCW11xp7bvn5vs2XUPgtfgqwB50SkkpZQnb", + }, + .tp_awk = .{ + .url = "https://github.com/Beaglefoot/tree-sitter-awk/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMMhWAAK1ulAymQq_a-aTMmla9VvoWiSA4jhnTwJ", + }, + .tp_bass = .{ + .url = "https://github.com/vito/tree-sitter-bass/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADRrAgCtRPQJa44fB8MAF5bor1Wx_4b4bj0VLUCX", + }, + .tp_beancount = .{ + .url = "https://github.com/polarmutex/tree-sitter-beancount/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALOdDgCkYcokCGah3UF51PG6IX1QY_KqnJHufcGM", + }, + .tp_bibtex = .{ + .url = "https://github.com/latex-lsp/tree-sitter-bibtex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHEqAwADCNhbsLs5ElTGiBTE2TIrgibsQVBD3ZDT", + }, + .tp_blade = .{ + .url = "https://github.com/EmranMR/tree-sitter-blade/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAArEHAFqX09yPK0dmPJ0pQqRnPOjcidv-fWeOSUD", + }, + .tp_bp = .{ + .url = "https://github.com/ambroisie/tree-sitter-bp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANIiBACXSie_lyCFP8F7V6EcO_5jfk7DPn6s9epA", + }, + .tp_brightscript = .{ + .url = "https://github.com/ajdelcimmuto/tree-sitter-brightscript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABGeJgDtdqqo-upSiiBx2tzMa1x70nSvx8unhxU6", + }, + .tp_caddy = .{ + .url = "https://github.com/opa-oz/tree-sitter-caddy/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHKjBgBOhv5ScfHU-6jQn2PgXNijXFU7I1RcHuZJ", + }, + .tp_circom = .{ + .url = "https://github.com/Decurity/tree-sitter-circom/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAL5VCQBA47rnzAV31B2-GCuCAnhcJ5lpYQS6nz5h", + }, + .tp_clojure = .{ + .url = "https://github.com/sogaiu/tree-sitter-clojure/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAAnoDwDKLr63cSQ_IHEojhLIanmbGIkrZNQSUM5_", + }, + .tp_cmake = .{ + .url = "https://github.com/uyha/tree-sitter-cmake/archive/refs/heads/master.tar.gz", + .hash = "tree_sitter_cmake-0.7.4-paqo3-1zCQBB2sa_lmQ0P0lhZEh4iOoXnFoCLu-l5VgQ", + }, + .tp_comment = .{ + .url = "https://github.com/stsewd/tree-sitter-comment/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOIACAAhvUKeFMdWOOyh8hLGQVxZ2oS7Hu5GwLMZ", + }, + .tp_cooklang = .{ + .url = "https://github.com/addcninblue/tree-sitter-cooklang/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACo8AwBUfQAD9QiPVqTulxtJBYGrH3lx5ryidPP0", + }, + .tp_corn = .{ + .url = "https://github.com/jakestanger/tree-sitter-corn/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOjdAQA8dNszNnsAEG53aR2U1v49uOtXOtWpnzKa", + }, + .tp_cue = .{ + .url = "https://github.com/eonpatapon/tree-sitter-cue/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMtiIQBHSrTqEaBRbQ1cc4Zi3ryfc4Cce4HVP6Tg", + }, + .tp_cylc = .{ + .url = "https://github.com/elliotfontaine/tree-sitter-cylc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADeACABL8Asv4CbbHZ8cco9H_klk_GLCgPfe2Jb_", + }, + .tp_d = .{ + .url = "https://github.com/gdamore/tree-sitter-d/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADTkbAFZQsIC25mE5ABzP-YQJtszgbghMi4aupWN", + }, + .tp_dart = .{ + .url = "https://github.com/UserNobody14/tree-sitter-dart/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAG_4jgCuX_rG9879dJz7I2ESQ_QRr5zBKoQV1hW2", + }, + .tp_desktop = .{ + .url = "https://github.com/ValdezFOmar/tree-sitter-desktop/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPcDAgDewdQRZewIDg24mSCzS2OQaD9aaqY5mMPA", + }, + .tp_dhall = .{ + .url = "https://github.com/jbellerb/tree-sitter-dhall/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKlAJgBt2CZ08DRQUB9GUonTyQua5X6BLPUr6D7A", + }, + .tp_disassembly = .{ + .url = "https://github.com/ColinKennedy/tree-sitter-disassembly/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFSmAgDkyx9I4zpRsJ23F6JoImFeBtEd3rqG0uss", + }, + .tp_djot = .{ + .url = "https://github.com/treeman/tree-sitter-djot/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEDeOwA_FDrDbwbUC6Y-XFY2VGFWm-RaCYtP3UGx", + }, + .tp_dockerfile = .{ + .url = "https://github.com/camdencheek/tree-sitter-dockerfile/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPbFBgA_FDZHBliS5m2XqG2FM4A9nOJVQ0FecL61", + }, + .tp_dot = .{ + .url = "https://github.com/rydesun/tree-sitter-dot/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJb3AgB2I_rkXPxhxRnrCr3uWktdf9jbaBVxf6SO", + }, + .tp_earthfile = .{ + .url = "https://github.com/glehmann/tree-sitter-earthfile/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGyjPwBjhStpzupZoSQVNAR28NS-_CX9SaOYMH73", + }, + .tp_ebnf = .{ + .url = "https://github.com/RubixDev/ebnf/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADBaAwBFXLXBWKkuhg_AB_mxbWGLJm1zVb6By6oO", + }, + .tp_editorconfig = .{ + .url = "https://github.com/ValdezFOmar/tree-sitter-editorconfig/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANa6AgCp2Vg_fMh6plcxaRHXWnpVybpeKKWSGHFo", + }, + .tp_eds = .{ + .url = "https://github.com/uyha/tree-sitter-eds/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFfcAAD9o-WfzG3M77BCKeleIeyEucGhHhmkZkgO", + }, + .tp_eex = .{ + .url = "https://github.com/connorlay/tree-sitter-eex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAP7cAAD6o7inTNXmZ15wWcxsmwmOasjd38DajtA1", + }, + .tp_elixir = .{ + .url = "https://github.com/elixir-lang/tree-sitter-elixir/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHFBzADLXh_O541oJa7-c22w7ANweScZzPJBuo-v", + }, + .tp_elm = .{ + .url = "https://github.com/elm-tooling/tree-sitter-elm/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACBmJAAUzDQw6vsNC-Z0kRy8Rqr9p8ElqXycOGCx", + }, + .tp_elsa = .{ + .url = "https://github.com/glapa-grossklag/tree-sitter-elsa/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMm5AQCkJEn-GBiVm2XW22duApisZtfpZ-zD0y2E", + }, + .tp_elvish = .{ + .url = "https://github.com/elves/tree-sitter-elvish/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANc5CgDjtLm3ql1jEVtRW8lazxLhdCy0L6Vizdnl", + }, + .tp_enforce = .{ + .url = "https://github.com/simonvic/tree-sitter-enforce/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAK_pFwA1gD9ByVLPcoqu-jmtE7XE5ckIxn0TwmkT", + }, + .tp_erlang = .{ + .url = "https://github.com/WhatsApp/tree-sitter-erlang/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAAVWKgC44vrL1kvl8SLUnqNkFU4guLAaXK73RmYK", + }, + .tp_facility = .{ + .url = "https://github.com/FacilityApi/tree-sitter-facility/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMlIAwAlsl0x9N7e84W9FLR_ugAm1Cnp2mdd0CxO", + }, + .tp_faust = .{ + .url = "https://github.com/khiner/tree-sitter-faust/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHsdGwB_jMWE8-g8YNuRMF2Lu7FCMHsur8F246kK", + }, + .tp_fennel = .{ + .url = "https://github.com/alexmozaidze/tree-sitter-fennel/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAE9HOACMa18NejabSo4gTomtlLo1nXV-2BSltkd7", + }, + .tp_fidl = .{ + .url = "https://github.com/google/tree-sitter-fidl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACoYBgAYWO1mOM_K7bSN1X77XYj2QunYVtK02Jut", + }, + .tp_fish = .{ + .url = "https://github.com/ram02z/tree-sitter-fish/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANLsCQCVxEL0PSC2oD0RrzlWTr1W5Y2aXqsGHXJd", + }, + .tp_foam = .{ + .url = "https://github.com/FoamScience/tree-sitter-foam/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHIzCgDTCV6HoqAtf2K27lXuoDl7W3XWG1XudHr5", + }, + .tp_forth = .{ + .url = "https://github.com/AlexanderBrevig/tree-sitter-forth/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAANABwCYLoiiyCZX7w_sUcIR7VINJ95H5GAer4hc", + }, + .tp_fortran = .{ + .url = "https://github.com/stadelmanma/tree-sitter-fortran/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJ0zQgKKtzb0-wDQjY1pewE7RXmpAHVsKuwLT0e3", + }, + .tp_fsh = .{ + .url = "https://github.com/mgramigna/tree-sitter-fsh/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKiYDADIdSd9w7HUN3MzaWETwb8eIM8ADp8FmJ0C", + }, + .tp_fsharp = .{ + .url = "https://github.com/ionide/tree-sitter-fsharp/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOUkhQQRLQD8WWlYUgsnlkHDeXLQ09Wl7ynWLgXI", + }, + .tp_gap = .{ + .url = "https://github.com/gap-system/tree-sitter-gap/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAN-DEwAtQTLxk9q4oNMKg9eT73MOdobTzLrJzdnw", + }, + .tp_gaptst = .{ + .url = "https://github.com/gap-system/tree-sitter-gaptst/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOj4AwBMp1CMwtVWc3eciLeSU6fv4Y_reIZ5Huay", + }, + .tp_gdshader = .{ + .url = "https://github.com/GodOfAvacyn/tree-sitter-gdshader/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFP9OgrH_ntQHBHilphpUvox5IT-qW2AvQ3k_O6T", + }, + .tp_git_config = .{ + .url = "https://github.com/the-mikedavis/tree-sitter-git-config/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEeICwBVM-CzjotAytTcBBwpZXfLHQ-cSb7bzKoz", + }, + .tp_git_rebase = .{ + .url = "https://github.com/the-mikedavis/tree-sitter-git-rebase/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACcjBADDiwpsLBG-7AU4d8AUIwI8dU7WBruki9ku", + }, + .tp_gitattributes = .{ + .url = "https://github.com/ObserverOfTime/tree-sitter-gitattributes/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANBEAwCwl7_Jht-oYIYyJ60LDOoJd8SmqyQ6ugVu", + }, + .tp_gitcommit = .{ + .url = "https://github.com/gbprod/tree-sitter-gitcommit/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMwQNwB44XH7wWhWYIXNho3vCYVrymBGCFYeakJl", + }, + .tp_gitignore = .{ + .url = "https://github.com/shunsambongi/tree-sitter-gitignore/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMagAQBYAM2YREeH8IYCaf7OjaKojrC_bgw69cQQ", + }, + .tp_gleam = .{ + .url = "https://github.com/gleam-lang/tree-sitter-gleam/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPwWNgBHrvlhA8sC9jpqWchOgJFX7dKCVd_d7WjE", + }, + .tp_glimmer = .{ + .url = "https://github.com/ember-tooling/tree-sitter-glimmer/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAB68BwAJCl97OC_E97ctx2gcX1GRRhiPSlc5C46G", + }, + .tp_glimmer_javascript = .{ + .url = "https://github.com/NullVoxPopuli/tree-sitter-glimmer-javascript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGGnLAC6VNWL6KtYLZm8GQfdkClhjIynzCq-PisV", + }, + .tp_glimmer_typescript = .{ + .url = "https://github.com/NullVoxPopuli/tree-sitter-glimmer-typescript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAO7EkAAmElLmMDx2RpzOldbC79PPkmeWI97Isbij", + }, + .tp_gnuplot = .{ + .url = "https://github.com/dpezto/tree-sitter-gnuplot/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANZcmQGKUTNI87peyJr8gUdm2T5ZePvvy6R0JEIo", + }, + .tp_goctl = .{ + .url = "https://github.com/chaozwn/tree-sitter-goctl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAB88BAC6VwQfxGz6pLj0zQa6ob66Ipp59_-jfI6R", + }, + .tp_godot_resource = .{ + .url = "https://github.com/PrestonKnopp/tree-sitter-godot-resource/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMqTAgBaNkmTwcMTWvmVUnQlelUS7gWeCx_rfQqw", + }, + .tp_gomod = .{ + .url = "https://github.com/camdencheek/tree-sitter-go-mod/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIb9AgAdYSGZMYBaRk2VuR3Js5jlwIFimcTKMxMN", + }, + .tp_gowork = .{ + .url = "https://github.com/omertuc/tree-sitter-go-work/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPxsAQAnmXkncrXZZqJu9pVT5zvTRdIppclUCSjT", + }, + .tp_graphql = .{ + .url = "https://github.com/bkegley/tree-sitter-graphql/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAP-EBgA21dL3IAjEYMbw_ar3KNWb0dR4ppoAUe67", + }, + .tp_gren = .{ + .url = "https://github.com/MaeBrooks/tree-sitter-gren/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOJlFwA8KMBW1aAhQJFSTttRsEz5do48oEDjhxdv", + }, + .tp_groovy = .{ + .url = "https://github.com/murtaza64/tree-sitter-groovy/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPudZQBd2sQzyxKho1u8dSG3j1PJrarUV1nM8pl4", + }, + .tp_hack = .{ + .url = "https://github.com/slackhq/tree-sitter-hack/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAB2hswDcaymAdw6SajqoAMoNvMgJdzDHicF4mzMg", + }, + .tp_haskell_persistent = .{ + .url = "https://github.com/MercuryTechnologies/tree-sitter-haskell-persistent/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPZ9DAAAKumR6-Qk0Vo2MXEgucnF-sXZBPDIaHG0", + }, + .tp_heex = .{ + .url = "https://github.com/connorlay/tree-sitter-heex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANdtBABaAu_BwYn2F8-37doAO6jX0_KXTF25Z_vo", + }, + .tp_hjson = .{ + .url = "https://github.com/winston0410/tree-sitter-hjson/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPRXBwBB09bB3WPxG-BD0drJwyyqJAJah7WFJBlK", + }, + .tp_hocon = .{ + .url = "https://github.com/antosha417/tree-sitter-hocon/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANVCBQA23rtbdamIvYkUcBUOZ86_qVoZGtinJOTJ", + }, + .tp_hoon = .{ + .url = "https://github.com/urbit-pilled/tree-sitter-hoon/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGnF4gCOCvFMyDj1_JEYFrCRPAqvlP4Y1PNTnosz", + }, + .tp_htmldjango = .{ + .url = "https://github.com/interdependence/tree-sitter-htmldjango/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJn0BgDS_zDcIt_hAQyxwgg1qnvB_KbeTH0xSsDi", + }, + .tp_http = .{ + .url = "https://github.com/rest-nvim/tree-sitter-http/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAN76BwBDOQ8NwXZyJzl-MsioXgqJ1xBIDAYpFXaK", + }, + .tp_hurl = .{ + .url = "https://github.com/pfeiferj/tree-sitter-hurl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPhIDgBrCkPfjuprfyvAbSBztQ_Oe3J14vM27AIJ", + }, + .tp_idl = .{ + .url = "https://github.com/cathaysia/tree-sitter-idl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHz6LQD1Oj-7e_L-KFcqwVQkYzFcDgn2N27WB57y", + }, + .tp_idris = .{ + .url = "https://github.com/kayhide/tree-sitter-idris/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMlHxAAFBMj700-mvPVrQcomHegDFSXgr8U0xXXl", + }, + .tp_ini = .{ + .url = "https://github.com/justinmk/tree-sitter-ini/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFnyAQCmDa5r3XG6RDQkWCpDPENQAmtGDLZh4V8z", + }, + .tp_inko = .{ + .url = "https://github.com/inko-lang/tree-sitter-inko/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALvFLABrOJwYlch7ws7vKxbNKK8yuJPQcF-cD9EF", + }, + .tp_janet_simple = .{ + .url = "https://github.com/sogaiu/tree-sitter-janet-simple/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIJhAwAXPjM1MEtREuXZJc3xYh6LlO3csxnnBZs8", + }, + .tp_javadoc = .{ + .url = "https://github.com/rmuir/tree-sitter-javadoc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALL8CgDusopBu0T_hY58IOAf2bf1w7WVR2ZR9-kL", + }, + .tp_jinja = .{ + .url = "https://github.com/cathaysia/tree-sitter-jinja/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOQ5HwB87CkG4ZKzY6DyH7VYdxKHLXB99CjdrsOk", + }, + .tp_jinja_inline = .{ + .url = "https://github.com/cathaysia/tree-sitter-jinja/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOQ5HwB87CkG4ZKzY6DyH7VYdxKHLXB99CjdrsOk", + }, + .tp_jq = .{ + .url = "https://github.com/flurie/tree-sitter-jq/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANS4DQB58EmOYKYWjxYo8m1YnnldXOAy_CLdtSe5", + }, + .tp_json5 = .{ + .url = "https://github.com/Joakker/tree-sitter-json5/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJQKAgA2qHpD0AhHiJgqkdBAvt-JJHbwYJj8gj9H", + }, + .tp_jsonnet = .{ + .url = "https://github.com/sourcegraph/tree-sitter-jsonnet/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGJ8BgD44TodgrZzLy_bF9vy1xc4zo51cljhOwq0", + }, + .tp_just = .{ + .url = "https://github.com/IndianBoy42/tree-sitter-just/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKnPCQAnS9QCo8I1LQhiEQCLRgyPfuQQ5L7RwgJJ", + }, + .tp_kcl = .{ + .url = "https://github.com/kcl-lang/tree-sitter-kcl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAP5vagAJBJzPe13b-3Rx9baxx24p2HG6KgYJ3u-E", + }, + .tp_koto = .{ + .url = "https://github.com/koto-lang/tree-sitter-koto/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANPd9wEf_kuWPkXsCQXV_ixwUnP4OZDwrAT7CYeb", + }, + .tp_kusto = .{ + .url = "https://github.com/Willem-J-an/tree-sitter-kusto/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANe7BQCrgq9nJkdrkvGKxY7KDY073S7ZOFjmIdH5", + }, + .tp_lalrpop = .{ + .url = "https://github.com/traxys/tree-sitter-lalrpop/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAK_ZBwDgFppDtXX6RY800QoUvW2kKMjnsffomG3L", + }, + .tp_ledger = .{ + .url = "https://github.com/cbarrete/tree-sitter-ledger/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALxeCQBfyx5g7_3ZfD4rgqfBoMjQpPxmvFFwvbwB", + }, + .tp_leo = .{ + .url = "https://github.com/r001/tree-sitter-leo/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGdLPQAQyfTVjU18XoIuIzOrLEyTfP93f9XM8Qv0", + }, + .tp_liquid = .{ + .url = "https://github.com/hankthetank27/tree-sitter-liquid/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHpmFQC9gKC2F_nVPrCsNz_G5pAeYkQnMTcTkof9", + }, + .tp_liquidsoap = .{ + .url = "https://github.com/savonet/tree-sitter-liquidsoap/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGhESgAnW4af5BzMO33HNORXu8egLDthJG2jLAKH", + }, + .tp_llvm = .{ + .url = "https://github.com/benwilliamgraham/tree-sitter-llvm/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAM8RZQB-zLqgt31qohFF2HEvc2W6i0583cdfqhxV", + }, + .tp_m68k = .{ + .url = "https://github.com/grahambates/tree-sitter-m68k/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEu7OwA6rbqe9eqqxj2JOl3Xl_phOhx2XXyO-r9U", + }, + .tp_menhir = .{ + .url = "https://github.com/Kerl13/tree-sitter-menhir/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPWdBQD_pK3sjxRx5jjyChVDDe_XN4AJrkt5vqiz", + }, + .tp_mermaid = .{ + .url = "https://github.com/monaqa/tree-sitter-mermaid/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIbIEgBEoqquu9zeZ5ID6MsWj8MbE0R205MRIIJf", + }, + .tp_mlir = .{ + .url = "https://github.com/artagnon/tree-sitter-mlir/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHfhvgDjjLWGdaBXUSWqCzk-bSzQRam81y2Fu3Ii", + }, + .tp_nasm = .{ + .url = "https://github.com/naclsn/tree-sitter-nasm/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABZgVADNwShjWu6FlEgqOlKX4UW9xXuwKI8wfwm1", + }, + .tp_nginx = .{ + .url = "https://github.com/opa-oz/tree-sitter-nginx/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAL0dCQDl6OPuKts4ofgAoUCAIJuviLKyidexcogO", + }, + .tp_nickel = .{ + .url = "https://github.com/nickel-lang/tree-sitter-nickel/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALApGwDGYA2pCFHqo1plGK0WG3jnM3OxWkOm8QS-", + }, + .tp_nim = .{ + .url = "https://github.com/alaviss/tree-sitter-nim/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAO4DjAK6aOgxjhQpLZoWpDHID5lVv9seU8gXAnFL", + }, + .tp_nim_format_string = .{ + .url = "https://github.com/aMOPel/tree-sitter-nim-format-string/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKICAgDv4MdXAqM-NmTauskpzUKL4SHe79FhBJTB", + }, + .tp_ninja = .{ + .url = "https://github.com/alemuller/tree-sitter-ninja/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJVIAwC3W7XjP905hT7uhZ-h30B1oFTidr30-u-W", + }, + .tp_nix = .{ + .url = "https://github.com/cstrahan/tree-sitter-nix/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABFxCwC6qZnUR1oXaMr6C1YLj3__iIQ1dukoDpag", + }, + .tp_norg = .{ + .url = "https://github.com/nvim-neorg/tree-sitter-norg/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADVGkgHs65hmEVRlygEyO_nhHopPTORY39u7EHCB", + }, + .tp_nu = .{ + .url = "https://github.com/nushell/tree-sitter-nu/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAN5TlADjgsVFy8zNhoekUCaHXu-bzMTGy8SSA0xg", + }, + .tp_objdump = .{ + .url = "https://github.com/ColinKennedy/tree-sitter-objdump/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAF6QAgBmCZDu7kfP_x5Ii2MQXwY6EZYFMF96SWGX", + }, + .tp_ocamllex = .{ + .url = "https://github.com/atom-ocaml/tree-sitter-ocamllex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAL6XAwCaV6Sl-Nljl4p5mBsIm11QKUDHBGIw_wuO", + }, + .tp_pascal = .{ + .url = "https://github.com/Isopod/tree-sitter-pascal/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMmnUgA4hx9Tv_Vl5uDuzQ8r4gSH6J1CuwlZ5YOm", + }, + .tp_passwd = .{ + .url = "https://github.com/ath3/tree-sitter-passwd/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAC6AAAAFVo7jqB10auBL_iQTgiUiLeODHw2rqhw4", + }, + .tp_phpdoc = .{ + .url = "https://github.com/claytonrcarter/tree-sitter-phpdoc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKfvGABMWISgkWRgHeaHaIs2n01fcqRw3XFr6eNs", + }, + .tp_pioasm = .{ + .url = "https://github.com/leo60228/tree-sitter-pioasm/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIk-BQAnn2lfCbCPQyktksVX6iE9f22uoctFYevU", + }, + .tp_powershell = .{ + .url = "https://github.com/airbus-cert/tree-sitter-powershell/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIjtOwDPuUK1LJLBJBkJ5xH0Yf5b2xWvVBQORwXD", + }, + .tp_prisma = .{ + .url = "https://github.com/victorhqc/tree-sitter-prisma/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIHVBQAi2cr8xnt_6YkfkseME3BgBanBUKFHqVjf", + }, + .tp_problog = .{ + .url = "https://github.com/foxyseta/tree-sitter-prolog/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADcsBwCSM6dJq9tdtCEOrFNTbxBK-uvcvGZ4ChSH", + }, + .tp_prolog = .{ + .url = "https://github.com/foxyseta/tree-sitter-prolog/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADcsBwCSM6dJq9tdtCEOrFNTbxBK-uvcvGZ4ChSH", + }, + .tp_promql = .{ + .url = "https://github.com/MichaHoffmann/tree-sitter-promql/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJGYBABK92uAs-knFQ_9pnNsvjwn3Q6nzWRuOTD5", + }, + .tp_proto = .{ + .url = "https://github.com/treywood/tree-sitter-proto/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAE2xBgCD0olZb3qdS9V5MmkcAg2jAnHmFT15O5Vx", + }, + .tp_prql = .{ + .url = "https://github.com/PRQL/tree-sitter-prql/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGyyDQAMNiD24irgesIYeKv0ultPZ1pecjJnjZRL", + }, + .tp_pug = .{ + .url = "https://github.com/zealot128/tree-sitter-pug/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMw0EgBvA8C-NE_Ejw_2ZGSRfXuuOHTCmVMUuvgm", + }, + .tp_purescript = .{ + .url = "https://github.com/postsolar/tree-sitter-purescript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANTWiAA4xjDTd67-AGGGXa-FmP92-QHFZX5vHm2Z", + }, + .tp_qmljs = .{ + .url = "https://github.com/yuja/tree-sitter-qmljs/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIjzngCCGA0vho0DKxyeFpLxMYiMwQrSlYFladlD", + }, + .tp_r = .{ + .url = "https://github.com/r-lib/tree-sitter-r/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAL4aRwB1GARJdqyZ4AZweEGA7EdCk84hubDrt2hP", + }, + .tp_racket = .{ + .url = "https://github.com/6cdh/tree-sitter-racket/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAH0TEADTGp13OT1WmXb0HR_tFk3xwszpEZVg4adA", + }, + .tp_ralph = .{ + .url = "https://github.com/alephium/tree-sitter-ralph/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHL6HQCC2rdDZtrxX9lfIV2P4qPrDTPkO01J9Spx", + }, + .tp_rasi = .{ + .url = "https://github.com/Fymyte/tree-sitter-rasi/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAItgDQA1pv_Pirc4qfLzeV6UvruS9WUYGyF04RFD", + }, + .tp_razor = .{ + .url = "https://github.com/tris203/tree-sitter-razor/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALoLKwPbbZB3-zxkViD-49PeitF-hdoKTodWCEhS", + }, + .tp_rbs = .{ + .url = "https://github.com/joker1007/tree-sitter-rbs/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEiNDwDA532sJVCstQEt5439Y2zBI8O5n_JW0dOX", + }, + .tp_rego = .{ + .url = "https://github.com/FallenAngel97/tree-sitter-rego/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJGUEgAL3gGSXJH66ktZRh9NfMQIb__UMtdJ0PfL", + }, + .tp_rescript = .{ + .url = "https://github.com/rescript-lang/tree-sitter-rescript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAASKegCDKddm83pRHn_d_YyzfYdJcdTb_fFeD40f", + }, + .tp_rnoweb = .{ + .url = "https://github.com/bamonroe/tree-sitter-rnoweb/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIIMCAGpr-HVHxsDMe97DMgrcCocegz8wPOo1crO", + }, + .tp_robot = .{ + .url = "https://github.com/Hubro/tree-sitter-robot/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFEMCQCwjls9XWrOOPACoNpUthiZ-bVmd73K-xQh", + }, + .tp_robots = .{ + .url = "https://github.com/opa-oz/tree-sitter-robots-txt/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHsaAgCf3jNJeczYjx9wzRq_8aSDc-CNdHSaRrKV", + }, + .tp_roc = .{ + .url = "https://github.com/faldor20/tree-sitter-roc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADvzNQCRTvWAuSjzZgJstMfVYL-S_9M0ZhJBgLD-", + }, + .tp_rst = .{ + .url = "https://github.com/stsewd/tree-sitter-rst/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAOf5EQC2JcHndnXC2hQBmLMKmoQ08kHONIcpo_7I", + }, + .tp_scfg = .{ + .url = "https://github.com/rockorager/tree-sitter-scfg/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGoNAQC1HY7n9TdNQLiiRBNgzi6AJB8P5rfeHm32", + }, + .tp_scheme = .{ + .url = "https://github.com/6cdh/tree-sitter-scheme/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFukDwDTG4O_E6mPN0ieVviCocMh0qum_ESUCkaq", + }, + .tp_sflog = .{ + .url = "https://github.com/aheber/tree-sitter-sfapex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEenxQCAfb1Y3W5o1LC8wKM1ibrjEcU0EQsWquW8", + }, + .tp_slim = .{ + .url = "https://github.com/theoo/tree-sitter-slim/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIjRDgCQDF6PZ2FWytYk_ld0pDLXwTwvP0VFoNZy", + }, + .tp_slint = .{ + .url = "https://github.com/slint-ui/tree-sitter-slint/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAH5sPQA0EfHSkNe5Ve3UbLfJWycaEhw9qQZtonuQ", + }, + .tp_smithy = .{ + .url = "https://github.com/indoorvivants/tree-sitter-smithy/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACxyCgCAJuHi8OxhAr04W9mrdvaFK1IWNfwyhdog", + }, + .tp_snakemake = .{ + .url = "https://github.com/osthomas/tree-sitter-snakemake/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAAx5TwDFRt60FnvMiicDyLLz48B_34XLhFx2yZWF", + }, + .tp_solidity = .{ + .url = "https://github.com/JoranHonig/tree-sitter-solidity/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAFk_MACWDp27tOUsThaLIUqI07CJbaTXXQpFtks-", + }, + .tp_soql = .{ + .url = "https://github.com/aheber/tree-sitter-sfapex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEenxQCAfb1Y3W5o1LC8wKM1ibrjEcU0EQsWquW8", + }, + .tp_sosl = .{ + .url = "https://github.com/aheber/tree-sitter-sfapex/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEenxQCAfb1Y3W5o1LC8wKM1ibrjEcU0EQsWquW8", + }, + .tp_sourcepawn = .{ + .url = "https://github.com/nilshelmig/tree-sitter-sourcepawn/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAK8HQACNNJ61pjwV5hsH21WXvxPPjQA7hcGypViU", + }, + .tp_sparql = .{ + .url = "https://github.com/GordianDziwis/tree-sitter-sparql/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAIAUIwBufXXM793RZOpg4eqjifcdwAc909UHVLql", + }, + .tp_strace = .{ + .url = "https://github.com/sigmaSd/tree-sitter-strace/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AANJEBAAq4ABgt0WnGzOJSc36Rj2moziwFok1ow_l", + }, + .tp_styled = .{ + .url = "https://github.com/mskelton/tree-sitter-styled/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAMglDgDb-xGNYZK11vcnzXXvW8e6UpzoGuXE-MPS", + }, + .tp_supercollider = .{ + .url = "https://github.com/madskjeldgaard/tree-sitter-supercollider/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AABKcVwCwzF0y_k5OQlO-uh85e0_2xJnwyO9_kmV-", + }, + .tp_surface = .{ + .url = "https://github.com/connorlay/tree-sitter-surface/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAAbfAgCnNODUnABMCvupW0A4SuvPlHKIf2lUDFf6", + }, + .tp_sway = .{ + .url = "https://github.com/FuelLabs/tree-sitter-sway/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJ-QOQAKCFbWkFKjQYpXwbNWPu3B1kZ7dkx5WWhH", + }, + .tp_sxhkdrc = .{ + .url = "https://github.com/RaafatTurki/tree-sitter-sxhkdrc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGNaAQAvcj47LB4qLc8Zyu-rfYKQIVPLw_2NcQav", + }, + .tp_systemtap = .{ + .url = "https://github.com/ok-ryoko/tree-sitter-systemtap/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHPYGwAGjJlkDi750kPdZ8kMDGOoylvl6VTT2H3o", + }, + .tp_tact = .{ + .url = "https://github.com/tact-lang/tree-sitter-tact/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJCaDwA5y_jYNU5SDXaXdYnbnRwCopm9mYPMknOs", + }, + .tp_templ = .{ + .url = "https://github.com/vrischmann/tree-sitter-templ/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADLRLgDa5fbMyffdhFOiGiQzaj4aJOx364dEv_bi", + }, + .tp_tera = .{ + .url = "https://github.com/uncenter/tree-sitter-tera/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAI13EAC4n01Cxk21YasBLgclflM7bhK9rEv8dMST", + }, + .tp_textproto = .{ + .url = "https://github.com/PorterAtGoogle/tree-sitter-textproto/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAABNAgDWoa3OtxgPLFo_uPIeQNUBsXtxeQ8_tfm4", + }, + .tp_tiger = .{ + .url = "https://github.com/ambroisie/tree-sitter-tiger/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJP8BgB0G3ow8LfgiPcYLBPH534U-rlWCqx_CNFY", + }, + .tp_tlaplus = .{ + .url = "https://github.com/tlaplus-community/tree-sitter-tlaplus/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALV7QgJF2kWPFGui7b0nmNgWOPQuwGti2WYwF96H", + }, + .tp_todotxt = .{ + .url = "https://github.com/arnarg/tree-sitter-todotxt/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHasAADfc3WvSHPAiGxA2c9u-VwFKT1MJmOe45mx", + }, + .tp_turtle = .{ + .url = "https://github.com/GordianDziwis/tree-sitter-turtle/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAHsVBABbkRuECSnze0K190AUkLNmrUL5DQ2l3M1S", + }, + .tp_twig = .{ + .url = "https://github.com/gbprod/tree-sitter-twig/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALD3DQBDzcIVHBrSzSD62m8w9mBPdm1x1p9peJEZ", + }, + .tp_typespec = .{ + .url = "https://github.com/happenslol/tree-sitter-typespec/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAM_WEgBuHLlFABc_S3nOLFRYrz4oSEgsj4P1OPe1", + }, + .tp_typoscript = .{ + .url = "https://github.com/Teddytrombone/tree-sitter-typoscript/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJSKEACRzxCHU44gJay8f-CjwP9EPq_FOqa9iNRM", + }, + .tp_typst = .{ + .url = "https://github.com/uben0/tree-sitter-typst/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAEI_fgCCIzHEL9jwV8cNhuOqVfovu9d5dfHBWRBV", + }, + .tp_unison = .{ + .url = "https://github.com/kylegoetz/tree-sitter-unison/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AALnz6gCf9hSGCHmPNTL_luV10n5Z69Qk2Qn-njNV", + }, + .tp_usd = .{ + .url = "https://github.com/ColinKennedy/tree-sitter-usd/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAJ1kCQCpU-gEFR2OYr6UOGbrabvhcFEPPrqd5XI-", + }, + .tp_v = .{ + .url = "https://github.com/vlang/v-analyzer/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAKbU2AAlmLRxdu4AANyUpNZx27puJ1x0l7LjtJfl", + }, + .tp_vala = .{ + .url = "https://github.com/vala-lang/tree-sitter-vala/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGdsPwD23Qp98aCoj-jzlkEAXdh91mBs_bmTCHhD", + }, + .tp_vento = .{ + .url = "https://github.com/ventojs/tree-sitter-vento/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGGiDwB7s8fTegJFfDSUNUPQGKSqlU1j7q6-whJd", + }, + .tp_verilog = .{ + .url = "https://github.com/gmlarumbe/tree-sitter-systemverilog/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAE03ygOjop2BggQLNpq7gU0ijN6cAA-AGXIRgJln", + }, + .tp_vhdl = .{ + .url = "https://github.com/jpt13653903/tree-sitter-vhdl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACVhswCRvj1k9B3fzXBFS3D49ZB9jJH39Dl7MhjG", + }, + .tp_vhs = .{ + .url = "https://github.com/charmbracelet/tree-sitter-vhs/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACjDBAADCAO_8qWIy4SNfc0maNwzkrmj_mjGYa6v", + }, + .tp_vimdoc = .{ + .url = "https://github.com/neovim/tree-sitter-vimdoc/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAI7VCgCGNcliFVFlzzMLgGxp4oENnH9HEHqYo2Gj", + }, + .tp_vrl = .{ + .url = "https://github.com/belltoy/tree-sitter-vrl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AACKlCQCgMGasTR9Mn4e5HYzlUa9kmy7G0z__6YQ1", + }, + .tp_wgsl = .{ + .url = "https://github.com/szebniok/tree-sitter-wgsl/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAF2HWgCTeKAxZ7Nr16u4RbQBzckkUPuRKc1mcfnf", + }, + .tp_wing = .{ + .url = "https://github.com/winglang/tree-sitter-wing/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAPSZHQC9jvX0yTttMjiX_TKk9NfHbKFysAHfoyRr", + }, + .tp_wit = .{ + .url = "https://github.com/liamwh/tree-sitter-wit/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AADaaCQBX_Mg3WtOyomh_0E7eVqICrf99BGGb_Et5", + }, + .tp_xresources = .{ + .url = "https://github.com/ValdezFOmar/tree-sitter-xresources/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAGOwAwDr1k_LXayUhqzj4H5_dF51q0zJjFYCKcos", + }, + .tp_yang = .{ + .url = "https://github.com/Hubro/tree-sitter-yang/archive/refs/heads/master.tar.gz", + .hash = "N-V-__8AAI3oDgDg1tI6tSep4QZeYKOInZ9UKA5ROM4GM5Sv", + }, }, .paths = .{ "build.zig", diff --git a/src/tests.zig b/src/tests.zig new file mode 100644 index 0000000..1f46ffd --- /dev/null +++ b/src/tests.zig @@ -0,0 +1,279 @@ +const std = @import("std"); +const testing = std.testing; +const ts = @import("tree-sitter"); +const ezts = @import("eazy_zig_tree_sitter"); +const grammars = @import("grammars"); +const queries_mod = @import("queries"); + +const Entry = struct { key: []const u8, source: []const u8 }; + +fn runParseTest(entries: []const Entry) !void { + for (entries) |e| { + const lang = ezts.getLang(e.key) orelse @panic("unknown lang"); + defer lang.destroy(); + var parser = ts.Parser.create(); + defer parser.destroy(); + try parser.setLanguage(lang); + const tree = parser.parseString(e.source, null) orelse { + std.debug.print("PARSE FAIL: {s}\n", .{e.key}); + return error.ParseFailed; + }; + defer tree.destroy(); + } +} + +fn runQueryTest(entries: []const Entry) !void { + for (entries) |e| { + const lang = ezts.getLang(e.key) orelse @panic("unknown lang"); + defer lang.destroy(); + var parser = ts.Parser.create(); + defer parser.destroy(); + try parser.setLanguage(lang); + const tree = parser.parseString(e.source, null) orelse continue; + defer tree.destroy(); + const query_src = ezts.getQuery(e.key) orelse { + std.debug.print("NO QUERY: {s}\n", .{e.key}); + continue; + }; + var error_offset: u32 = 0; + const query = ts.Query.create(lang, query_src, &error_offset) catch |err| { + std.debug.print("QUERY ERROR {s}: {s} at {d}\n", .{ e.key, @errorName(err), error_offset }); + return error.QueryFailed; + }; + defer query.destroy(); + const cursor = ts.QueryCursor.create(); + defer cursor.destroy(); + cursor.exec(query, tree.rootNode()); + _ = cursor.nextCapture(); + } +} + +const parse_entries: []const Entry = &.{ + .{ .key = "c", .source = "int a;" }, + .{ .key = "md", .source = "# hi" }, + .{ .key = "md_inline", .source = "**hi**" }, + .{ .key = "lua", .source = "x=1" }, + .{ .key = "cuda", .source = "int a;" }, + .{ .key = "glsl", .source = "int a;" }, + .{ .key = "diff", .source = "+a" }, + .{ .key = "ungrammar", .source = "A = 'a'" }, + .{ .key = "thrift", .source = "struct A{}" }, + .{ .key = "meson", .source = "x=1" }, + .{ .key = "gitattributes", .source = "* text" }, + .{ .key = "pymanifest", .source = "" }, + .{ .key = "poe_filter", .source = "" }, + .{ .key = "chatito", .source = "" }, + .{ .key = "ino", .source = "void setup(){}" }, + .{ .key = "capnp", .source = "struct A{}" }, + .{ .key = "kdl", .source = "node1" }, + .{ .key = "func", .source = "" }, + .{ .key = "gosum", .source = "" }, + .{ .key = "ron", .source = "()" }, + .{ .key = "po", .source = "" }, + .{ .key = "starlark", .source = "x=1" }, + .{ .key = "yuck", .source = "" }, + .{ .key = "smali", .source = ".class public A" }, + .{ .key = "bicep", .source = "" }, + .{ .key = "cpon", .source = "" }, + .{ .key = "firrtl", .source = "" }, + .{ .key = "luap", .source = "" }, + .{ .key = "squirrel", .source = "x=1" }, + .{ .key = "uxntal", .source = "" }, + .{ .key = "cairo", .source = "func main(){}" }, + .{ .key = "odin", .source = "main :: proc(){}" }, + .{ .key = "hare", .source = "export fn main() void;" }, + .{ .key = "pony", .source = "actor Main" }, + .{ .key = "tablegen", .source = "" }, + .{ .key = "luadoc", .source = "" }, + .{ .key = "puppet", .source = "$a=1" }, + .{ .key = "luau", .source = "x=1" }, + .{ .key = "objc", .source = "int a;" }, + .{ .key = "ispc", .source = "int a;" }, + .{ .key = "pem", .source = "" }, + .{ .key = "requirements", .source = "a" }, + .{ .key = "gpg", .source = "" }, + .{ .key = "bb", .source = "A = \"1\"" }, + .{ .key = "csv", .source = "a,b" }, + .{ .key = "psv", .source = "a|b" }, + .{ .key = "tsv", .source = "a\tb" }, + .{ .key = "printf", .source = "" }, + .{ .key = "re2c", .source = "" }, + .{ .key = "doxygen", .source = "" }, + .{ .key = "ssh_config", .source = "Host *" }, + .{ .key = "nqc", .source = "" }, + .{ .key = "kconfig", .source = "mainmenu \"x\"" }, + .{ .key = "gn", .source = "executable(\"a\") {}" }, + .{ .key = "udev", .source = "" }, + .{ .key = "xcompose", .source = "" }, + .{ .key = "linkerscript", .source = "" }, + .{ .key = "properties", .source = "key=value" }, + .{ .key = "readline", .source = "" }, + .{ .key = "Makefile", .source = "x=a" }, + .{ .key = "yaml", .source = "a: 1" }, + .{ .key = "toml", .source = "a=1" }, + .{ .key = "svelte", .source = "" }, + .{ .key = "scss", .source = "$a:1" }, + .{ .key = "cst", .source = "" }, + .{ .key = "jl", .source = "x=1" }, + .{ .key = "hs", .source = "x=1" }, + .{ .key = "cyberchef", .source = "" }, + .{ .key = "js", .source = "1" }, + .{ .key = "json", .source = "1" }, + .{ .key = "cpp", .source = "int a;" }, + .{ .key = "rb", .source = "x=1" }, + .{ .key = "go", .source = "package p" }, + .{ .key = "cs", .source = "class A{}" }, + .{ .key = "py", .source = "x=1" }, + .{ .key = "rs", .source = "fn f(){}" }, + .{ .key = "sh", .source = "true" }, + .{ .key = "java", .source = "class A{}" }, + .{ .key = "scala", .source = "class A" }, + .{ .key = "agda", .source = "" }, + .{ .key = "html", .source = "

" }, + .{ .key = "embedded_template", .source = "" }, + .{ .key = "regex", .source = "a" }, + .{ .key = "css", .source = "a{}" }, + .{ .key = "jsdoc", .source = "/** */" }, + .{ .key = "ql", .source = "" }, + .{ .key = "query", .source = "" }, + .{ .key = "lisp", .source = "()" }, + .{ .key = "tf", .source = "" }, + .{ .key = "hcl", .source = "" }, + .{ .key = "hlsl", .source = "int a;" }, + .{ .key = "tcl", .source = "" }, + .{ .key = "chatl", .source = "" }, + .{ .key = "wgsl_bevy", .source = "" }, + .{ .key = "move", .source = "" }, + .{ .key = "kt", .source = "fun f(){}" }, + .{ .key = "vim", .source = "" }, + .{ .key = "hyprlang", .source = "" }, + .{ .key = "gstlaunch", .source = "" }, + .{ .key = "slang", .source = "" }, + .{ .key = "dtd", .source = "" }, + .{ .key = "xml", .source = "" }, + .{ .key = "core_schema", .source = "" }, + .{ .key = "json_schema", .source = "" }, + .{ .key = "legacy_schema", .source = "" }, + .{ .key = "vue", .source = "" }, + .{ .key = "qmldir", .source = "" }, + .{ .key = "zig", .source = "const a=1;" }, + .{ .key = "test", .source = "" }, + .{ .key = "v", .source = "" }, + .{ .key = "tsx", .source = "" }, + .{ .key = "ts", .source = "let a=1" }, + .{ .key = "php", .source = "" }, + .{ .key = "embedded_template", .source = "" }, + .{ .key = "regex", .source = "a" }, + .{ .key = "css", .source = "a{}" }, + .{ .key = "jsdoc", .source = "/** */" }, + .{ .key = "ql", .source = "" }, +}; + +comptime { + @setEvalBranchQuota(30000); + for (parse_entries) |e| { + if (!grammars.languages.has(e.key)) @compileError("unknown lang: " ++ e.key); + } + for (query_entries) |e| { + if (!queries_mod.queries.has(e.key)) @compileError("unknown query: " ++ e.key); + } +} + +test "parse all languages" { + try runParseTest(parse_entries); +} + +test "execute highlight queries" { + try runQueryTest(query_entries); +} diff --git a/src/third_party_tests.zig b/src/third_party_tests.zig new file mode 100644 index 0000000..f057295 --- /dev/null +++ b/src/third_party_tests.zig @@ -0,0 +1,225 @@ +const std = @import("std"); +const testing = std.testing; +const ts = @import("tree-sitter"); +const ezts = @import("eazy_zig_tree_sitter"); +const grammars = @import("grammars"); + +const Entry = struct { key: []const u8, source: []const u8 }; + +fn runParseTest(entries: []const Entry) !void { + for (entries) |e| { + const lang = ezts.getLang(e.key) orelse @panic("unknown lang"); + defer lang.destroy(); + var parser = ts.Parser.create(); + defer parser.destroy(); + try parser.setLanguage(lang); + const tree = parser.parseString(e.source, null) orelse { + std.debug.print("PARSE FAIL: {s}\n", .{e.key}); + return error.ParseFailed; + }; + defer tree.destroy(); + } +} + +const parse_entries: []const Entry = &.{ + .{ .key = "ada", .source = "" }, + .{ .key = "angular", .source = "" }, + .{ .key = "apex", .source = "" }, + .{ .key = "asm", .source = "" }, + .{ .key = "astro", .source = "" }, + .{ .key = "authzed", .source = "" }, + .{ .key = "awk", .source = "1" }, + .{ .key = "bass", .source = "" }, + .{ .key = "beancount", .source = "" }, + .{ .key = "bibtex", .source = "" }, + .{ .key = "blade", .source = "" }, + .{ .key = "bp", .source = "" }, + .{ .key = "brightscript", .source = "" }, + .{ .key = "caddy", .source = "" }, + .{ .key = "circom", .source = "" }, + .{ .key = "clojure", .source = "1" }, + .{ .key = "cmake", .source = "" }, + .{ .key = "comment", .source = "" }, + .{ .key = "cooklang", .source = "" }, + .{ .key = "corn", .source = "" }, + .{ .key = "cue", .source = "" }, + .{ .key = "cylc", .source = "" }, + .{ .key = "d", .source = "1" }, + .{ .key = "dart", .source = "1" }, + .{ .key = "desktop", .source = "" }, + .{ .key = "dhall", .source = "" }, + .{ .key = "disassembly", .source = "" }, + .{ .key = "djot", .source = "" }, + .{ .key = "Dockerfile", .source = "FROM a" }, + .{ .key = "dot", .source = "" }, + .{ .key = "earthfile", .source = "" }, + .{ .key = "ebnf", .source = "" }, + .{ .key = "editorconfig", .source = "" }, + .{ .key = "eds", .source = "" }, + .{ .key = "eex", .source = "" }, + .{ .key = "ex", .source = "1" }, + .{ .key = "elm", .source = "1" }, + .{ .key = "elsa", .source = "" }, + .{ .key = "elvish", .source = "" }, + .{ .key = "enforce", .source = "" }, + .{ .key = "erl", .source = "1" }, + .{ .key = "facility", .source = "" }, + .{ .key = "faust", .source = "" }, + .{ .key = "fennel", .source = "1" }, + .{ .key = "fidl", .source = "" }, + .{ .key = "fish", .source = "1" }, + .{ .key = "foam", .source = "" }, + .{ .key = "forth", .source = "" }, + .{ .key = "f90", .source = "end" }, + .{ .key = "fsh", .source = "" }, + .{ .key = "fs", .source = "1" }, + .{ .key = "gap", .source = "" }, + .{ .key = "gaptst", .source = "" }, + .{ .key = "gdshader", .source = "" }, + .{ .key = "git_config", .source = "" }, + .{ .key = "git_rebase", .source = "" }, + .{ .key = "gitattributes", .source = "" }, + .{ .key = "gitcommit", .source = "" }, + .{ .key = "gitignore", .source = "" }, + .{ .key = "gleam", .source = "1" }, + .{ .key = "glimmer", .source = "" }, + .{ .key = "glimmer_javascript", .source = "" }, + .{ .key = "glimmer_typescript", .source = "" }, + .{ .key = "gnuplot", .source = "" }, + .{ .key = "goctl", .source = "" }, + .{ .key = "godot_resource", .source = "" }, + .{ .key = "gomod", .source = "module m" }, + .{ .key = "gowork", .source = "go 1.20" }, + .{ .key = "gql", .source = "{a}" }, + .{ .key = "gren", .source = "" }, + .{ .key = "groovy", .source = "1+1" }, + .{ .key = "hh", .source = "1" }, + .{ .key = "hjson", .source = "{a:1}" }, + .{ .key = "hocon", .source = "{a=1}" }, + .{ .key = "hoon", .source = "" }, + .{ .key = "htmldjango", .source = "{{1}}" }, + .{ .key = "http", .source = "GET /" }, + .{ .key = "hurl", .source = "" }, + .{ .key = "idl", .source = "" }, + .{ .key = "idris", .source = "1+1" }, + .{ .key = "ini", .source = "k=v" }, + .{ .key = "inko", .source = "" }, + .{ .key = "janet_simple", .source = "1" }, + .{ .key = "javadoc", .source = "@param" }, + .{ .key = "jinja", .source = "{{1}}" }, + .{ .key = "jinja_inline", .source = "{{1}}" }, + .{ .key = "jq", .source = "." }, + .{ .key = "json5", .source = "{a:1}" }, + .{ .key = "jsonnet", .source = "{}" }, + .{ .key = "just", .source = "a:" }, + .{ .key = "kcl", .source = "" }, + .{ .key = "koto", .source = "" }, + .{ .key = "kusto", .source = "T|take 1" }, + .{ .key = "lalrpop", .source = "" }, + .{ .key = "ledger", .source = "2024-01-01" }, + .{ .key = "leo", .source = "" }, + .{ .key = "liquid", .source = "{{1}}" }, + .{ .key = "liquidsoap", .source = "" }, + .{ .key = "llvm", .source = "i32 0" }, + .{ .key = "m68k", .source = "" }, + .{ .key = "menhir", .source = "" }, + .{ .key = "mermaid", .source = "A-->B" }, + .{ .key = "mlir", .source = "module {" }, + .{ .key = "nasm", .source = "mov ax,1" }, + .{ .key = "nginx", .source = "server{}" }, + .{ .key = "nickel", .source = "" }, + .{ .key = "nim", .source = "echo 1" }, + .{ .key = "nim_format_string", .source = "" }, + .{ .key = "ninja", .source = "rule a" }, + .{ .key = "nix", .source = "{}" }, + .{ .key = "norg", .source = "" }, + .{ .key = "nu", .source = "1" }, + .{ .key = "objdump", .source = "" }, + .{ .key = "ocamllex", .source = "" }, + .{ .key = "pascal", .source = "begin end" }, + .{ .key = "passwd", .source = "root:x:0:" }, + .{ .key = "phpdoc", .source = "@param" }, + .{ .key = "pioasm", .source = "" }, + .{ .key = "ps1", .source = "1+1" }, + .{ .key = "prisma", .source = "model A{}" }, + .{ .key = "problog", .source = "" }, + .{ .key = "prolog", .source = "X=1" }, + .{ .key = "promql", .source = "up" }, + .{ .key = "proto", .source = "syntax" }, + .{ .key = "prql", .source = "" }, + .{ .key = "pug", .source = "p" }, + .{ .key = "purescript", .source = "" }, + .{ .key = "qmljs", .source = "" }, + .{ .key = "r", .source = "1" }, + .{ .key = "racket", .source = "x" }, + .{ .key = "ralph", .source = "" }, + .{ .key = "rasi", .source = "" }, + .{ .key = "razor", .source = "@{}" }, + .{ .key = "rbs", .source = "" }, + .{ .key = "rego", .source = "package p" }, + .{ .key = "rescript", .source = "" }, + .{ .key = "rnoweb", .source = "" }, + .{ .key = "robot", .source = "" }, + .{ .key = "robots", .source = "" }, + .{ .key = "roc", .source = "" }, + .{ .key = "rst", .source = ".. " }, + .{ .key = "scfg", .source = "" }, + .{ .key = "scm", .source = "#t" }, + .{ .key = "sflog", .source = "" }, + .{ .key = "slim", .source = "" }, + .{ .key = "slint", .source = "" }, + .{ .key = "smithy", .source = "" }, + .{ .key = "snakemake", .source = "" }, + .{ .key = "solidity", .source = "pragma" }, + .{ .key = "soql", .source = "" }, + .{ .key = "sosl", .source = "" }, + .{ .key = "sourcepawn", .source = "" }, + .{ .key = "sparql", .source = "" }, + .{ .key = "strace", .source = "" }, + .{ .key = "styled", .source = "" }, + .{ .key = "supercollider", .source = "" }, + .{ .key = "surface", .source = "" }, + .{ .key = "sway", .source = "" }, + .{ .key = "sxhkdrc", .source = "" }, + .{ .key = "systemtap", .source = "" }, + .{ .key = "tact", .source = "" }, + .{ .key = "templ", .source = "" }, + .{ .key = "tera", .source = "" }, + .{ .key = "textproto", .source = "" }, + .{ .key = "tiger", .source = "" }, + .{ .key = "tlaplus", .source = "" }, + .{ .key = "todotxt", .source = "" }, + .{ .key = "turtle", .source = "" }, + .{ .key = "twig", .source = "" }, + .{ .key = "typespec", .source = "" }, + .{ .key = "typoscript", .source = "" }, + .{ .key = "typst", .source = "" }, + .{ .key = "unison", .source = "" }, + .{ .key = "usd", .source = "" }, + .{ .key = "v", .source = "1" }, + .{ .key = "vala", .source = "" }, + .{ .key = "vento", .source = "" }, + .{ .key = "v", .source = "module" }, + .{ .key = "vhdl", .source = "entity" }, + .{ .key = "vhs", .source = "" }, + .{ .key = "vimdoc", .source = "" }, + .{ .key = "vrl", .source = "" }, + .{ .key = "wgsl", .source = "" }, + .{ .key = "wing", .source = "" }, + .{ .key = "wit", .source = "" }, + .{ .key = "xresources", .source = "" }, + .{ .key = "yang", .source = "" }, +}; + +comptime { + @setEvalBranchQuota(50000); + for (parse_entries) |e| { + if (!grammars.languages.has(e.key)) @compileError("unknown lang: " ++ e.key); + } +} + +test "parse third-party languages" { + try runParseTest(parse_entries); +}