diff --git a/Cargo.lock b/Cargo.lock index 856e6fb42e6f..4fab55a6444f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -140,6 +140,26 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "bindgen" +version = "0.72.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" +dependencies = [ + "bitflags 2.9.4", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "log 0.4.28", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -250,6 +270,15 @@ dependencies = [ "shlex", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" version = "1.0.3" @@ -328,7 +357,7 @@ dependencies = [ "chalk-derive 0.103.0", "chalk-ir 0.103.0", "ena", - "indexmap 2.11.4", + "indexmap 2.14.0", "itertools 0.12.1", "petgraph", "rustc-hash 1.1.0", @@ -349,6 +378,17 @@ dependencies = [ "windows-link 0.2.0", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.48" @@ -505,6 +545,15 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -758,6 +807,12 @@ dependencies = [ "typeid", ] +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + [[package]] name = "figment" version = "0.10.19" @@ -806,6 +861,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "form_urlencoded" version = "1.2.2" @@ -890,9 +951,26 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "hashlink" version = "0.10.0" @@ -1079,16 +1157,25 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.17.1", "serde", "serde_core", ] +[[package]] +name = "indoc" +version = "2.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706" +dependencies = [ + "rustversion", +] + [[package]] name = "inlinable_string" version = "0.1.15" @@ -1218,6 +1305,16 @@ version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link 0.2.0", +] + [[package]] name = "line-index" version = "0.1.2" @@ -1283,6 +1380,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.9" @@ -1329,6 +1432,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "notify" version = "8.2.0" @@ -1456,6 +1569,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "pathdiff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" + [[package]] name = "pear" version = "0.2.9" @@ -1511,7 +1630,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.11.4", + "indexmap 2.14.0", +] + +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_shared", + "serde", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher", ] [[package]] @@ -1556,6 +1704,25 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.11+spec-1.1.0", +] + [[package]] name = "proc-macro2" version = "1.0.101" @@ -1687,7 +1854,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e876bb2c3e52a8d4e6684526a2d4e81f9d028b939ee4dc5dc775fe10deb44d59" dependencies = [ "dashmap", - "indexmap 2.11.4", + "indexmap 2.14.0", "la-arena", "ra_ap_cfg", "ra_ap_intern", @@ -1729,7 +1896,7 @@ checksum = "ebffdc134eccabc17209d7760cfff7fd12ed18ab6e21188c5e084b97aa38504c" dependencies = [ "arrayvec", "either", - "indexmap 2.11.4", + "indexmap 2.14.0", "itertools 0.14.0", "ra_ap_base_db", "ra_ap_cfg", @@ -1759,7 +1926,7 @@ dependencies = [ "drop_bomb", "either", "fst", - "indexmap 2.11.4", + "indexmap 2.14.0", "itertools 0.14.0", "la-arena", "ra-ap-rustc_abi", @@ -1828,7 +1995,7 @@ dependencies = [ "cov-mark", "either", "ena", - "indexmap 2.11.4", + "indexmap 2.14.0", "itertools 0.14.0", "la-arena", "oorandom", @@ -1866,7 +2033,7 @@ dependencies = [ "crossbeam-channel", "either", "fst", - "indexmap 2.11.4", + "indexmap 2.14.0", "itertools 0.14.0", "line-index", "memchr", @@ -1968,7 +2135,7 @@ version = "0.0.301" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45db9e2df587d56f0738afa89fb2c100ff7c1e9cbe49e07f6a8b62342832211b" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.14.0", "ra_ap_intern", "ra_ap_paths", "ra_ap_span", @@ -2127,7 +2294,7 @@ checksum = "6c174d6b9b7a7f54687df7e00c3e75ed6f082a7943a9afb1d54f33c0c12773de" dependencies = [ "crossbeam-channel", "fst", - "indexmap 2.11.4", + "indexmap 2.14.0", "nohash-hasher", "ra_ap_paths", "ra_ap_stdx", @@ -2259,6 +2426,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +[[package]] +name = "relative-path" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0" +dependencies = [ + "serde", +] + [[package]] name = "rowan" version = "0.15.15" @@ -2272,6 +2448,57 @@ dependencies = [ "text-size", ] +[[package]] +name = "rquickjs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a135375fbac5ba723bb6a48f432a72f81539cedde422f0121a86c7c4e96d8e0d" +dependencies = [ + "rquickjs-core", + "rquickjs-macro", +] + +[[package]] +name = "rquickjs-core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bccb7121a123865c8ace4dea42e7ed84d78b90cbaf4ca32c59849d8d210c9672" +dependencies = [ + "hashbrown 0.16.1", + "phf", + "relative-path", + "rquickjs-sys", +] + +[[package]] +name = "rquickjs-macro" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89f93602cc3112c7f30bf5f29e722784232138692c7df4c52ebbac7e035d900d" +dependencies = [ + "convert_case", + "fnv", + "ident_case", + "indexmap 2.14.0", + "phf_generator", + "phf_shared", + "proc-macro-crate", + "proc-macro2", + "quote", + "rquickjs-core", + "syn", +] + +[[package]] +name = "rquickjs-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57b1b6528590d4d65dc86b5159eae2d0219709546644c66408b2441696d1d725" +dependencies = [ + "bindgen", + "cc", +] + [[package]] name = "rust-extractor-macros" version = "0.1.0" @@ -2337,7 +2564,7 @@ dependencies = [ "crossbeam-utils", "hashbrown 0.15.5", "hashlink", - "indexmap 2.11.4", + "indexmap 2.14.0", "intrusive-collections", "papaya", "parking_lot", @@ -2426,11 +2653,12 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" dependencies = [ "serde", + "serde_core", ] [[package]] @@ -2490,7 +2718,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.14.0", "itoa", "memchr", "ryu", @@ -2526,7 +2754,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.11.4", + "indexmap 2.14.0", "schemars 0.9.0", "schemars 1.0.4", "serde", @@ -2554,7 +2782,7 @@ version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.14.0", "itoa", "ryu", "serde", @@ -2576,6 +2804,18 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "siphasher" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649" + +[[package]] +name = "smallbitvec" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b0e903ee191d8f7a8fbf0d712c3a1699d19e04ceba5ad1eb673053c7d938a09" + [[package]] name = "smallvec" version = "1.15.1" @@ -2652,18 +2892,18 @@ checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" [[package]] name = "thiserror" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.16" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -2728,7 +2968,7 @@ dependencies = [ "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", - "toml_edit", + "toml_edit 0.22.27", ] [[package]] @@ -2737,13 +2977,13 @@ version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00e5e5d9bf2475ac9d4f0d9edab68cc573dc2fd644b0dba36b0c30a92dd9eaa0" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.14.0", "serde_core", "serde_spanned 1.0.2", "toml_datetime 0.7.2", "toml_parser", "toml_writer", - "winnow", + "winnow 0.7.13", ] [[package]] @@ -2764,27 +3004,48 @@ dependencies = [ "serde_core", ] +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + [[package]] name = "toml_edit" version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.14.0", "serde", "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow", + "winnow 0.7.13", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.2", ] [[package]] name = "toml_parser" -version = "1.0.3" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow", + "winnow 1.0.2", ] [[package]] @@ -2799,6 +3060,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d163a63c116ce562a22cda521fcc4d79152e7aba014456fb5eb442f6d6a10109" +[[package]] +name = "topological-sort" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d" + [[package]] name = "tracing" version = "0.1.41" @@ -2895,6 +3162,30 @@ dependencies = [ "tree-sitter-language", ] +[[package]] +name = "tree-sitter-generate" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fb2e1bdb1d5f9d23cd5fa68cf98b3bedbd223c92a2edd60bbcf30bcf7180a5" +dependencies = [ + "bitflags 2.9.4", + "dunce", + "indexmap 2.14.0", + "indoc", + "log 0.4.28", + "pathdiff", + "regex", + "regex-syntax", + "rquickjs", + "rustc-hash 2.1.1", + "semver", + "serde", + "serde_json", + "smallbitvec", + "thiserror", + "topological-sort", +] + [[package]] name = "tree-sitter-json" version = "0.24.8" @@ -2944,10 +3235,9 @@ dependencies = [ [[package]] name = "tree-sitter-swift" version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b98fb6bc8e6a6a10023f401aa6a1858115e849dfaf7de57dd8b8ea0f257bd9" dependencies = [ "cc", + "tree-sitter-generate", "tree-sitter-language", ] @@ -3000,6 +3290,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" +[[package]] +name = "unicode-segmentation" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -3389,6 +3685,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0" +dependencies = [ + "memchr", +] + [[package]] name = "wit-bindgen" version = "0.45.1" diff --git a/Cargo.toml b/Cargo.toml index 4054c3a50bee..62eb2e7e920c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ members = [ "shared/yeast-macros", "ruby/extractor", "unified/extractor", + "unified/extractor/tree-sitter-swift", "rust/extractor", "rust/extractor/macros", "rust/ast-generator", diff --git a/MODULE.bazel b/MODULE.bazel index ee40f7789e4c..fd923a32e62b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -102,6 +102,7 @@ use_repo( tree_sitter_extractors_deps, "vendor_ts__anyhow-1.0.100", "vendor_ts__argfile-0.2.1", + "vendor_ts__cc-1.2.61", "vendor_ts__chalk-ir-0.104.0", "vendor_ts__chrono-0.4.42", "vendor_ts__clap-4.5.48", @@ -149,11 +150,12 @@ use_repo( "vendor_ts__tracing-subscriber-0.3.20", "vendor_ts__tree-sitter-0.26.8", "vendor_ts__tree-sitter-embedded-template-0.25.0", + "vendor_ts__tree-sitter-generate-0.26.8", "vendor_ts__tree-sitter-json-0.24.8", + "vendor_ts__tree-sitter-language-0.1.5", "vendor_ts__tree-sitter-python-0.23.6", "vendor_ts__tree-sitter-ql-0.23.1", "vendor_ts__tree-sitter-ruby-0.23.1", - "vendor_ts__tree-sitter-swift-0.7.2", "vendor_ts__triomphe-0.1.14", "vendor_ts__ungrammar-1.16.1", "vendor_ts__zstd-0.13.3", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel index 1d1b47192a26..bb32aa97a5e2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel @@ -55,6 +55,18 @@ alias( tags = ["manual"], ) +alias( + name = "cc-1.2.61", + actual = "@vendor_ts__cc-1.2.61//:cc", + tags = ["manual"], +) + +alias( + name = "cc", + actual = "@vendor_ts__cc-1.2.61//:cc", + tags = ["manual"], +) + alias( name = "chalk-ir-0.104.0", actual = "@vendor_ts__chalk-ir-0.104.0//:chalk_ir", @@ -625,6 +637,18 @@ alias( tags = ["manual"], ) +alias( + name = "tree-sitter-generate-0.26.8", + actual = "@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate", + tags = ["manual"], +) + +alias( + name = "tree-sitter-generate", + actual = "@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate", + tags = ["manual"], +) + alias( name = "tree-sitter-json-0.24.8", actual = "@vendor_ts__tree-sitter-json-0.24.8//:tree_sitter_json", @@ -637,6 +661,18 @@ alias( tags = ["manual"], ) +alias( + name = "tree-sitter-language-0.1.5", + actual = "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", + tags = ["manual"], +) + +alias( + name = "tree-sitter-language", + actual = "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", + tags = ["manual"], +) + alias( name = "tree-sitter-python-0.23.6", actual = "@vendor_ts__tree-sitter-python-0.23.6//:tree_sitter_python", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bindgen-0.72.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bindgen-0.72.1.bazel new file mode 100644 index 000000000000..903b1c8fc773 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bindgen-0.72.1.bazel @@ -0,0 +1,190 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load( + "@rules_rust//cargo:defs.bzl", + "cargo_build_script", + "cargo_toml_env_vars", +) +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "bindgen", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "logging", + "prettyplease", + "runtime", + ], + crate_root = "lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=bindgen", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.72.1", + deps = [ + "@vendor_ts__bindgen-0.72.1//:build_script_build", + "@vendor_ts__bitflags-2.9.4//:bitflags", + "@vendor_ts__cexpr-0.6.0//:cexpr", + "@vendor_ts__clang-sys-1.8.1//:clang_sys", + "@vendor_ts__itertools-0.12.1//:itertools", + "@vendor_ts__log-0.4.28//:log", + "@vendor_ts__prettyplease-0.2.37//:prettyplease", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", + "@vendor_ts__quote-1.0.41//:quote", + "@vendor_ts__regex-1.11.3//:regex", + "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", + "@vendor_ts__shlex-1.3.0//:shlex", + "@vendor_ts__syn-2.0.106//:syn", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "logging", + "prettyplease", + "runtime", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + link_deps = [ + "@vendor_ts__clang-sys-1.8.1//:clang_sys", + "@vendor_ts__prettyplease-0.2.37//:prettyplease", + ], + pkg_name = "bindgen", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=bindgen", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.72.1", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel index 802e8d678083..79d9696b3cd8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.8.2.bazel @@ -95,11 +95,11 @@ rust_library( }), version = "0.8.2", deps = [ - "@vendor_ts__semver-1.0.26//:semver", + "@vendor_ts__semver-1.0.28//:semver", "@vendor_ts__serde-1.0.228//:serde", "@vendor_ts__serde-untagged-0.1.8//:serde_untagged", "@vendor_ts__serde-value-0.7.0//:serde_value", - "@vendor_ts__thiserror-2.0.16//:thiserror", + "@vendor_ts__thiserror-2.0.18//:thiserror", "@vendor_ts__toml-0.8.23//:toml", "@vendor_ts__unicode-xid-0.2.6//:unicode_xid", "@vendor_ts__url-2.5.7//:url", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel index aefea796d4c3..10cd194b507d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.21.0.bazel @@ -101,9 +101,9 @@ rust_library( "@vendor_ts__camino-1.1.12//:camino", "@vendor_ts__cargo-platform-0.2.0//:cargo_platform", "@vendor_ts__cargo-util-schemas-0.8.2//:cargo_util_schemas", - "@vendor_ts__semver-1.0.26//:semver", + "@vendor_ts__semver-1.0.28//:semver", "@vendor_ts__serde-1.0.228//:serde", "@vendor_ts__serde_json-1.0.145//:serde_json", - "@vendor_ts__thiserror-2.0.16//:thiserror", + "@vendor_ts__thiserror-2.0.18//:thiserror", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cexpr-0.6.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cexpr-0.6.0.bazel new file mode 100644 index 000000000000..500c657be108 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cexpr-0.6.0.bazel @@ -0,0 +1,100 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "cexpr", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=cexpr", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.6.0", + deps = [ + "@vendor_ts__nom-7.1.3//:nom", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel index f1124f1108fa..4fb684fec28b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel @@ -100,7 +100,7 @@ rust_library( deps = [ "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", "@vendor_ts__ena-0.14.3//:ena", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itertools-0.12.1//:itertools", "@vendor_ts__petgraph-0.6.5//:petgraph", "@vendor_ts__rustc-hash-1.1.0//:rustc_hash", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clang-sys-1.8.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clang-sys-1.8.1.bazel new file mode 100644 index 000000000000..b039f4c28e5b --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clang-sys-1.8.1.bazel @@ -0,0 +1,203 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load( + "@rules_rust//cargo:defs.bzl", + "cargo_build_script", + "cargo_toml_env_vars", +) +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "clang_sys", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "clang_10_0", + "clang_11_0", + "clang_3_5", + "clang_3_6", + "clang_3_7", + "clang_3_8", + "clang_3_9", + "clang_4_0", + "clang_5_0", + "clang_6_0", + "clang_7_0", + "clang_8_0", + "clang_9_0", + "libloading", + "runtime", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=clang-sys", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.8.1", + deps = [ + "@vendor_ts__clang-sys-1.8.1//:build_script_build", + "@vendor_ts__glob-0.3.3//:glob", + "@vendor_ts__libc-0.2.175//:libc", + "@vendor_ts__libloading-0.8.9//:libloading", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "clang_10_0", + "clang_11_0", + "clang_3_5", + "clang_3_6", + "clang_3_7", + "clang_3_8", + "clang_3_9", + "clang_4_0", + "clang_5_0", + "clang_6_0", + "clang_7_0", + "clang_8_0", + "clang_9_0", + "libloading", + "runtime", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + links = "clang", + pkg_name = "clang-sys", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=clang-sys", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.8.1", + visibility = ["//visibility:private"], + deps = [ + "@vendor_ts__glob-0.3.3//:glob", + ], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.convert_case-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.convert_case-0.8.0.bazel new file mode 100644 index 000000000000..a1a2df07bf1f --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.convert_case-0.8.0.bazel @@ -0,0 +1,100 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "convert_case", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=convert_case", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.0", + deps = [ + "@vendor_ts__unicode-segmentation-1.13.2//:unicode_segmentation", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fastrand-2.4.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fastrand-2.4.1.bazel new file mode 100644 index 000000000000..f6f016a9f467 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fastrand-2.4.1.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "fastrand", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=fastrand", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.4.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel new file mode 100644 index 000000000000..03940fb08ac2 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "foldhash", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=foldhash", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.0", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.16.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.16.1.bazel new file mode 100644 index 000000000000..8090f6f8c7fc --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.16.1.bazel @@ -0,0 +1,110 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "hashbrown", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "allocator-api2", + "default", + "default-hasher", + "equivalent", + "inline-more", + "raw-entry", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=hashbrown", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.16.1", + deps = [ + "@vendor_ts__allocator-api2-0.2.21//:allocator_api2", + "@vendor_ts__equivalent-1.0.2//:equivalent", + "@vendor_ts__foldhash-0.2.0//:foldhash", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel new file mode 100644 index 000000000000..eba4862da685 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "hashbrown", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2024", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=hashbrown", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.17.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.0.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.0.bazel index 53cca2f56778..5a727af4c881 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.11.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.0.bazel @@ -40,7 +40,7 @@ rust_library( "std", ], crate_root = "src/lib.rs", - edition = "2021", + edition = "2024", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -98,10 +98,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.11.4", + version = "2.14.0", deps = [ "@vendor_ts__equivalent-1.0.2//:equivalent", - "@vendor_ts__hashbrown-0.15.5//:hashbrown", + "@vendor_ts__hashbrown-0.17.1//:hashbrown", "@vendor_ts__serde_core-1.0.228//:serde_core", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indoc-2.0.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indoc-2.0.7.bazel new file mode 100644 index 000000000000..f3a9dea14d42 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indoc-2.0.7.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_proc_macro( + name = "indoc", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=indoc", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.7", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libloading-0.8.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libloading-0.8.9.bazel new file mode 100644 index 000000000000..e87fddeaaa5c --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libloading-0.8.9.bazel @@ -0,0 +1,190 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "libloading", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2015", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=libloading", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.9", + deps = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-apple-ios": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-linux-android": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows) + ], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:armv7-linux-androideabi": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-apple-darwin": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-linux-android": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows) + ], + "@rules_rust//rust/platform:i686-unknown-freebsd": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-apple-ios": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-linux-android": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "@vendor_ts__windows-link-0.2.0//:windows_link", # cfg(windows) + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "@vendor_ts__cfg-if-1.0.3//:cfg_if", # cfg(unix) + ], + "//conditions:default": [], + }), +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.minimal-lexical-0.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.minimal-lexical-0.2.1.bazel new file mode 100644 index 000000000000..40e1e2259be6 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.minimal-lexical-0.2.1.bazel @@ -0,0 +1,100 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "minimal_lexical", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=minimal-lexical", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nom-7.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nom-7.1.3.bazel new file mode 100644 index 000000000000..b1524d8a86d9 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nom-7.1.3.bazel @@ -0,0 +1,105 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "nom", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=nom", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "7.1.3", + deps = [ + "@vendor_ts__memchr-2.7.5//:memchr", + "@vendor_ts__minimal-lexical-0.2.1//:minimal_lexical", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pathdiff-0.2.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pathdiff-0.2.3.bazel new file mode 100644 index 000000000000..48df9a3c3d89 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pathdiff-0.2.3.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "pathdiff", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=pathdiff", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.3", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel index 1ad22b9f498f..675b426dd1ab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.6.5.bazel @@ -102,6 +102,6 @@ rust_library( version = "0.6.5", deps = [ "@vendor_ts__fixedbitset-0.4.2//:fixedbitset", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf-0.13.1.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf-0.13.1.bazel index 3ad30e38760d..8c41939eb97f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf-0.13.1.bazel @@ -17,7 +17,7 @@ cargo_toml_env_vars( ) rust_library( - name = "toml_parser", + name = "phf", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -35,7 +35,7 @@ rust_library( ], ), crate_features = [ - "alloc", + "default", "std", ], crate_root = "src/lib.rs", @@ -48,7 +48,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=toml_parser", + "crate-name=phf", "manual", "noclippy", "norustfmt", @@ -97,8 +97,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.3", + version = "0.13.1", deps = [ - "@vendor_ts__winnow-0.7.13//:winnow", + "@vendor_ts__phf_shared-0.13.1//:phf_shared", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_generator-0.13.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_generator-0.13.1.bazel new file mode 100644 index 000000000000..c270102428d2 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_generator-0.13.1.bazel @@ -0,0 +1,101 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "phf_generator", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=phf_generator", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.13.1", + deps = [ + "@vendor_ts__fastrand-2.4.1//:fastrand", + "@vendor_ts__phf_shared-0.13.1//:phf_shared", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_shared-0.13.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_shared-0.13.1.bazel new file mode 100644 index 000000000000..164cee335225 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.phf_shared-0.13.1.bazel @@ -0,0 +1,104 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "phf_shared", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=phf_shared", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.13.1", + deps = [ + "@vendor_ts__siphasher-1.0.3//:siphasher", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.prettyplease-0.2.37.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.prettyplease-0.2.37.bazel index a495f639d420..5d0886807cb8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.prettyplease-0.2.37.bazel @@ -21,7 +21,7 @@ cargo_toml_env_vars( ) rust_library( - name = "semver", + name = "prettyplease", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -39,12 +39,10 @@ rust_library( ], ), crate_features = [ - "default", - "serde", - "std", + "verbatim", ], crate_root = "src/lib.rs", - edition = "2018", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -53,7 +51,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=semver", + "crate-name=prettyplease", "manual", "noclippy", "norustfmt", @@ -102,10 +100,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.26", + version = "0.2.37", deps = [ - "@vendor_ts__semver-1.0.26//:build_script_build", - "@vendor_ts__serde-1.0.228//:serde", + "@vendor_ts__prettyplease-0.2.37//:build_script_build", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", + "@vendor_ts__syn-2.0.106//:syn", ], ) @@ -129,9 +128,7 @@ cargo_build_script( ], ), crate_features = [ - "default", - "serde", - "std", + "verbatim", ], crate_name = "build_script_build", crate_root = "build.rs", @@ -147,8 +144,9 @@ cargo_build_script( "WORKSPACE.bazel", ], ), - edition = "2018", - pkg_name = "semver", + edition = "2021", + links = "prettyplease02", + pkg_name = "prettyplease", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -157,12 +155,12 @@ cargo_build_script( ], tags = [ "cargo-bazel", - "crate-name=semver", + "crate-name=prettyplease", "manual", "noclippy", "norustfmt", ], - version = "1.0.26", + version = "0.2.37", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro-crate-3.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro-crate-3.5.0.bazel new file mode 100644 index 000000000000..0ae50367face --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro-crate-3.5.0.bazel @@ -0,0 +1,100 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "proc_macro_crate", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=proc-macro-crate", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "3.5.0", + deps = [ + "@vendor_ts__toml_edit-0.25.11-spec-1.1.0//:toml_edit", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel index 60cece39191b..073916cafe78 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.301.bazel @@ -108,7 +108,7 @@ rust_library( version = "0.0.301", deps = [ "@vendor_ts__dashmap-6.1.0//:dashmap", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", @@ -117,7 +117,7 @@ rust_library( "@vendor_ts__ra_ap_vfs-0.0.301//:ra_ap_vfs", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__salsa-0.23.0//:salsa", - "@vendor_ts__semver-1.0.26//:semver", + "@vendor_ts__semver-1.0.28//:semver", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel index c1272206d934..2d77b3cb351a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.301.bazel @@ -109,7 +109,7 @@ rust_library( deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", "@vendor_ts__either-1.15.0//:either", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__ra_ap_base_db-0.0.301//:ra_ap_base_db", "@vendor_ts__ra_ap_cfg-0.0.301//:ra_ap_cfg", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel index bd85f440ba5d..caaa0ae151ed 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.301.bazel @@ -117,7 +117,7 @@ rust_library( "@vendor_ts__drop_bomb-0.1.5//:drop_bomb", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__ra-ap-rustc_abi-0.123.0//:ra_ap_rustc_abi", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel index 2dbbe4f77179..23f08b414914 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.301.bazel @@ -118,7 +118,7 @@ rust_library( "@vendor_ts__cov-mark-2.1.0//:cov_mark", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__ena-0.14.3//:ena", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__oorandom-11.1.5//:oorandom", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel index 66d015a2efbf..b004cb57d399 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.301.bazel @@ -116,7 +116,7 @@ rust_library( "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__line-index-0.1.2//:line_index", "@vendor_ts__memchr-2.7.5//:memchr", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel index 12961c51aec0..f0e9033583f7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.301.bazel @@ -105,7 +105,7 @@ rust_library( }), version = "0.0.301", deps = [ - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__ra_ap_intern-0.0.301//:ra_ap_intern", "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", "@vendor_ts__ra_ap_span-0.0.301//:ra_ap_span", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel index 8f551d7bd0b8..0939c28b54b1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.301.bazel @@ -119,7 +119,7 @@ rust_library( "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", "@vendor_ts__ra_ap_toolchain-0.0.301//:ra_ap_toolchain", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__semver-1.0.26//:semver", + "@vendor_ts__semver-1.0.28//:semver", "@vendor_ts__serde-1.0.228//:serde", "@vendor_ts__serde_json-1.0.145//:serde_json", "@vendor_ts__temp-dir-0.1.16//:temp_dir", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel index 67dd8bdd6104..4508df3a376f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.301.bazel @@ -101,7 +101,7 @@ rust_library( deps = [ "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__fst-0.4.7//:fst", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__nohash-hasher-0.2.0//:nohash_hasher", "@vendor_ts__ra_ap_paths-0.0.301//:ra_ap_paths", "@vendor_ts__ra_ap_stdx-0.0.301//:ra_ap_stdx", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.relative-path-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.relative-path-2.0.1.bazel new file mode 100644 index 000000000000..67aef624737c --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.relative-path-2.0.1.bazel @@ -0,0 +1,101 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "relative_path", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=relative-path", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-0.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-0.10.0.bazel new file mode 100644 index 000000000000..3c57513b3d3b --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-0.10.0.bazel @@ -0,0 +1,112 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "rquickjs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "bindgen", + "default", + "loader", + "macro", + "phf", + "rquickjs-macro", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__rquickjs-macro-0.10.0//:rquickjs_macro", + ], + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=rquickjs", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.10.0", + deps = [ + "@vendor_ts__rquickjs-core-0.10.0//:rquickjs_core", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-core-0.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-core-0.10.0.bazel new file mode 100644 index 000000000000..415c9ee4e4b3 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-core-0.10.0.bazel @@ -0,0 +1,110 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "rquickjs_core", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "bindgen", + "loader", + "phf", + "relative-path", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=rquickjs-core", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.10.0", + deps = [ + "@vendor_ts__hashbrown-0.16.1//:hashbrown", + "@vendor_ts__phf-0.13.1//:phf", + "@vendor_ts__relative-path-2.0.1//:relative_path", + "@vendor_ts__rquickjs-sys-0.10.0//:rquickjs_sys", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-macro-0.10.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-macro-0.10.0.bazel new file mode 100644 index 000000000000..055e627f3bed --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-macro-0.10.0.bazel @@ -0,0 +1,116 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_proc_macro( + name = "rquickjs_macro", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "bindgen", + "phf", + "phf_generator", + "phf_shared", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=rquickjs-macro", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.10.0", + deps = [ + "@vendor_ts__convert_case-0.8.0//:convert_case", + "@vendor_ts__fnv-1.0.7//:fnv", + "@vendor_ts__ident_case-1.0.1//:ident_case", + "@vendor_ts__indexmap-2.14.0//:indexmap", + "@vendor_ts__phf_generator-0.13.1//:phf_generator", + "@vendor_ts__phf_shared-0.13.1//:phf_shared", + "@vendor_ts__proc-macro-crate-3.5.0//:proc_macro_crate", + "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", + "@vendor_ts__quote-1.0.41//:quote", + "@vendor_ts__rquickjs-core-0.10.0//:rquickjs_core", + "@vendor_ts__syn-2.0.106//:syn", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-swift-0.7.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-sys-0.10.0.bazel similarity index 89% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-swift-0.7.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-sys-0.10.0.bazel index f9bb6fa50c38..185637f6ba47 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-swift-0.7.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rquickjs-sys-0.10.0.bazel @@ -21,7 +21,7 @@ cargo_toml_env_vars( ) rust_library( - name = "tree_sitter_swift", + name = "rquickjs_sys", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -38,8 +38,12 @@ rust_library( "WORKSPACE.bazel", ], ), - crate_root = "bindings/rust/lib.rs", - edition = "2018", + crate_features = [ + "bindgen", + "bindgen-rs", + ], + crate_root = "src/lib.rs", + edition = "2021", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -48,7 +52,7 @@ rust_library( ], tags = [ "cargo-bazel", - "crate-name=tree-sitter-swift", + "crate-name=rquickjs-sys", "manual", "noclippy", "norustfmt", @@ -97,10 +101,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.7.2", + version = "0.10.0", deps = [ - "@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language", - "@vendor_ts__tree-sitter-swift-0.7.2//:build_script_build", + "@vendor_ts__rquickjs-sys-0.10.0//:build_script_build", ], ) @@ -110,6 +113,9 @@ cargo_build_script( include = ["**/*.rs"], allow_empty = True, ), + aliases = { + "@vendor_ts__bindgen-0.72.1//:bindgen": "bindgen_rs", + }, compile_data = glob( include = ["**"], allow_empty = True, @@ -123,8 +129,12 @@ cargo_build_script( "WORKSPACE.bazel", ], ), + crate_features = [ + "bindgen", + "bindgen-rs", + ], crate_name = "build_script_build", - crate_root = "bindings/rust/build.rs", + crate_root = "build.rs", data = glob( include = ["**"], allow_empty = True, @@ -137,8 +147,8 @@ cargo_build_script( "WORKSPACE.bazel", ], ), - edition = "2018", - pkg_name = "tree-sitter-swift", + edition = "2021", + pkg_name = "rquickjs-sys", rustc_env_files = [ ":cargo_toml_env_vars", ], @@ -147,14 +157,15 @@ cargo_build_script( ], tags = [ "cargo-bazel", - "crate-name=tree-sitter-swift", + "crate-name=rquickjs-sys", "manual", "noclippy", "norustfmt", ], - version = "0.7.2", + version = "0.10.0", visibility = ["//visibility:private"], deps = [ + "@vendor_ts__bindgen-0.72.1//:bindgen", "@vendor_ts__cc-1.2.61//:cc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel index 25fcd798c654..5e02ff49c087 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.23.0.bazel @@ -109,7 +109,7 @@ rust_library( "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", "@vendor_ts__hashbrown-0.15.5//:hashbrown", "@vendor_ts__hashlink-0.10.0//:hashlink", - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__intrusive-collections-0.9.7//:intrusive_collections", "@vendor_ts__papaya-0.2.3//:papaya", "@vendor_ts__parking_lot-0.12.4//:parking_lot", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel new file mode 100644 index 000000000000..5c659d959e2c --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel @@ -0,0 +1,108 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "semver", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + aliases = { + "@vendor_ts__serde_core-1.0.228//:serde_core": "serde", + }, + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "serde", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=semver", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.28", + deps = [ + "@vendor_ts__serde_core-1.0.228//:serde_core", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel index eaee1ee4b284..dbbf22985e33 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.145.bazel @@ -173,49 +173,49 @@ rust_library( "@vendor_ts__serde_json-1.0.145//:build_script_build", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # aarch64-apple-darwin + "@vendor_ts__indexmap-2.14.0//:indexmap", # aarch64-apple-darwin ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # aarch64-pc-windows-msvc + "@vendor_ts__indexmap-2.14.0//:indexmap", # aarch64-pc-windows-msvc ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # aarch64-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # aarch64-unknown-linux-gnu ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # arm-unknown-linux-gnueabi + "@vendor_ts__indexmap-2.14.0//:indexmap", # arm-unknown-linux-gnueabi ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # i686-pc-windows-msvc + "@vendor_ts__indexmap-2.14.0//:indexmap", # i686-pc-windows-msvc ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # i686-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # i686-unknown-linux-gnu ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # powerpc-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # powerpc-unknown-linux-gnu ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # riscv64gc-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # riscv64gc-unknown-linux-gnu ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # s390x-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # s390x-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # x86_64-apple-darwin + "@vendor_ts__indexmap-2.14.0//:indexmap", # x86_64-apple-darwin ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # x86_64-pc-windows-msvc + "@vendor_ts__indexmap-2.14.0//:indexmap", # x86_64-pc-windows-msvc ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # x86_64-unknown-freebsd + "@vendor_ts__indexmap-2.14.0//:indexmap", # x86_64-unknown-freebsd ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # x86_64-unknown-linux-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # x86_64-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__indexmap-2.11.4//:indexmap", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "@vendor_ts__indexmap-2.14.0//:indexmap", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel index 42f05a8553a0..1cb0484417b3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel @@ -95,7 +95,7 @@ rust_library( }), version = "0.9.34+deprecated", deps = [ - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__itoa-1.0.15//:itoa", "@vendor_ts__ryu-1.0.20//:ryu", "@vendor_ts__serde-1.0.228//:serde", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.siphasher-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.siphasher-1.0.3.bazel new file mode 100644 index 000000000000..472af635f83e --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.siphasher-1.0.3.bazel @@ -0,0 +1,101 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "siphasher", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=siphasher", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.3", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallbitvec-2.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallbitvec-2.6.1.bazel new file mode 100644 index 000000000000..6dc39e352601 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallbitvec-2.6.1.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "smallbitvec", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=smallbitvec", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.6.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.18.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.18.bazel index 3e1ae194c3b9..7ba5989625a1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.18.bazel @@ -45,7 +45,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__thiserror-impl-2.0.16//:thiserror_impl", + "@vendor_ts__thiserror-impl-2.0.18//:thiserror_impl", ], rustc_env_files = [ ":cargo_toml_env_vars", @@ -104,9 +104,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.16", + version = "2.0.18", deps = [ - "@vendor_ts__thiserror-2.0.16//:build_script_build", + "@vendor_ts__thiserror-2.0.18//:build_script_build", ], ) @@ -162,7 +162,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "2.0.16", + version = "2.0.18", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.18.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.18.bazel index 9d87f60d5d14..1c39cdf06597 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.16.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.18.bazel @@ -93,7 +93,7 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.16", + version = "2.0.18", deps = [ "@vendor_ts__proc-macro2-1.0.101//:proc_macro2", "@vendor_ts__quote-1.0.41//:quote", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel index 04609ea84f5a..fad5edad1a26 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.9.7.bazel @@ -105,7 +105,7 @@ rust_library( "@vendor_ts__serde_core-1.0.228//:serde_core", "@vendor_ts__serde_spanned-1.0.2//:serde_spanned", "@vendor_ts__toml_datetime-0.7.2//:toml_datetime", - "@vendor_ts__toml_parser-1.0.3//:toml_parser", + "@vendor_ts__toml_parser-1.1.2-spec-1.1.0//:toml_parser", "@vendor_ts__toml_writer-1.0.3//:toml_writer", "@vendor_ts__winnow-0.7.13//:winnow", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.1+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.1+spec-1.1.0.bazel new file mode 100644 index 000000000000..a4809f145b60 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.1+spec-1.1.0.bazel @@ -0,0 +1,102 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "toml_datetime", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2024", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=toml_datetime", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.1.1+spec-1.1.0", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel index b8a2048b67fb..bdee26270825 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel @@ -100,7 +100,7 @@ rust_library( }), version = "0.22.27", deps = [ - "@vendor_ts__indexmap-2.11.4//:indexmap", + "@vendor_ts__indexmap-2.14.0//:indexmap", "@vendor_ts__serde-1.0.228//:serde", "@vendor_ts__serde_spanned-0.6.9//:serde_spanned", "@vendor_ts__toml_datetime-0.6.11//:toml_datetime", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.25.11+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.25.11+spec-1.1.0.bazel new file mode 100644 index 000000000000..596127714520 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.25.11+spec-1.1.0.bazel @@ -0,0 +1,106 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "toml_edit", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "parse", + ], + crate_root = "src/lib.rs", + edition = "2024", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=toml_edit", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.25.11+spec-1.1.0", + deps = [ + "@vendor_ts__indexmap-2.14.0//:indexmap", + "@vendor_ts__toml_datetime-1.1.1-spec-1.1.0//:toml_datetime", + "@vendor_ts__toml_parser-1.1.2-spec-1.1.0//:toml_parser", + "@vendor_ts__winnow-1.0.2//:winnow", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.2+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.2+spec-1.1.0.bazel new file mode 100644 index 000000000000..4504ea44e88a --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.2+spec-1.1.0.bazel @@ -0,0 +1,151 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "toml_parser", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "std", + ] + select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "default", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "default", # aarch64-pc-windows-msvc + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "default", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "default", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "default", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "default", # i686-pc-windows-msvc + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "default", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "default", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "default", # riscv64gc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "default", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "default", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "default", # x86_64-pc-windows-msvc + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "default", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "default", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "default", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), + crate_root = "src/lib.rs", + edition = "2024", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=toml_parser", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.1.2+spec-1.1.0", + deps = [ + "@vendor_ts__winnow-1.0.2//:winnow", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.topological-sort-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.topological-sort-0.2.2.bazel new file mode 100644 index 000000000000..4cba2e919677 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.topological-sort-0.2.2.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "topological_sort", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=topological-sort", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.2", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-generate-0.26.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-generate-0.26.8.bazel new file mode 100644 index 000000000000..12951a955489 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-generate-0.26.8.bazel @@ -0,0 +1,124 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "tree_sitter_generate", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "load", + "pathdiff", + "qjs-rt", + "rquickjs", + ], + crate_root = "src/generate.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__indoc-2.0.7//:indoc", + ], + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=tree-sitter-generate", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.26.8", + deps = [ + "@vendor_ts__bitflags-2.9.4//:bitflags", + "@vendor_ts__dunce-1.0.5//:dunce", + "@vendor_ts__indexmap-2.14.0//:indexmap", + "@vendor_ts__log-0.4.28//:log", + "@vendor_ts__pathdiff-0.2.3//:pathdiff", + "@vendor_ts__regex-1.11.3//:regex", + "@vendor_ts__regex-syntax-0.8.6//:regex_syntax", + "@vendor_ts__rquickjs-0.10.0//:rquickjs", + "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", + "@vendor_ts__semver-1.0.28//:semver", + "@vendor_ts__serde-1.0.228//:serde", + "@vendor_ts__serde_json-1.0.145//:serde_json", + "@vendor_ts__smallbitvec-2.6.1//:smallbitvec", + "@vendor_ts__thiserror-2.0.18//:thiserror", + "@vendor_ts__topological-sort-0.2.2//:topological_sort", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-segmentation-1.13.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-segmentation-1.13.2.bazel new file mode 100644 index 000000000000..020b1bf1a716 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-segmentation-1.13.2.bazel @@ -0,0 +1,97 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "unicode_segmentation", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=unicode-segmentation", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.13.2", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.2.bazel new file mode 100644 index 000000000000..e9d478c9c660 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.2.bazel @@ -0,0 +1,220 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "winnow", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [ + "alloc", # aarch64-apple-darwin + "ascii", # aarch64-apple-darwin + "binary", # aarch64-apple-darwin + "default", # aarch64-apple-darwin + "parser", # aarch64-apple-darwin + "std", # aarch64-apple-darwin + ], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "alloc", # aarch64-pc-windows-msvc + "ascii", # aarch64-pc-windows-msvc + "binary", # aarch64-pc-windows-msvc + "default", # aarch64-pc-windows-msvc + "parser", # aarch64-pc-windows-msvc + "std", # aarch64-pc-windows-msvc + ], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ + "alloc", # aarch64-unknown-linux-gnu + "ascii", # aarch64-unknown-linux-gnu + "binary", # aarch64-unknown-linux-gnu + "default", # aarch64-unknown-linux-gnu + "parser", # aarch64-unknown-linux-gnu + "std", # aarch64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ + "alloc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "ascii", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "binary", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "default", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "parser", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "std", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + ], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ + "alloc", # arm-unknown-linux-gnueabi + "ascii", # arm-unknown-linux-gnueabi + "binary", # arm-unknown-linux-gnueabi + "default", # arm-unknown-linux-gnueabi + "parser", # arm-unknown-linux-gnueabi + "std", # arm-unknown-linux-gnueabi + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "alloc", # i686-pc-windows-msvc + "ascii", # i686-pc-windows-msvc + "binary", # i686-pc-windows-msvc + "default", # i686-pc-windows-msvc + "parser", # i686-pc-windows-msvc + "std", # i686-pc-windows-msvc + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "alloc", # i686-unknown-linux-gnu + "ascii", # i686-unknown-linux-gnu + "binary", # i686-unknown-linux-gnu + "default", # i686-unknown-linux-gnu + "parser", # i686-unknown-linux-gnu + "std", # i686-unknown-linux-gnu + ], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ + "alloc", # powerpc-unknown-linux-gnu + "ascii", # powerpc-unknown-linux-gnu + "binary", # powerpc-unknown-linux-gnu + "default", # powerpc-unknown-linux-gnu + "parser", # powerpc-unknown-linux-gnu + "std", # powerpc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ + "alloc", # riscv64gc-unknown-linux-gnu + "ascii", # riscv64gc-unknown-linux-gnu + "binary", # riscv64gc-unknown-linux-gnu + "default", # riscv64gc-unknown-linux-gnu + "parser", # riscv64gc-unknown-linux-gnu + "std", # riscv64gc-unknown-linux-gnu + ], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ + "alloc", # s390x-unknown-linux-gnu + "ascii", # s390x-unknown-linux-gnu + "binary", # s390x-unknown-linux-gnu + "default", # s390x-unknown-linux-gnu + "parser", # s390x-unknown-linux-gnu + "std", # s390x-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-apple-darwin": [ + "alloc", # x86_64-apple-darwin + "ascii", # x86_64-apple-darwin + "binary", # x86_64-apple-darwin + "default", # x86_64-apple-darwin + "parser", # x86_64-apple-darwin + "std", # x86_64-apple-darwin + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "alloc", # x86_64-pc-windows-msvc + "ascii", # x86_64-pc-windows-msvc + "binary", # x86_64-pc-windows-msvc + "default", # x86_64-pc-windows-msvc + "parser", # x86_64-pc-windows-msvc + "std", # x86_64-pc-windows-msvc + ], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ + "alloc", # x86_64-unknown-freebsd + "ascii", # x86_64-unknown-freebsd + "binary", # x86_64-unknown-freebsd + "default", # x86_64-unknown-freebsd + "parser", # x86_64-unknown-freebsd + "std", # x86_64-unknown-freebsd + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "alloc", # x86_64-unknown-linux-gnu + "ascii", # x86_64-unknown-linux-gnu + "binary", # x86_64-unknown-linux-gnu + "default", # x86_64-unknown-linux-gnu + "parser", # x86_64-unknown-linux-gnu + "std", # x86_64-unknown-linux-gnu + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "alloc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "ascii", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "binary", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "default", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "parser", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "std", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + ], + "//conditions:default": [], + }), + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=winnow", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.2", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index 4f70edd6ab37..11842460638f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -415,7 +415,11 @@ _NORMAL_DEPENDENCIES = { "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.20//:tracing_subscriber"), "tree-sitter": Label("@vendor_ts__tree-sitter-0.26.8//:tree_sitter"), "tree-sitter-embedded-template": Label("@vendor_ts__tree-sitter-embedded-template-0.25.0//:tree_sitter_embedded_template"), - "tree-sitter-swift": Label("@vendor_ts__tree-sitter-swift-0.7.2//:tree_sitter_swift"), + }, + }, + "unified/extractor/tree-sitter-swift": { + _COMMON_CONDITION: { + "tree-sitter-language": Label("@vendor_ts__tree-sitter-language-0.1.5//:tree_sitter_language"), }, }, } @@ -456,6 +460,10 @@ _NORMAL_ALIASES = { _COMMON_CONDITION: { }, }, + "unified/extractor/tree-sitter-swift": { + _COMMON_CONDITION: { + }, + }, } _NORMAL_DEV_DEPENDENCIES = { @@ -482,6 +490,8 @@ _NORMAL_DEV_DEPENDENCIES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _NORMAL_DEV_ALIASES = { @@ -505,6 +515,8 @@ _NORMAL_DEV_ALIASES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _PROC_MACRO_DEPENDENCIES = { @@ -526,6 +538,8 @@ _PROC_MACRO_DEPENDENCIES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _PROC_MACRO_ALIASES = { @@ -547,6 +561,8 @@ _PROC_MACRO_ALIASES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _PROC_MACRO_DEV_DEPENDENCIES = { @@ -568,6 +584,8 @@ _PROC_MACRO_DEV_DEPENDENCIES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _PROC_MACRO_DEV_ALIASES = { @@ -591,6 +609,8 @@ _PROC_MACRO_DEV_ALIASES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _BUILD_DEPENDENCIES = { @@ -612,6 +632,12 @@ _BUILD_DEPENDENCIES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + _COMMON_CONDITION: { + "cc": Label("@vendor_ts__cc-1.2.61//:cc"), + "tree-sitter-generate": Label("@vendor_ts__tree-sitter-generate-0.26.8//:tree_sitter_generate"), + }, + }, } _BUILD_ALIASES = { @@ -633,6 +659,10 @@ _BUILD_ALIASES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + _COMMON_CONDITION: { + }, + }, } _BUILD_PROC_MACRO_DEPENDENCIES = { @@ -654,6 +684,8 @@ _BUILD_PROC_MACRO_DEPENDENCIES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _BUILD_PROC_MACRO_ALIASES = { @@ -675,6 +707,8 @@ _BUILD_PROC_MACRO_ALIASES = { }, "unified/extractor": { }, + "unified/extractor/tree-sitter-swift": { + }, } _CONDITIONS = { @@ -916,6 +950,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.base64-0.22.1.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__bindgen-0.72.1", + sha256 = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895", + type = "tar.gz", + urls = ["https://static.crates.io/crates/bindgen/0.72.1/download"], + strip_prefix = "bindgen-0.72.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bindgen-0.72.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__bitflags-1.3.2", @@ -1036,6 +1080,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cc-1.2.61.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__cexpr-0.6.0", + sha256 = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766", + type = "tar.gz", + urls = ["https://static.crates.io/crates/cexpr/0.6.0/download"], + strip_prefix = "cexpr-0.6.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cexpr-0.6.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__cfg-if-1.0.3", @@ -1126,6 +1180,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.42.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__clang-sys-1.8.1", + sha256 = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4", + type = "tar.gz", + urls = ["https://static.crates.io/crates/clang-sys/1.8.1/download"], + strip_prefix = "clang-sys-1.8.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clang-sys-1.8.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__clap-4.5.48", @@ -1176,6 +1240,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.colorchoice-1.0.4.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__convert_case-0.8.0", + sha256 = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f", + type = "tar.gz", + urls = ["https://static.crates.io/crates/convert_case/0.8.0/download"], + strip_prefix = "convert_case-0.8.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.convert_case-0.8.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__core-foundation-sys-0.8.7", @@ -1466,6 +1540,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.erased-serde-0.4.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__fastrand-2.4.1", + sha256 = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6", + type = "tar.gz", + urls = ["https://static.crates.io/crates/fastrand/2.4.1/download"], + strip_prefix = "fastrand-2.4.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.fastrand-2.4.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__figment-0.10.19", @@ -1526,6 +1610,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.1.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__foldhash-0.2.0", + sha256 = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb", + type = "tar.gz", + urls = ["https://static.crates.io/crates/foldhash/0.2.0/download"], + strip_prefix = "foldhash-0.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.2.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__form_urlencoded-1.2.2", @@ -1626,6 +1720,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.15.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__hashbrown-0.16.1", + sha256 = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100", + type = "tar.gz", + urls = ["https://static.crates.io/crates/hashbrown/0.16.1/download"], + strip_prefix = "hashbrown-0.16.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.16.1.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__hashbrown-0.17.1", + sha256 = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/hashbrown/0.17.1/download"], + strip_prefix = "hashbrown-0.17.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hashbrown-0.17.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__hashlink-0.10.0", @@ -1808,12 +1922,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__indexmap-2.11.4", - sha256 = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5", + name = "vendor_ts__indexmap-2.14.0", + sha256 = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9", type = "tar.gz", - urls = ["https://static.crates.io/crates/indexmap/2.11.4/download"], - strip_prefix = "indexmap-2.11.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indexmap-2.11.4.bazel"), + urls = ["https://static.crates.io/crates/indexmap/2.14.0/download"], + strip_prefix = "indexmap-2.14.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indexmap-2.14.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__indoc-2.0.7", + sha256 = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706", + type = "tar.gz", + urls = ["https://static.crates.io/crates/indoc/2.0.7/download"], + strip_prefix = "indoc-2.0.7", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.indoc-2.0.7.bazel"), ) maybe( @@ -1976,6 +2100,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.175.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__libloading-0.8.9", + sha256 = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55", + type = "tar.gz", + urls = ["https://static.crates.io/crates/libloading/0.8.9/download"], + strip_prefix = "libloading-0.8.9", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libloading-0.8.9.bazel"), + ) + maybe( http_archive, name = "vendor_ts__line-index-0.1.2", @@ -2056,6 +2190,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.memoffset-0.9.1.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__minimal-lexical-0.2.1", + sha256 = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/minimal-lexical/0.2.1/download"], + strip_prefix = "minimal-lexical-0.2.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.minimal-lexical-0.2.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__miniz_oxide-0.8.9", @@ -2106,6 +2250,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nohash-hasher-0.2.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__nom-7.1.3", + sha256 = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/nom/7.1.3/download"], + strip_prefix = "nom-7.1.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.nom-7.1.3.bazel"), + ) + maybe( http_archive, name = "vendor_ts__notify-8.2.0", @@ -2246,6 +2400,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.parking_lot_core-0.9.11.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__pathdiff-0.2.3", + sha256 = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3", + type = "tar.gz", + urls = ["https://static.crates.io/crates/pathdiff/0.2.3/download"], + strip_prefix = "pathdiff-0.2.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.pathdiff-0.2.3.bazel"), + ) + maybe( http_archive, name = "vendor_ts__pear-0.2.9", @@ -2306,6 +2470,36 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.petgraph-0.6.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__phf-0.13.1", + sha256 = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf", + type = "tar.gz", + urls = ["https://static.crates.io/crates/phf/0.13.1/download"], + strip_prefix = "phf-0.13.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf-0.13.1.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__phf_generator-0.13.1", + sha256 = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737", + type = "tar.gz", + urls = ["https://static.crates.io/crates/phf_generator/0.13.1/download"], + strip_prefix = "phf_generator-0.13.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf_generator-0.13.1.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__phf_shared-0.13.1", + sha256 = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266", + type = "tar.gz", + urls = ["https://static.crates.io/crates/phf_shared/0.13.1/download"], + strip_prefix = "phf_shared-0.13.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.phf_shared-0.13.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__pin-project-lite-0.2.16", @@ -2366,6 +2560,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ppv-lite86-0.2.21.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__prettyplease-0.2.37", + sha256 = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b", + type = "tar.gz", + urls = ["https://static.crates.io/crates/prettyplease/0.2.37/download"], + strip_prefix = "prettyplease-0.2.37", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.prettyplease-0.2.37.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__proc-macro-crate-3.5.0", + sha256 = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f", + type = "tar.gz", + urls = ["https://static.crates.io/crates/proc-macro-crate/3.5.0/download"], + strip_prefix = "proc-macro-crate-3.5.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro-crate-3.5.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__proc-macro2-1.0.101", @@ -2846,6 +3060,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.regex-syntax-0.8.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__relative-path-2.0.1", + sha256 = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0", + type = "tar.gz", + urls = ["https://static.crates.io/crates/relative-path/2.0.1/download"], + strip_prefix = "relative-path-2.0.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.relative-path-2.0.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__rowan-0.15.15", @@ -2856,6 +3080,46 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rowan-0.15.15.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__rquickjs-0.10.0", + sha256 = "a135375fbac5ba723bb6a48f432a72f81539cedde422f0121a86c7c4e96d8e0d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rquickjs/0.10.0/download"], + strip_prefix = "rquickjs-0.10.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-0.10.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__rquickjs-core-0.10.0", + sha256 = "bccb7121a123865c8ace4dea42e7ed84d78b90cbaf4ca32c59849d8d210c9672", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rquickjs-core/0.10.0/download"], + strip_prefix = "rquickjs-core-0.10.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-core-0.10.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__rquickjs-macro-0.10.0", + sha256 = "89f93602cc3112c7f30bf5f29e722784232138692c7df4c52ebbac7e035d900d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rquickjs-macro/0.10.0/download"], + strip_prefix = "rquickjs-macro-0.10.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-macro-0.10.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__rquickjs-sys-0.10.0", + sha256 = "57b1b6528590d4d65dc86b5159eae2d0219709546644c66408b2441696d1d725", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rquickjs-sys/0.10.0/download"], + strip_prefix = "rquickjs-sys-0.10.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rquickjs-sys-0.10.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__rustc-hash-1.1.0", @@ -3018,12 +3282,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__semver-1.0.26", - sha256 = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0", + name = "vendor_ts__semver-1.0.28", + sha256 = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd", type = "tar.gz", - urls = ["https://static.crates.io/crates/semver/1.0.26/download"], - strip_prefix = "semver-1.0.26", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.semver-1.0.26.bazel"), + urls = ["https://static.crates.io/crates/semver/1.0.28/download"], + strip_prefix = "semver-1.0.28", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.semver-1.0.28.bazel"), ) maybe( @@ -3156,6 +3420,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.shlex-1.3.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__siphasher-1.0.3", + sha256 = "8ee5873ec9cce0195efcb7a4e9507a04cd49aec9c83d0389df45b1ef7ba2e649", + type = "tar.gz", + urls = ["https://static.crates.io/crates/siphasher/1.0.3/download"], + strip_prefix = "siphasher-1.0.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.siphasher-1.0.3.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__smallbitvec-2.6.1", + sha256 = "9b0e903ee191d8f7a8fbf0d712c3a1699d19e04ceba5ad1eb673053c7d938a09", + type = "tar.gz", + urls = ["https://static.crates.io/crates/smallbitvec/2.6.1/download"], + strip_prefix = "smallbitvec-2.6.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.smallbitvec-2.6.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__smallvec-1.15.1", @@ -3258,22 +3542,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__thiserror-2.0.16", - sha256 = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0", + name = "vendor_ts__thiserror-2.0.18", + sha256 = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4", type = "tar.gz", - urls = ["https://static.crates.io/crates/thiserror/2.0.16/download"], - strip_prefix = "thiserror-2.0.16", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-2.0.16.bazel"), + urls = ["https://static.crates.io/crates/thiserror/2.0.18/download"], + strip_prefix = "thiserror-2.0.18", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-2.0.18.bazel"), ) maybe( http_archive, - name = "vendor_ts__thiserror-impl-2.0.16", - sha256 = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960", + name = "vendor_ts__thiserror-impl-2.0.18", + sha256 = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5", type = "tar.gz", - urls = ["https://static.crates.io/crates/thiserror-impl/2.0.16/download"], - strip_prefix = "thiserror-impl-2.0.16", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-impl-2.0.16.bazel"), + urls = ["https://static.crates.io/crates/thiserror-impl/2.0.18/download"], + strip_prefix = "thiserror-impl-2.0.18", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-impl-2.0.18.bazel"), ) maybe( @@ -3366,6 +3650,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-0.7.2.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__toml_datetime-1.1.1-spec-1.1.0", + sha256 = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7", + type = "tar.gz", + urls = ["https://static.crates.io/crates/toml_datetime/1.1.1+spec-1.1.0/download"], + strip_prefix = "toml_datetime-1.1.1+spec-1.1.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-1.1.1+spec-1.1.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__toml_edit-0.22.27", @@ -3378,12 +3672,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__toml_parser-1.0.3", - sha256 = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627", + name = "vendor_ts__toml_edit-0.25.11-spec-1.1.0", + sha256 = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b", type = "tar.gz", - urls = ["https://static.crates.io/crates/toml_parser/1.0.3/download"], - strip_prefix = "toml_parser-1.0.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_parser-1.0.3.bazel"), + urls = ["https://static.crates.io/crates/toml_edit/0.25.11+spec-1.1.0/download"], + strip_prefix = "toml_edit-0.25.11+spec-1.1.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_edit-0.25.11+spec-1.1.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__toml_parser-1.1.2-spec-1.1.0", + sha256 = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526", + type = "tar.gz", + urls = ["https://static.crates.io/crates/toml_parser/1.1.2+spec-1.1.0/download"], + strip_prefix = "toml_parser-1.1.2+spec-1.1.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_parser-1.1.2+spec-1.1.0.bazel"), ) maybe( @@ -3406,6 +3710,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_writer-1.0.3.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__topological-sort-0.2.2", + sha256 = "ea68304e134ecd095ac6c3574494fc62b909f416c4fca77e440530221e549d3d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/topological-sort/0.2.2/download"], + strip_prefix = "topological-sort-0.2.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.topological-sort-0.2.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__tracing-0.1.41", @@ -3486,6 +3800,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-embedded-template-0.25.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__tree-sitter-generate-0.26.8", + sha256 = "c3fb2e1bdb1d5f9d23cd5fa68cf98b3bedbd223c92a2edd60bbcf30bcf7180a5", + type = "tar.gz", + urls = ["https://static.crates.io/crates/tree-sitter-generate/0.26.8/download"], + strip_prefix = "tree-sitter-generate-0.26.8", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-generate-0.26.8.bazel"), + ) + maybe( http_archive, name = "vendor_ts__tree-sitter-json-0.24.8", @@ -3536,16 +3860,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-ruby-0.23.1.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__tree-sitter-swift-0.7.2", - sha256 = "f3b98fb6bc8e6a6a10023f401aa6a1858115e849dfaf7de57dd8b8ea0f257bd9", - type = "tar.gz", - urls = ["https://static.crates.io/crates/tree-sitter-swift/0.7.2/download"], - strip_prefix = "tree-sitter-swift-0.7.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tree-sitter-swift-0.7.2.bazel"), - ) - maybe( http_archive, name = "vendor_ts__triomphe-0.1.14", @@ -3616,6 +3930,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-properties-0.1.3.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__unicode-segmentation-1.13.2", + sha256 = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/unicode-segmentation/1.13.2/download"], + strip_prefix = "unicode-segmentation-1.13.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unicode-segmentation-1.13.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__unicode-xid-0.2.6", @@ -4086,6 +4410,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-0.7.13.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__winnow-1.0.2", + sha256 = "2ee1708bef14716a11bae175f579062d4554d95be2c6829f518df847b7b3fdd0", + type = "tar.gz", + urls = ["https://static.crates.io/crates/winnow/1.0.2/download"], + strip_prefix = "winnow-1.0.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-1.0.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__wit-bindgen-0.45.1", @@ -4239,6 +4573,7 @@ def crate_repositories(): return [ struct(repo = "vendor_ts__anyhow-1.0.100", is_dev_dep = False), struct(repo = "vendor_ts__argfile-0.2.1", is_dev_dep = False), + struct(repo = "vendor_ts__cc-1.2.61", is_dev_dep = False), struct(repo = "vendor_ts__chalk-ir-0.104.0", is_dev_dep = False), struct(repo = "vendor_ts__chrono-0.4.42", is_dev_dep = False), struct(repo = "vendor_ts__clap-4.5.48", is_dev_dep = False), @@ -4285,9 +4620,10 @@ def crate_repositories(): struct(repo = "vendor_ts__tracing-subscriber-0.3.20", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-0.26.8", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-embedded-template-0.25.0", is_dev_dep = False), + struct(repo = "vendor_ts__tree-sitter-generate-0.26.8", is_dev_dep = False), + struct(repo = "vendor_ts__tree-sitter-language-0.1.5", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-python-0.23.6", is_dev_dep = False), struct(repo = "vendor_ts__tree-sitter-ruby-0.23.1", is_dev_dep = False), - struct(repo = "vendor_ts__tree-sitter-swift-0.7.2", is_dev_dep = False), struct(repo = "vendor_ts__triomphe-0.1.14", is_dev_dep = False), struct(repo = "vendor_ts__ungrammar-1.16.1", is_dev_dep = False), struct(repo = "vendor_ts__zstd-0.13.3", is_dev_dep = False), diff --git a/unified/extractor/BUILD.bazel b/unified/extractor/BUILD.bazel index 5a53d7cc3e07..80ca1c0057b3 100644 --- a/unified/extractor/BUILD.bazel +++ b/unified/extractor/BUILD.bazel @@ -16,5 +16,6 @@ codeql_rust_binary( ) + [ "//shared/tree-sitter-extractor", "//shared/yeast", + "//unified/extractor/tree-sitter-swift", ], ) diff --git a/unified/extractor/Cargo.toml b/unified/extractor/Cargo.toml index 3877ec2e106f..39c20598b1ff 100644 --- a/unified/extractor/Cargo.toml +++ b/unified/extractor/Cargo.toml @@ -9,7 +9,7 @@ edition = "2024" [dependencies] tree-sitter = ">= 0.23.0" tree-sitter-embedded-template = "0.25.0" -tree-sitter-swift = "0.7.2" +tree-sitter-swift = { path = "tree-sitter-swift" } clap = { version = "4.5", features = ["derive"] } tracing = "0.1" tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } diff --git a/unified/extractor/tree-sitter-swift/.gitignore b/unified/extractor/tree-sitter-swift/.gitignore new file mode 100644 index 000000000000..53796875297e --- /dev/null +++ b/unified/extractor/tree-sitter-swift/.gitignore @@ -0,0 +1,9 @@ +# Generated by tree-sitter from grammar.js. The Cargo build script +# (bindings/rust/build.rs) and Bazel's cargo_build_script regenerate them into +# OUT_DIR. The tree-sitter CLI (parse, test, playground, etc.) expects them in +# src/, so contributors can run `tree-sitter generate` locally to populate +# these — they are intentionally untracked. +src/parser.c +src/grammar.json +src/node-types.json +src/tree_sitter/ diff --git a/unified/extractor/tree-sitter-swift/BUILD.bazel b/unified/extractor/tree-sitter-swift/BUILD.bazel new file mode 100644 index 000000000000..f865f22a1420 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/BUILD.bazel @@ -0,0 +1,42 @@ +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") +load("//misc/bazel/3rdparty/tree_sitter_extractors_deps:defs.bzl", "aliases", "all_crate_deps") + +package(default_visibility = ["//visibility:public"]) + +# This will run the build script from the root of the workspace, and +# collect the outputs. +cargo_build_script( + name = "tree-sitter-swift-build", + srcs = ["bindings/rust/build.rs"], + data = glob([ + "src/scanner.c", + ]) + [ + "grammar.js", + ], + deps = all_crate_deps( + build = True, + ), +) + +rust_library( + name = "tree-sitter-swift", + srcs = [ + "bindings/rust/lib.rs", + ], + aliases = aliases(), + compile_data = glob([ + "src/**", + "queries/**", + ]) + [ + "grammar.js", + ], + proc_macro_deps = all_crate_deps( + proc_macro = True, + ), + deps = [":tree-sitter-swift-build"] + all_crate_deps( + normal = True, + ), +) + +exports_files(["Cargo.toml"]) diff --git a/unified/extractor/tree-sitter-swift/Cargo.toml b/unified/extractor/tree-sitter-swift/Cargo.toml new file mode 100644 index 000000000000..8cec03889a83 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "tree-sitter-swift" +description = "Swift grammar for the tree-sitter parsing library (vendored copy for the unified extractor)" +version = "0.7.2" +keywords = ["incremental", "parsing", "swift"] +categories = ["parsing", "text-editors"] +repository = "https://github.com/alex-pinkus/tree-sitter-swift" +edition = "2024" +license = "MIT" + +build = "bindings/rust/build.rs" + +[lib] +path = "bindings/rust/lib.rs" + +# When updating these dependencies, run `misc/bazel/3rdparty/update_cargo_deps.sh` +[dependencies] +tree-sitter-language = "0.1" + +[build-dependencies] +cc = "1.2" +tree-sitter-generate = "0.26.8" diff --git a/unified/extractor/tree-sitter-swift/LICENSE b/unified/extractor/tree-sitter-swift/LICENSE new file mode 100644 index 000000000000..f158d7005311 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 alex-pinkus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/unified/extractor/tree-sitter-swift/README.md b/unified/extractor/tree-sitter-swift/README.md new file mode 100644 index 000000000000..5b54f4b617f6 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/README.md @@ -0,0 +1,127 @@ +![Parse rate badge](https://byob.yarr.is/alex-pinkus/tree-sitter-swift/parse_rate) +[![Crates.io badge](https://byob.yarr.is/alex-pinkus/tree-sitter-swift/crates_io_version)](https://crates.io/crates/tree-sitter-swift) +[![NPM badge](https://byob.yarr.is/alex-pinkus/tree-sitter-swift/npm_version)](https://www.npmjs.com/package/tree-sitter-swift) +[![Build](https://github.com/alex-pinkus/tree-sitter-swift/actions/workflows/top-repos.yml/badge.svg)](https://github.com/alex-pinkus/tree-sitter-swift/actions/workflows/top-repos.yml) + +# tree-sitter-swift + +This contains a [`tree-sitter`](https://tree-sitter.github.io/tree-sitter) grammar for the Swift programming language. + +## Getting started + +To use this parser to parse Swift code, you'll want to depend on either the Rust crate or the NPM package. + +### Rust + +To use the Rust crate, you'll add this to your `Cargo.toml`: + +``` +tree-sitter = "0.23.0" +tree-sitter-swift = "=0.7.0" +``` + +Then you can use a `tree-sitter` parser with the language declared here: + +``` +let mut parser = tree_sitter::Parser::new(); +parser.set_language(tree_sitter_swift::language())?; + +// ... + +let tree = parser.parse(&my_source_code, None) + .ok_or_else(|| /* error handling code */)?; +``` + +### Javascript + +To use this from NPM, you'll add similar dependencies to `package.json`: + +``` +"dependencies: { + "tree-sitter-swift": "0.7.0", + "tree-sitter": "^0.22.1" +} +``` + +Your usage of the parser will look like: + +``` +const Parser = require("tree-sitter"); +const Swift = require("tree-sitter-swift"); + +const parser = new Parser(); +parser.setLanguage(Swift); + +// ... + +const tree = parser.parse(mySourceCode); +``` + +### Editing the grammar + +With this package checked out, a common workflow for editing the grammar will look something like: + +1. Make a change to `grammar.ts`. +2. Run `npm install && npm test` to see whether the change has had impact on existing parsing behavior. The default + `npm test` target requires `valgrind` to be installed; if you do not have it installed, and do not wish to, you can + substitute `tree-sitter test` directly. +3. Run `tree-sitter parse` on some real Swift codebase and see whether (or where) it fails. +4. Use any failures to create new corpus test cases. + +## Contributions + +All contributions to this repository are welcome. + +If said contribution is to check generated files (e.g., `parser.c`) into the repository, be aware that your contribution will not be accepted. Make sure to read the [FAQ entry](https://github.com/alex-pinkus/tree-sitter-swift?tab=readme-ov-file#where-is-your-parserc) and the [prior](https://github.com/alex-pinkus/tree-sitter-swift/issues/362) [discussions](https://github.com/alex-pinkus/tree-sitter-swift/pull/315) and [compromises](https://github.com/alex-pinkus/tree-sitter-swift/issues/149) that have occurred already on this topic. + +## Using tree-sitter-swift in Web Assembly + +To use tree-sitter-swift as a language for the web bindings version tree-sitter, which will likely be a more modern version than the published node +module. [see](https://github.com/tree-sitter/tree-sitter/blob/master/lib/binding_web/README.md). Follow the instructions below + +1. Install the node modules `npm install web-tree-sitter tree-sitter-swift` +2. Run the tree-sitter cli to create the wasm bundle + ```sh + $ npx tree-sitter build-asm ./node_modules/tree-sitter + ``` +3. Boot tree-sitter wasm like this. + +```js +const Parser = require("web-tree-sitter"); +async function run() { + //needs to happen first + await Parser.init(); + //wait for the load of swift + const Swift = await Parser.Language.load("./tree-sitter-swift.wasm"); + + const parser = new Parser(); + parser.setLanguage(Swift); + + //Parse your swift code here. + const tree = parser.parse('print("Hello, World!")'); +} +//if you want to run this +run().then(console.log, console.error); +``` + +## Frequently asked questions + +### Where is your `parser.c`? + +This repository currently omits most of the code that is autogenerated during a build. This means, for instance, that +`grammar.json` and `parser.c` are both only available following a build. It also significantly reduces noise during +diffs. + +The side benefit of not checking in `parser.c` is that you can guarantee backwards compatibility. Parsers generated by +the tree-sitter CLI aren't always backwards compatible. If you need a parser, generate it yourself using the CLI; all +the information to do so is available in this package. By doing that, you'll also know for sure that your parser version +and your library version are compatible. + +If you need a `parser.c`, and you don't care about the tree-sitter version, but you don't have a local setup that would +allow you to obtain the parser, you can just download one from a recent workflow run in this package. To do so: + +- Go to the [GitHub actions page](https://github.com/alex-pinkus/tree-sitter-swift/actions) for this + repository. +- Click on the "Publish `grammar.json` and `parser.c`" action for the appropriate commit. +- Go down to `Artifacts` and click on `generated-parser-src`. All the relevant parser files will be available in your + download. diff --git a/unified/extractor/tree-sitter-swift/binding.gyp b/unified/extractor/tree-sitter-swift/binding.gyp new file mode 100644 index 000000000000..4d9270af7d47 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/binding.gyp @@ -0,0 +1,44 @@ +{ + "targets": [ + { + "target_name": "tree_sitter_swift_binding", + "dependencies": [ + " + +typedef struct TSLanguage TSLanguage; + +extern "C" TSLanguage *tree_sitter_swift(); + +// "tree-sitter", "language" hashed with BLAKE2 +const napi_type_tag LANGUAGE_TYPE_TAG = { + 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16 +}; + +Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports["name"] = Napi::String::New(env, "swift"); + auto language = Napi::External::New(env, tree_sitter_swift()); + language.TypeTag(&LANGUAGE_TYPE_TAG); + exports["language"] = language; + return exports; +} + +NODE_API_MODULE(tree_sitter_swift_binding, Init) diff --git a/unified/extractor/tree-sitter-swift/bindings/node/index.js b/unified/extractor/tree-sitter-swift/bindings/node/index.js new file mode 100644 index 000000000000..6657bcf42dec --- /dev/null +++ b/unified/extractor/tree-sitter-swift/bindings/node/index.js @@ -0,0 +1,7 @@ +const root = require("path").join(__dirname, "..", ".."); + +module.exports = require("node-gyp-build")(root); + +try { + module.exports.nodeTypeInfo = require("../../src/node-types.json"); +} catch (_) {} diff --git a/unified/extractor/tree-sitter-swift/bindings/rust/build.rs b/unified/extractor/tree-sitter-swift/bindings/rust/build.rs new file mode 100644 index 000000000000..6b939358ed4b --- /dev/null +++ b/unified/extractor/tree-sitter-swift/bindings/rust/build.rs @@ -0,0 +1,49 @@ +use std::env; +use std::path::PathBuf; + +fn main() { + // tree-sitter-generate produces parser.c, grammar.json, node-types.json, + // and src/tree_sitter/*.h headers from grammar.js. We write them into + // OUT_DIR so the build is sandbox-friendly and we don't litter the source + // tree. + let crate_dir: PathBuf = env::var("CARGO_MANIFEST_DIR").unwrap().into(); + let out_dir: PathBuf = env::var("OUT_DIR").unwrap().into(); + let grammar_js = crate_dir.join("grammar.js"); + + tree_sitter_generate::generate_parser_in_directory( + &crate_dir, + Some(&out_dir), + Some(&grammar_js), + tree_sitter_generate::ABI_VERSION_MAX, + None, + None, + true, + tree_sitter_generate::OptLevel::default(), + ) + .expect("failed to generate tree-sitter-swift parser"); + + let mut c_config = cc::Build::new(); + c_config + .std("c11") + .include(&out_dir) + .include(out_dir.join("tree_sitter")); + + #[cfg(target_env = "msvc")] + c_config.flag("-utf-8"); + + c_config.file(out_dir.join("parser.c")); + + // scanner.c is hand-written and lives in the source tree. + let scanner_path = crate_dir.join("src").join("scanner.c"); + c_config.include(crate_dir.join("src")).file(&scanner_path); + + println!("cargo:rerun-if-changed={}", grammar_js.to_str().unwrap()); + println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); + // Re-export OUT_DIR so consumers can include_str! the generated files. + println!( + "cargo:rustc-env=TREE_SITTER_SWIFT_OUT_DIR={}", + out_dir.to_str().unwrap() + ); + + c_config.compile("tree-sitter-swift"); +} diff --git a/unified/extractor/tree-sitter-swift/bindings/rust/lib.rs b/unified/extractor/tree-sitter-swift/bindings/rust/lib.rs new file mode 100644 index 000000000000..891df87778f0 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/bindings/rust/lib.rs @@ -0,0 +1,68 @@ +//! This crate provides Swift language support for the [tree-sitter][] parsing library. +//! +//! Typically, you will use the [language][language func] function to add this language to a +//! tree-sitter [Parser][], and then use the parser to parse some code: +//! +//! ``` +//! let code = r#" +//! "#; +//! let mut parser = tree_sitter::Parser::new(); +//! let language = tree_sitter_swift::LANGUAGE; +//! parser +//! .set_language(&language.into()) +//! .expect("Error loading Swift parser"); +//! let tree = parser.parse(code, None).unwrap(); +//! assert!(!tree.root_node().has_error()); +//! ``` +//! +//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html +//! [language func]: fn.language.html +//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +//! [tree-sitter]: https://tree-sitter.github.io/ + +use tree_sitter_language::LanguageFn; + +unsafe extern "C" { + fn tree_sitter_swift() -> *const (); +} + +/// The tree-sitter [`LanguageFn`] for this grammar. +pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_swift) }; + +/// The content of the [`node-types.json`][] file for this grammar. +/// +/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types +pub const NODE_TYPES: &str = include_str!(concat!(env!("TREE_SITTER_SWIFT_OUT_DIR"), "/node-types.json")); + +pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); +pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm"); +pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); +pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); + +#[cfg(test)] +mod tests { + #[test] + fn test_can_load_grammar() { + let mut parser = tree_sitter::Parser::new(); + parser + .set_language(&super::LANGUAGE.into()) + .expect("Error loading Swift parser"); + } + + #[test] + fn test_can_parse_basic_file() { + let mut parser = tree_sitter::Parser::new(); + parser + .set_language(&super::LANGUAGE.into()) + .expect("Error loading Swift parser"); + + let tree = parser + .parse("_ = \"Hello!\"\n", None) + .expect("Unable to parse!"); + + assert_eq!( + "(source_file (assignment target: (directly_assignable_expression (simple_identifier)) result: (line_string_literal text: (line_str_text))))", + tree.root_node().to_sexp(), + ); + } +} diff --git a/unified/extractor/tree-sitter-swift/grammar.js b/unified/extractor/tree-sitter-swift/grammar.js new file mode 100644 index 000000000000..5f4e85547ad4 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/grammar.js @@ -0,0 +1,2109 @@ +"use strict"; +/* + * MIT License + * + * Copyright (c) 2021 alex-pinkus + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +const PRECS = { + multiplication: 11, + addition: 10, + infix_operations: 9, + nil_coalescing: 8, + check: 7, + prefix_operations: 7, + comparison: 6, + postfix_operations: 6, + equality: 5, + conjunction: 4, + disjunction: 3, + block: 2, + loop: 1, + keypath: 1, + parameter_pack: 1, + control_transfer: 0, + as: -1, + tuple: -1, + if: -1, + switch: -1, + do: -1, + fully_open_range: -1, + range: -1, + navigation: -1, + expr: -1, + ty: -1, + call: -2, + ternary: -2, + try: -2, + call_suffix: -2, + range_suffix: -2, + ternary_binary_suffix: -2, + await: -2, + assignment: -3, + comment: -3, + lambda: -3, + regex: -4, +}; + +const DYNAMIC_PRECS = { + call: 1, +}; + +const DEC_DIGITS = token(sep1(/[0-9]+/, /_+/)); +const HEX_DIGITS = token(sep1(/[0-9a-fA-F]+/, /_+/)); +const OCT_DIGITS = token(sep1(/[0-7]+/, /_+/)); +const BIN_DIGITS = token(sep1(/[01]+/, /_+/)); +const REAL_EXPONENT = token(seq(/[eE]/, optional(/[+-]/), DEC_DIGITS)); +const HEX_REAL_EXPONENT = token(seq(/[pP]/, optional(/[+-]/), DEC_DIGITS)); + +var LEXICAL_IDENTIFIER; + +if (tree_sitter_version_supports_emoji()) { + LEXICAL_IDENTIFIER = + /[_\p{XID_Start}\p{Emoji}&&[^0-9#*]](\p{EMod}|\x{FE0F}\x{20E3}?)?([_\p{XID_Continue}\p{Emoji}\x{200D}](\p{EMod}|\x{FE0F}\x{20E3}?)?)*/; +} else { + LEXICAL_IDENTIFIER = /[_\p{XID_Start}][_\p{XID_Continue}]*/; +} + +module.exports = grammar({ + name: "swift", + conflicts: ($) => [ + // @Type(... could either be an annotation constructor invocation or an annotated expression + [$.attribute], + [$._attribute_argument], + // Is `foo { ... }` a constructor invocation or function invocation? + [$._simple_user_type, $._expression], + // To support nested types A.B not being interpreted as `(navigation_expression ... (type_identifier)) (navigation_suffix)` + [$.user_type], + // How to tell the difference between Foo.bar(with:and:), and Foo.bar(with: smth, and: other)? You need GLR + [$.value_argument], + // { (foo, bar) ... + [$._expression, $.lambda_parameter], + [$._primary_expression, $.lambda_parameter], + // (start: start, end: end) + [$._tuple_type_item_identifier, $.tuple_expression], + // After a `{` in a function or switch context, it's ambigous whether we're starting a set of local statements or + // applying some modifiers to a capture or pattern. + [$.modifiers], + // `+(...)` is ambigously either "call the function produced by a reference to the operator `+`" or "use the unary + // operator `+` on the result of the parenthetical expression." + [$._additive_operator, $._prefix_unary_operator], + [$._referenceable_operator, $._prefix_unary_operator], + // `{ [self, b, c] ...` could be a capture list or an array literal depending on what else happens. + [$.capture_list_item, $._expression], + [$.capture_list_item, $._expression, $._simple_user_type], + [$._primary_expression, $.capture_list_item], + // a ? b : c () could be calling c(), or it could be calling a function that's produced by the result of + // `(a ? b : c)`. We have a small hack to force it to be the former of these by intentionally introducing a + // conflict. + [$.call_suffix, $.expr_hack_at_ternary_binary_call_suffix], + // try {expression} is a bit magic and applies quite broadly: `try foo()` and `try foo { }` show that this is right + // associative, and `try foo ? bar() : baz` even more so. But it doesn't always win: something like + // `if try foo { } ...` should award its braces to the `if`. In order to make this actually happen, we need to parse + // all the options and pick the best one that doesn't error out. + [$.try_expression, $._unary_expression], + [$.try_expression, $._expression], + // await {expression} has the same special cases as `try`. + [$.await_expression, $._unary_expression], + [$.await_expression, $._expression], + // In a computed property, when you see an @attribute, it's not yet clear if that's going to be for a + // locally-declared class or a getter / setter specifier. + [ + $._local_property_declaration, + $._local_typealias_declaration, + $._local_function_declaration, + $._local_class_declaration, + $.computed_getter, + $.computed_modify, + $.computed_setter, + ], + // The `class` modifier is legal in many of the same positions that a class declaration itself would be. + [$._bodyless_function_declaration, $.property_modifier], + [$.init_declaration, $.property_modifier], + // Patterns, man + [$._navigable_type_expression, $._case_pattern], + [$._no_expr_pattern_already_bound, $._binding_pattern_no_expr], + + // On encountering a closure starting with `{ @Foo ...`, we don't yet know if that attribute applies to the closure + // type or to a declaration within the closure. What a mess! We just have to hope that if we keep going, only one of + // those will parse (because there will be an `in` or a `let`). + [ + $._lambda_type_declaration, + $._local_property_declaration, + $._local_typealias_declaration, + $._local_function_declaration, + $._local_class_declaration, + ], + + // We want `foo() { }` to be treated as one function call, but we _also_ want `if foo() { ... }` to be treated as a + // full if-statement. This means we have to treat it as a conflict rather than purely a left or right associative + // construct, and let the parser realize that the second expression won't parse properly with the `{ ... }` as a + // lambda. + [$.constructor_suffix], + [$.call_suffix], + + // `actor` is allowed to be an identifier, even though it is also a locally permitted declaration. If we encounter + // it, the only way to know what it's meant to be is to keep going. + [$._modifierless_class_declaration, $.property_modifier], + [$._fn_call_lambda_arguments], + + // `borrowing` and `consuming` are legal as identifiers, but are also legal modifiers + [$.parameter_modifiers], + + // These are keywords sometimes, but simple identifiers other times, and it just depends on the rest of their usage. + [$._contextual_simple_identifier, $._modifierless_class_declaration], + [$._contextual_simple_identifier, $.property_behavior_modifier], + [$._contextual_simple_identifier, $.parameter_modifier], + [$._contextual_simple_identifier, $.type_parameter_pack], + [$._contextual_simple_identifier, $.type_pack_expansion], + [$._contextual_simple_identifier, $.visibility_modifier], + ], + extras: ($) => [ + $.comment, + $.multiline_comment, + /\s+/, // Whitespace + ], + externals: ($) => [ + // Comments and raw strings are parsed in a custom scanner because they require us to carry forward state to + // maintain symmetry. For instance, parsing a multiline comment requires us to increment a counter whenever we see + // `/*`, and decrement it whenever we see `*/`. A standard grammar would only be able to exit the comment at the + // first `*/` (like C does). Similarly, when you start a string with `##"`, you're required to include the same + // number of `#` symbols to end it. + $.multiline_comment, + $.raw_str_part, + $.raw_str_continuing_indicator, + $.raw_str_end_part, + // Because Swift doesn't have explicit semicolons, we also do some whitespace handling in a custom scanner. Line + // breaks are _sometimes_ meaningful as the end of a statement: try to write `let foo: Foo let bar: Bar`, for + // instance and the compiler will complain, but add either a newline or a semicolon and it's fine. We borrow the + // idea from the Kotlin grammar that a newline is sometimes a "semicolon". By including `\n` in both `_semi` and + // an anonymous `whitespace` extras, we _should_ be able to let the parser decide if a newline is meaningful. If the + // parser sees something like `foo.bar(1\n)`, it knows that a "semicolon" would not be valid there, so it parses + // that as whitespace. On the other hand, `let foo: Foo\n let bar: Bar` has a meaningful newline. + // Unfortunately, we can't simply stop at that. There are some expressions and statements that remain valid if you + // end them early, but are expected to be parsed across multiple lines. One particular nefarious example is a + // function declaration, where you might have something like `func foo(args: A) -> Foo throws where A: Hashable`. + // This would still be a valid declaration even if it ended after the `)`, the `Foo`, or the `throws`, so a grammar + // that simply interprets a newline as "sometimes a semi" would parse those incorrectly. + // To solve that case, our custom scanner must do a bit of extra lookahead itself. If we're about to generate a + // `_semi`, we advance a bit further to see if the next non-whitespace token would be one of these other operators. + // If so, we ignore the `_semi` and just produce the operator; if not, we produce the `_semi` and let the rest of + // the grammar sort it out. This isn't perfect, but it works well enough most of the time. + $._implicit_semi, + $._explicit_semi, + // Every one of the below operators will suppress a `_semi` if we encounter it after a newline. + $._arrow_operator_custom, + $._dot_custom, + $._conjunction_operator_custom, + $._disjunction_operator_custom, + $._nil_coalescing_operator_custom, + $._eq_custom, + $._eq_eq_custom, + $._plus_then_ws, + $._minus_then_ws, + $._bang_custom, + $._throws_keyword, + $._rethrows_keyword, + $.default_keyword, + $.where_keyword, + $["else"], + $.catch_keyword, + $._as_custom, + $._as_quest_custom, + $._as_bang_custom, + $._async_keyword_custom, + $._custom_operator, + $._hash_symbol_custom, + $._directive_if, + $._directive_elseif, + $._directive_else, + $._directive_endif, + + // Fake operator that will never get triggered, but follows the sequence of characters for `try!`. Tracked by the + // custom scanner so that it can avoid triggering `$.bang` for that case. + $._fake_try_bang, + ], + inline: ($) => [$._locally_permitted_modifiers], + rules: { + //////////////////////////////// + // File Structure + //////////////////////////////// + source_file: ($) => + seq( + optional($.shebang_line), + optional( + seq( + $._top_level_statement, + repeat(seq($._semi, $._top_level_statement)), + optional($._semi) + ) + ) + ), + _semi: ($) => choice($._implicit_semi, $._explicit_semi), + shebang_line: ($) => seq($._hash_symbol, "!", /[^\r\n]*/), + //////////////////////////////// + // Lexical Structure - https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html + //////////////////////////////// + comment: ($) => token(prec(PRECS.comment, seq("//", /.*/))), + // Identifiers + simple_identifier: ($) => + choice( + LEXICAL_IDENTIFIER, + /`[^\r\n` ]*`/, + /\$[0-9]+/, + token(seq("$", LEXICAL_IDENTIFIER)), + $._contextual_simple_identifier + ), + // Keywords that were added after they were already legal as identifiers. `tree-sitter` will prefer exact matches + // when parsing so unless we explicitly say that these are legal, the parser will interpret them as their keyword. + _contextual_simple_identifier: ($) => + choice( + "actor", + "async", + "each", + "lazy", + "repeat", + "package", + $._parameter_ownership_modifier + ), + identifier: ($) => sep1($.simple_identifier, $._dot), + // Literals + _basic_literal: ($) => + choice( + $.integer_literal, + $.hex_literal, + $.oct_literal, + $.bin_literal, + $.real_literal, + $.boolean_literal, + $._string_literal, + $.regex_literal, + "nil" + ), + real_literal: ($) => + token( + choice( + seq(DEC_DIGITS, REAL_EXPONENT), + seq(optional(DEC_DIGITS), ".", DEC_DIGITS, optional(REAL_EXPONENT)), + seq( + "0x", + HEX_DIGITS, + optional(seq(".", HEX_DIGITS)), + HEX_REAL_EXPONENT + ) + ) + ), + integer_literal: ($) => token(seq(optional(/[1-9]/), DEC_DIGITS)), + hex_literal: ($) => token(seq("0", /[xX]/, HEX_DIGITS)), + oct_literal: ($) => token(seq("0", /[oO]/, OCT_DIGITS)), + bin_literal: ($) => token(seq("0", /[bB]/, BIN_DIGITS)), + boolean_literal: ($) => choice("true", "false"), + // String literals + _string_literal: ($) => + choice( + $.line_string_literal, + $.multi_line_string_literal, + $.raw_string_literal + ), + line_string_literal: ($) => + seq( + '"', + repeat(choice(field("text", $._line_string_content), $._interpolation)), + '"' + ), + _line_string_content: ($) => choice($.line_str_text, $.str_escaped_char), + line_str_text: ($) => /[^\\"]+/, + str_escaped_char: ($) => + choice($._escaped_identifier, $._uni_character_literal), + _uni_character_literal: ($) => seq("\\", "u", /\{[0-9a-fA-F]+\}/), + multi_line_string_literal: ($) => + seq( + '"""', + repeat( + choice(field("text", $._multi_line_string_content), $._interpolation) + ), + '"""' + ), + raw_string_literal: ($) => + seq( + repeat( + seq( + field("text", $.raw_str_part), + field("interpolation", $.raw_str_interpolation), + optional($.raw_str_continuing_indicator) + ) + ), + field("text", $.raw_str_end_part) + ), + raw_str_interpolation: ($) => + seq($.raw_str_interpolation_start, $._interpolation_contents, ")"), + raw_str_interpolation_start: ($) => /\\#*\(/, + _multi_line_string_content: ($) => + choice($.multi_line_str_text, $.str_escaped_char, '"'), + _interpolation: ($) => seq("\\(", $._interpolation_contents, ")"), + _interpolation_contents: ($) => + sep1Opt( + field( + "interpolation", + alias($.value_argument, $.interpolated_expression) + ), + "," + ), + _escaped_identifier: ($) => /\\[0\\tnr"'\n]/, + multi_line_str_text: ($) => /[^\\"]+/, + // Based on https://gitlab.com/woolsweater/tree-sitter-swifter/-/blob/3d47c85bd47ce54cdf2023a9c0e01eb90adfcc1d/grammar.js#L1019 + // But required modifications to hit all of the cases in SE-354 + regex_literal: ($) => + choice( + $._extended_regex_literal, + $._multiline_regex_literal, + $._oneline_regex_literal + ), + + _extended_regex_literal: ($) => + seq($._hash_symbol, /\/((\/[^#])|[^\n])+\/#/), + + _multiline_regex_literal: ($) => + seq($._hash_symbol, /\/\n/, /(\/[^#]|[^/])*?\n\/#/), + + _oneline_regex_literal: ($) => + token( + prec( + PRECS.regex, + seq( + "/", + token.immediate(/[^ \t\n]?[^/\n]*[^ \t\n/]/), + token.immediate("/") + ) + ) + ), + //////////////////////////////// + // Types - https://docs.swift.org/swift-book/ReferenceManual/Types.html + //////////////////////////////// + type_annotation: ($) => + seq(":", field("type", $._possibly_implicitly_unwrapped_type)), + _possibly_implicitly_unwrapped_type: ($) => + seq($._type, optional(token.immediate("!"))), + _type: ($) => + prec.right( + PRECS.ty, + seq(optional($.type_modifiers), field("name", $._unannotated_type)) + ), + _unannotated_type: ($) => + prec.right( + PRECS.ty, + choice( + $.user_type, + $.tuple_type, + $.function_type, + $.array_type, + $.dictionary_type, + $.optional_type, + $.metatype, + $.opaque_type, + $.existential_type, + $.protocol_composition_type, + $.type_parameter_pack, + $.type_pack_expansion, + $.suppressed_constraint + ) + ), + // The grammar just calls this whole thing a `type-identifier` but that's a bit confusing. + user_type: ($) => sep1($._simple_user_type, $._dot), + _simple_user_type: ($) => + prec.right( + PRECS.ty, + seq( + alias($.simple_identifier, $.type_identifier), + optional($.type_arguments) + ) + ), + tuple_type: ($) => + choice( + seq( + "(", + optional(sep1Opt(field("element", $.tuple_type_item), ",")), + ")" + ), + alias($._parenthesized_type, $.tuple_type_item) + ), + tuple_type_item: ($) => + prec( + PRECS.expr, + seq( + optional($._tuple_type_item_identifier), + optional($.parameter_modifiers), + field("type", $._type) + ) + ), + _tuple_type_item_identifier: ($) => + prec( + PRECS.expr, + seq( + optional($.wildcard_pattern), + field("name", $.simple_identifier), + ":" + ) + ), + function_type: ($) => + seq( + field("params", choice($.tuple_type, $._unannotated_type)), + optional($._async_keyword), + optional(choice($.throws_clause, $.throws)), + $._arrow_operator, + field("return_type", $._type) + ), + array_type: ($) => seq("[", field("element", $._type), "]"), + dictionary_type: ($) => + seq("[", field("key", $._type), ":", field("value", $._type), "]"), + optional_type: ($) => + prec.left( + seq( + field( + "wrapped", + choice($.user_type, $.tuple_type, $.array_type, $.dictionary_type) + ), + repeat1(alias($._immediate_quest, "?")) + ) + ), + metatype: ($) => seq($._unannotated_type, ".", choice("Type", "Protocol")), + _quest: ($) => "?", + _immediate_quest: ($) => token.immediate("?"), + opaque_type: ($) => prec.right(seq("some", $._unannotated_type)), + existential_type: ($) => prec.right(seq("any", $._unannotated_type)), + type_parameter_pack: ($) => prec.left(seq("each", $._unannotated_type)), + type_pack_expansion: ($) => prec.left(seq("repeat", $._unannotated_type)), + protocol_composition_type: ($) => + prec.left( + seq( + $._unannotated_type, + repeat1(seq("&", prec.right($._unannotated_type))) + ) + ), + suppressed_constraint: ($) => + prec.right( + seq( + "~", + field("suppressed", alias($.simple_identifier, $.type_identifier)) + ) + ), + //////////////////////////////// + // Expressions - https://docs.swift.org/swift-book/ReferenceManual/Expressions.html + //////////////////////////////// + _expression: ($) => + prec( + PRECS.expr, + choice( + $.simple_identifier, + $._unary_expression, + $._binary_expression, + $.ternary_expression, + $._primary_expression, + $.if_statement, + $.switch_statement, + $.assignment, + $.value_parameter_pack, + $.value_pack_expansion, + seq($._expression, alias($._immediate_quest, "?")) + ) + ), + // Unary expressions + _unary_expression: ($) => + choice( + $.postfix_expression, + $.call_expression, + $.macro_invocation, + $.constructor_expression, + $.navigation_expression, + $.prefix_expression, + $.as_expression, + $.selector_expression, + $.open_start_range_expression, + $.open_end_range_expression, + $.directive, + $.diagnostic + ), + postfix_expression: ($) => + prec.left( + PRECS.postfix_operations, + seq( + field("target", $._expression), + field("operation", $._postfix_unary_operator) + ) + ), + constructor_expression: ($) => + prec( + PRECS.call, + seq( + field( + "constructed_type", + choice($.array_type, $.dictionary_type, $.user_type) + ), + $.constructor_suffix + ) + ), + _parenthesized_type: ($) => + seq( + "(", + field( + "element", + choice($.opaque_type, $.existential_type, $.dictionary_type) + ), + ")" + ), + navigation_expression: ($) => + prec.left( + PRECS.navigation, + seq( + field( + "target", + choice( + $._navigable_type_expression, + $._expression, + $._parenthesized_type + ) + ), + field("suffix", $.navigation_suffix) + ) + ), + _navigable_type_expression: ($) => + choice($.user_type, $.array_type, $.dictionary_type), + open_start_range_expression: ($) => + prec.right( + PRECS.range, + seq( + $._range_operator, + prec.right(PRECS.range_suffix, field("end", $._expression)) + ) + ), + _range_operator: ($) => + choice($._open_ended_range_operator, $._three_dot_operator), + open_end_range_expression: ($) => + prec.right( + PRECS.range, + seq(field("start", $._expression), $._three_dot_operator) + ), + prefix_expression: ($) => + prec.left( + PRECS.prefix_operations, + seq( + field("operation", $._prefix_unary_operator), + field( + "target", + choice( + $._expression, + alias(choice("async", "if", "switch"), $._expression) + ) + ) + ) + ), + as_expression: ($) => + prec.left( + PRECS.as, + seq(field("expr", $._expression), $.as_operator, field("type", $._type)) + ), + selector_expression: ($) => + seq( + $._hash_symbol, + "selector", + "(", + optional(choice("getter:", "setter:")), + $._expression, + ")" + ), + // Binary expressions + _binary_expression: ($) => + choice( + $.multiplicative_expression, + $.additive_expression, + $.range_expression, + $.infix_expression, + $.nil_coalescing_expression, + $.check_expression, + $.equality_expression, + $.comparison_expression, + $.conjunction_expression, + $.disjunction_expression, + $.bitwise_operation + ), + multiplicative_expression: ($) => + prec.left( + PRECS.multiplication, + seq( + field("lhs", $._expression), + field("op", $._multiplicative_operator), + field("rhs", $._expression) + ) + ), + additive_expression: ($) => + prec.left( + PRECS.addition, + seq( + field("lhs", $._expression), + field("op", $._additive_operator), + field("rhs", $._expression) + ) + ), + range_expression: ($) => + prec.right( + PRECS.range, + seq( + field("start", $._expression), + field("op", $._range_operator), + field("end", $._expr_hack_at_ternary_binary_suffix) + ) + ), + infix_expression: ($) => + prec.left( + PRECS.infix_operations, + seq( + field("lhs", $._expression), + field("op", $.custom_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + nil_coalescing_expression: ($) => + prec.right( + PRECS.nil_coalescing, + seq( + field("value", $._expression), + $._nil_coalescing_operator, + field("if_nil", $._expr_hack_at_ternary_binary_suffix) + ) + ), + check_expression: ($) => + prec.left( + PRECS.check, + seq( + field("target", $._expression), + field("op", $._is_operator), + field("type", $._type) + ) + ), + comparison_expression: ($) => + prec.left( + seq( + field("lhs", $._expression), + field("op", $._comparison_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + equality_expression: ($) => + prec.left( + PRECS.equality, + seq( + field("lhs", $._expression), + field("op", $._equality_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + conjunction_expression: ($) => + prec.left( + PRECS.conjunction, + seq( + field("lhs", $._expression), + field("op", $._conjunction_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + disjunction_expression: ($) => + prec.left( + PRECS.disjunction, + seq( + field("lhs", $._expression), + field("op", $._disjunction_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + bitwise_operation: ($) => + prec.left( + seq( + field("lhs", $._expression), + field("op", $._bitwise_binary_operator), + field("rhs", $._expr_hack_at_ternary_binary_suffix) + ) + ), + custom_operator: ($) => choice(token(/[\/]+[*]+/), $._custom_operator), + // Suffixes + navigation_suffix: ($) => + seq( + $._dot, + field("suffix", choice($.simple_identifier, $.integer_literal)) + ), + call_suffix: ($) => + prec( + PRECS.call_suffix, + choice( + $.value_arguments, + prec.dynamic(-1, $._fn_call_lambda_arguments), // Prefer to treat `foo() { }` as one call not two + seq($.value_arguments, $._fn_call_lambda_arguments) + ) + ), + constructor_suffix: ($) => + prec( + PRECS.call_suffix, + choice( + alias($._constructor_value_arguments, $.value_arguments), + prec.dynamic(-1, $._fn_call_lambda_arguments), // As above + seq( + alias($._constructor_value_arguments, $.value_arguments), + $._fn_call_lambda_arguments + ) + ) + ), + _constructor_value_arguments: ($) => + seq("(", optional(sep1Opt($.value_argument, ",")), ")"), + _fn_call_lambda_arguments: ($) => + sep1($.lambda_literal, seq(field("name", $.simple_identifier), ":")), + type_arguments: ($) => prec.left(seq("<", sep1Opt($._type, ","), ">")), + value_arguments: ($) => + seq( + choice( + seq("(", optional(sep1Opt($.value_argument, ",")), ")"), + seq("[", optional(sep1Opt($.value_argument, ",")), "]") + ) + ), + value_argument_label: ($) => + prec.left( + choice( + $.simple_identifier, + // We don't rely on $._contextual_simple_identifier here because + // these don't usually fall into that category. + alias("if", $.simple_identifier), + alias("switch", $.simple_identifier) + ) + ), + value_argument: ($) => + prec.left( + seq( + optional($.type_modifiers), + choice( + repeat1( + seq(field("reference_specifier", $.value_argument_label), ":") + ), + seq( + optional(seq(field("name", $.value_argument_label), ":")), + field("value", $._expression) + ) + ) + ) + ), + try_expression: ($) => + prec.right( + PRECS["try"], + seq( + $.try_operator, + field( + "expr", + choice( + // Prefer direct calls, e.g. `try foo()`, over indirect like `try a ? b() : c`. This allows us to have + // left associativity for the direct calls, which is technically wrong but is the only way to resolve the + // ambiguity of `if foo { ... }` in the correct direction. + prec.right(-2, $._expression), + prec.left(0, $._binary_expression), + prec.left(0, $.call_expression), + // Similarly special case the ternary expression, where `try` may come earlier than it is actually needed. + // When the parser just encounters some identifier after a `try`, it should prefer the `call_expression` (so + // this should be lower in priority than that), but when we encounter an ambiguous expression that might be + // either `try (foo() ? ...)` or `(try foo()) ? ...`, we should prefer the former. We accomplish that by + // giving it a _static precedence_ of -1 but a _dynamic precedence_ of 1. + prec.dynamic(1, prec.left(-1, $.ternary_expression)) + ) + ) + ) + ), + await_expression: ($) => + prec.right( + PRECS.await, + seq( + $._await_operator, + field( + "expr", + choice( + // Prefer direct calls over indirect (same as with `try`). + prec.right(-2, $._expression), + prec.left(0, $.call_expression), + // Special case ternary to `await` the whole thing (same as with `try`). + prec.dynamic(1, prec.left(-1, $.ternary_expression)) + ) + ) + ) + ), + _await_operator: ($) => alias("await", "await"), + ternary_expression: ($) => + prec.right( + PRECS.ternary, + seq( + field("condition", $._expression), + $._quest, + field("if_true", $._expression), + ":", + field("if_false", $._expr_hack_at_ternary_binary_suffix) + ) + ), + _expr_hack_at_ternary_binary_suffix: ($) => + prec.left( + PRECS.ternary_binary_suffix, + choice( + $._expression, + alias($.expr_hack_at_ternary_binary_call, $.call_expression) + ) + ), + expr_hack_at_ternary_binary_call: ($) => + seq( + $._expression, + alias($.expr_hack_at_ternary_binary_call_suffix, $.call_suffix) + ), + expr_hack_at_ternary_binary_call_suffix: ($) => + prec(PRECS.call_suffix, $.value_arguments), + call_expression: ($) => + prec( + PRECS.call, + prec.dynamic(DYNAMIC_PRECS.call, seq($._expression, $.call_suffix)) + ), + macro_invocation: ($) => + prec( + PRECS.call, + prec.dynamic( + DYNAMIC_PRECS.call, + seq( + $._hash_symbol, + $.simple_identifier, + optional($.type_parameters), + $.call_suffix + ) + ) + ), + _primary_expression: ($) => + choice( + $.tuple_expression, + $._basic_literal, + $.lambda_literal, + $.special_literal, + $.playground_literal, + $.array_literal, + $.dictionary_literal, + $.self_expression, + $.super_expression, + $.try_expression, + $.await_expression, + $._referenceable_operator, + $.key_path_expression, + $.key_path_string_expression, + prec.right( + PRECS.fully_open_range, + alias($._three_dot_operator, $.fully_open_range) + ) + ), + tuple_expression: ($) => + prec.right( + PRECS.tuple, + seq( + "(", + sep1Opt( + seq( + optional(seq(field("name", $.simple_identifier), ":")), + field("value", $._expression) + ), + "," + ), + ")" + ) + ), + array_literal: ($) => + seq("[", optional(sep1Opt(field("element", $._expression), ",")), "]"), + dictionary_literal: ($) => + seq( + "[", + choice(":", sep1Opt($._dictionary_literal_item, ",")), + optional(","), + "]" + ), + _dictionary_literal_item: ($) => + seq(field("key", $._expression), ":", field("value", $._expression)), + special_literal: ($) => + seq( + $._hash_symbol, + choice( + "file", + "fileID", + "filePath", + "line", + "column", + "function", + "dsohandle" + ) + ), + playground_literal: ($) => + seq( + $._hash_symbol, + choice("colorLiteral", "fileLiteral", "imageLiteral"), + "(", + sep1Opt(seq($.simple_identifier, ":", $._expression), ","), + ")" + ), + lambda_literal: ($) => + prec.left( + PRECS.lambda, + seq( + choice("{", "^{"), + optional($._lambda_type_declaration), + optional($.statements), + "}" + ) + ), + _lambda_type_declaration: ($) => + seq( + repeat($.attribute), + prec(PRECS.expr, optional(field("captures", $.capture_list))), + optional(field("type", $.lambda_function_type)), + "in" + ), + capture_list: ($) => seq("[", sep1Opt($.capture_list_item, ","), "]"), + capture_list_item: ($) => + choice( + field("name", $.self_expression), + prec( + PRECS.expr, + seq( + optional($.ownership_modifier), + field("name", $.simple_identifier), + optional(seq($._equal_sign, field("value", $._expression))) + ) + ) + ), + lambda_function_type: ($) => + prec( + PRECS.expr, + seq( + choice( + $.lambda_function_type_parameters, + seq("(", optional($.lambda_function_type_parameters), ")") + ), + optional($._async_keyword), + optional(choice($.throws_clause, $.throws)), + optional( + seq( + $._arrow_operator, + field("return_type", $._possibly_implicitly_unwrapped_type) + ) + ) + ) + ), + lambda_function_type_parameters: ($) => sep1Opt($.lambda_parameter, ","), + lambda_parameter: ($) => + seq( + choice( + $.self_expression, + prec(PRECS.expr, field("name", $.simple_identifier)), + prec( + PRECS.expr, + seq( + optional(field("external_name", $.simple_identifier)), + field("name", $.simple_identifier), + ":", + optional($.parameter_modifiers), + field("type", $._possibly_implicitly_unwrapped_type) + ) + ) + ) + ), + self_expression: ($) => "self", + super_expression: ($) => seq("super"), + _else_options: ($) => choice($._block, $.if_statement), + if_statement: ($) => + prec.right( + PRECS["if"], + seq( + "if", + sep1(field("condition", $._if_condition_sequence_item), ","), + $._block, + optional(seq($["else"], $._else_options)) + ) + ), + _if_condition_sequence_item: ($) => + choice($._if_let_binding, $._expression, $.availability_condition), + _if_let_binding: ($) => + seq( + $._direct_or_indirect_binding, + optional(seq($._equal_sign, $._expression)), + optional($.where_clause) + ), + guard_statement: ($) => + prec.right( + PRECS["if"], + seq( + "guard", + sep1(field("condition", $._if_condition_sequence_item), ","), + $["else"], + $._block + ) + ), + switch_statement: ($) => + prec.right( + PRECS["switch"], + seq( + "switch", + field("expr", $._expression), + "{", + repeat($.switch_entry), + "}" + ) + ), + switch_entry: ($) => + seq( + optional($.modifiers), + choice( + seq( + "case", + seq( + $.switch_pattern, + optional(seq($.where_keyword, $._expression)) + ), + repeat(seq(",", $.switch_pattern)) + ), + $.default_keyword + ), + ":", + $.statements, + optional("fallthrough") + ), + switch_pattern: ($) => alias($._binding_pattern_with_expr, $.pattern), + do_statement: ($) => + prec.right(PRECS["do"], seq("do", $._block, repeat($.catch_block))), + catch_block: ($) => + seq( + $.catch_keyword, + field("error", optional(alias($._binding_pattern_no_expr, $.pattern))), + optional($.where_clause), + $._block + ), + where_clause: ($) => prec.left(seq($.where_keyword, $._expression)), + key_path_expression: ($) => + prec.right( + PRECS.keypath, + seq( + "\\", + optional( + choice($._simple_user_type, $.array_type, $.dictionary_type) + ), + repeat(seq(".", $._key_path_component)) + ) + ), + key_path_string_expression: ($) => + prec.left(seq($._hash_symbol, "keyPath", "(", $._expression, ")")), + _key_path_component: ($) => + prec.left( + choice( + seq($.simple_identifier, repeat($._key_path_postfixes)), + repeat1($._key_path_postfixes) + ) + ), + _key_path_postfixes: ($) => + choice( + "?", + $.bang, + "self", + seq("[", optional(sep1($.value_argument, ",")), "]") + ), + try_operator: ($) => + prec.right( + seq("try", choice(optional($._try_operator_type), $._fake_try_bang)) + ), + _try_operator_type: ($) => + choice(token.immediate("!"), token.immediate("?")), + _assignment_and_operator: ($) => + choice("+=", "-=", "*=", "/=", "%=", $._equal_sign), + _equality_operator: ($) => choice("!=", "!==", $._eq_eq, "==="), + _comparison_operator: ($) => choice("<", ">", "<=", ">="), + _three_dot_operator: ($) => alias("...", "..."), // Weird alias to satisfy highlight queries + _open_ended_range_operator: ($) => alias("..<", "..<"), + _is_operator: ($) => "is", + _additive_operator: ($) => + choice( + alias($._plus_then_ws, "+"), + alias($._minus_then_ws, "-"), + "+", + "-" + ), + // The `/` operator conflicts with a regex literal (which itself appears to conflict with a + // comment, for some reason), so we must give it equivalent token precedence. + _multiplicative_operator: ($) => + choice("*", alias(token(prec(PRECS.regex, "/")), "/"), "%"), + as_operator: ($) => choice($._as, $._as_quest, $._as_bang), + _prefix_unary_operator: ($) => + prec.right( + choice( + "++", + "--", + "-", + "+", + $.bang, + "&", + "~", + $._dot, + $.custom_operator + ) + ), + _bitwise_binary_operator: ($) => choice("&", "|", "^", "<<", ">>"), + _postfix_unary_operator: ($) => choice("++", "--", $.bang), + directly_assignable_expression: ($) => $._expression, + + //////////////////////////////// + // Statements - https://docs.swift.org/swift-book/ReferenceManual/Statements.html + //////////////////////////////// + statements: ($) => + prec.left( + // Left precedence is required in switch statements + seq( + $._local_statement, + repeat(seq($._semi, $._local_statement)), + optional($._semi) + ) + ), + _local_statement: ($) => + choice( + $._expression, + $._local_declaration, + $._labeled_statement, + $.control_transfer_statement + ), + _top_level_statement: ($) => + choice( + $._expression, + $._global_declaration, + $._labeled_statement, + $._throw_statement + ), + _block: ($) => prec(PRECS.block, seq("{", optional($.statements), "}")), + _labeled_statement: ($) => + seq( + optional($.statement_label), + choice( + $.for_statement, + $.while_statement, + $.repeat_while_statement, + $.do_statement, + $.if_statement, + $.guard_statement, + $.switch_statement + ) + ), + statement_label: ($) => token(/[a-zA-Z_][a-zA-Z_0-9]*:/), + for_statement: ($) => + prec( + PRECS.loop, + seq( + "for", + optional($.try_operator), + optional($._await_operator), + field("item", alias($._binding_pattern_no_expr, $.pattern)), + optional($.type_annotation), + "in", + field("collection", $._for_statement_collection), + optional($.where_clause), + $._block + ) + ), + _for_statement_collection: ($) => + // If this expression has "await", this triggers some special-cased logic to prefer function calls. We prefer + // the opposite, though, since function calls may contain trailing code blocks, which are undesirable here. + // + // To fix that, we simply undo the special casing by defining our own `await_expression`. + choice($._expression, alias($.for_statement_await, $.await_expression)), + for_statement_await: ($) => seq($._await_operator, $._expression), + + while_statement: ($) => + prec( + PRECS.loop, + seq( + "while", + sep1(field("condition", $._if_condition_sequence_item), ","), + "{", + optional($.statements), + "}" + ) + ), + repeat_while_statement: ($) => + prec( + PRECS.loop, + seq( + "repeat", + "{", + optional($.statements), + "}", + // Make sure we make it to the `while` before assuming this is a parameter pack. + repeat($._implicit_semi), + "while", + sep1(field("condition", $._if_condition_sequence_item), ",") + ) + ), + control_transfer_statement: ($) => + choice( + prec.right(PRECS.control_transfer, $._throw_statement), + prec.right( + PRECS.control_transfer, + seq( + $._optionally_valueful_control_keyword, + field("result", optional($._expression)) + ) + ) + ), + _throw_statement: ($) => seq($.throw_keyword, $._expression), + throw_keyword: ($) => "throw", + _optionally_valueful_control_keyword: ($) => + choice("return", "continue", "break", "yield"), + assignment: ($) => + prec.left( + PRECS.assignment, + seq( + field("target", $.directly_assignable_expression), + field("operator", $._assignment_and_operator), + field("result", $._expression) + ) + ), + value_parameter_pack: ($) => + prec.left(PRECS.parameter_pack, seq("each", $._expression)), + value_pack_expansion: ($) => + prec.left(PRECS.parameter_pack, seq("repeat", $._expression)), + availability_condition: ($) => + seq( + $._hash_symbol, + choice("available", "unavailable"), + "(", + sep1Opt($._availability_argument, ","), + ")" + ), + _availability_argument: ($) => + choice(seq($.identifier, sep1($.integer_literal, ".")), "*"), + //////////////////////////////// + // Declarations - https://docs.swift.org/swift-book/ReferenceManual/Declarations.html + //////////////////////////////// + _global_declaration: ($) => + choice( + $.import_declaration, + $.property_declaration, + $.typealias_declaration, + $.function_declaration, + $.init_declaration, + $.class_declaration, + $.protocol_declaration, + $.operator_declaration, + $.precedence_group_declaration, + $.associatedtype_declaration, + $.macro_declaration + ), + _type_level_declaration: ($) => + choice( + $.import_declaration, + $.property_declaration, + $.typealias_declaration, + $.function_declaration, + $.init_declaration, + $.class_declaration, + $.protocol_declaration, + $.deinit_declaration, + $.subscript_declaration, + $.operator_declaration, + $.precedence_group_declaration, + $.associatedtype_declaration + ), + _local_declaration: ($) => + choice( + alias($._local_property_declaration, $.property_declaration), + alias($._local_typealias_declaration, $.typealias_declaration), + alias($._local_function_declaration, $.function_declaration), + alias($._local_class_declaration, $.class_declaration) + ), + _local_property_declaration: ($) => + seq( + optional($._locally_permitted_modifiers), + $._modifierless_property_declaration + ), + _local_typealias_declaration: ($) => + seq( + optional($._locally_permitted_modifiers), + $._modifierless_typealias_declaration + ), + _local_function_declaration: ($) => + seq( + optional($._locally_permitted_modifiers), + $._modifierless_function_declaration + ), + _local_class_declaration: ($) => + seq( + optional($._locally_permitted_modifiers), + $._modifierless_class_declaration + ), + import_declaration: ($) => + seq( + optional($.modifiers), + "import", + optional($._import_kind), + $.identifier + ), + _import_kind: ($) => + choice( + "typealias", + "struct", + "class", + "enum", + "protocol", + "let", + "var", + "func" + ), + protocol_property_declaration: ($) => + prec.right( + seq( + optional($.modifiers), + field("name", alias($._binding_kind_and_pattern, $.pattern)), + optional($.type_annotation), + optional($.type_constraints), + $.protocol_property_requirements + ) + ), + protocol_property_requirements: ($) => + seq("{", repeat(choice($.getter_specifier, $.setter_specifier)), "}"), + property_declaration: ($) => + seq(optional($.modifiers), $._modifierless_property_declaration), + _modifierless_property_declaration: ($) => + prec.right( + seq( + $._possibly_async_binding_pattern_kind, + sep1($._single_modifierless_property_declaration, ",") + ) + ), + _single_modifierless_property_declaration: ($) => + prec.left( + seq( + field("name", alias($._no_expr_pattern_already_bound, $.pattern)), + optional($.type_annotation), + optional($.type_constraints), + optional( + choice( + $._expression_with_willset_didset, + $._expression_without_willset_didset, + $.willset_didset_block, + field("computed_value", $.computed_property) + ) + ) + ) + ), + _expression_with_willset_didset: ($) => + prec.dynamic( + 1, + seq( + $._equal_sign, + field("value", $._expression), + $.willset_didset_block + ) + ), + _expression_without_willset_didset: ($) => + seq($._equal_sign, field("value", $._expression)), + willset_didset_block: ($) => + choice( + seq("{", $.willset_clause, optional($.didset_clause), "}"), + seq("{", $.didset_clause, optional($.willset_clause), "}") + ), + willset_clause: ($) => + seq( + optional($.modifiers), + "willSet", + optional(seq("(", $.simple_identifier, ")")), + $._block + ), + didset_clause: ($) => + seq( + optional($.modifiers), + "didSet", + optional(seq("(", $.simple_identifier, ")")), + $._block + ), + typealias_declaration: ($) => + seq(optional($.modifiers), $._modifierless_typealias_declaration), + _modifierless_typealias_declaration: ($) => + seq( + "typealias", + field("name", alias($.simple_identifier, $.type_identifier)), + optional($.type_parameters), + $._equal_sign, + field("value", $._type) + ), + function_declaration: ($) => + prec.right( + seq($._bodyless_function_declaration, field("body", $.function_body)) + ), + _modifierless_function_declaration: ($) => + prec.right( + seq( + $._modifierless_function_declaration_no_body, + field("body", $.function_body) + ) + ), + _bodyless_function_declaration: ($) => + seq( + optional($.modifiers), + optional("class"), // XXX: This should be possible in non-last position, but that creates parsing ambiguity + $._modifierless_function_declaration_no_body + ), + _modifierless_function_declaration_no_body: ($) => + prec.right( + seq( + $._non_constructor_function_decl, + optional($.type_parameters), + $._function_value_parameters, + optional($._async_keyword), + optional(choice($.throws_clause, $.throws)), + optional( + seq( + $._arrow_operator, + field("return_type", $._possibly_implicitly_unwrapped_type) + ) + ), + optional($.type_constraints) + ) + ), + function_body: ($) => $._block, + macro_declaration: ($) => + seq( + $._macro_head, + $.simple_identifier, + optional($.type_parameters), + $._macro_signature, + optional(field("definition", $.macro_definition)), + optional($.type_constraints) + ), + _macro_head: ($) => seq(optional($.modifiers), "macro"), + _macro_signature: ($) => + seq( + $._function_value_parameters, + optional(seq($._arrow_operator, $._unannotated_type)) + ), + macro_definition: ($) => + seq( + $._equal_sign, + field("body", choice($._expression, $.external_macro_definition)) + ), + + external_macro_definition: ($) => + seq($._hash_symbol, "externalMacro", $.value_arguments), + + class_declaration: ($) => + seq(optional($.modifiers), $._modifierless_class_declaration), + _modifierless_class_declaration: ($) => + prec.right( + choice( + seq( + field("declaration_kind", choice("class", "struct", "actor")), + field("name", alias($.simple_identifier, $.type_identifier)), + optional($.type_parameters), + optional(seq(":", $._inheritance_specifiers)), + optional($.type_constraints), + field("body", $.class_body) + ), + seq( + field("declaration_kind", "extension"), + field("name", $._unannotated_type), + optional($.type_parameters), + optional(seq(":", $._inheritance_specifiers)), + optional($.type_constraints), + field("body", $.class_body) + ), + seq( + optional("indirect"), + field("declaration_kind", "enum"), + field("name", alias($.simple_identifier, $.type_identifier)), + optional($.type_parameters), + optional(seq(":", $._inheritance_specifiers)), + optional($.type_constraints), + field("body", $.enum_class_body) + ) + ) + ), + class_body: ($) => seq("{", optional($._class_member_declarations), "}"), + _inheritance_specifiers: ($) => + prec.left(sep1($._annotated_inheritance_specifier, choice(",", "&"))), + inheritance_specifier: ($) => + prec.left( + field( + "inherits_from", + choice($.user_type, $.function_type, $.suppressed_constraint) + ) + ), + _annotated_inheritance_specifier: ($) => + seq(repeat($.attribute), $.inheritance_specifier), + type_parameters: ($) => + seq( + "<", + sep1Opt($.type_parameter, ","), + optional($.type_constraints), + ">" + ), + type_parameter: ($) => + seq( + optional($.type_parameter_modifiers), + $._type_parameter_possibly_packed, + optional(seq(":", $._type)) + ), + _type_parameter_possibly_packed: ($) => + choice( + alias($.simple_identifier, $.type_identifier), + $.type_parameter_pack + ), + + type_constraints: ($) => + prec.right(seq($.where_keyword, sep1Opt($.type_constraint, ","))), + type_constraint: ($) => + choice($.inheritance_constraint, $.equality_constraint), + inheritance_constraint: ($) => + seq( + repeat($.attribute), + field("constrained_type", $._constrained_type), + ":", + field("inherits_from", $._possibly_implicitly_unwrapped_type) + ), + equality_constraint: ($) => + seq( + repeat($.attribute), + field("constrained_type", $._constrained_type), + choice($._equal_sign, $._eq_eq), + field("must_equal", $._type) + ), + _constrained_type: ($) => + choice( + $.identifier, + seq( + $._unannotated_type, + optional(seq(".", sep1($.simple_identifier, "."))) + ) + ), + _class_member_separator: ($) => choice($._semi, $.multiline_comment), + _class_member_declarations: ($) => + seq( + sep1($._type_level_declaration, $._class_member_separator), + optional($._class_member_separator) + ), + _function_value_parameters: ($) => + repeat1( + seq("(", optional(sep1Opt($._function_value_parameter, ",")), ")") + ), + _function_value_parameter: ($) => + seq( + optional($.attribute), + $.parameter, + optional(seq($._equal_sign, field("default_value", $._expression))) + ), + parameter: ($) => + seq( + optional(field("external_name", $.simple_identifier)), + field("name", $.simple_identifier), + ":", + optional($.parameter_modifiers), + field("type", $._possibly_implicitly_unwrapped_type), + optional($._three_dot_operator) + ), + _non_constructor_function_decl: ($) => + seq( + "func", + field("name", choice($.simple_identifier, $._referenceable_operator)) + ), + _referenceable_operator: ($) => + choice( + $.custom_operator, + $._comparison_operator, + $._additive_operator, + $._multiplicative_operator, + $._equality_operator, + $._comparison_operator, + $._assignment_and_operator, + "++", + "--", + $.bang, + "~", + "|", + "^", + "<<", + ">>", + "&" + ), + // Hide the fact that certain symbols come from the custom scanner by aliasing them to their + // string variants. This keeps us from having to see them in the syntax tree (which would be + // noisy) but allows callers to refer to them as nodes by their text form like with any + // operator. + _equal_sign: ($) => alias($._eq_custom, "="), + _eq_eq: ($) => alias($._eq_eq_custom, "=="), + _dot: ($) => alias($._dot_custom, "."), + _arrow_operator: ($) => alias($._arrow_operator_custom, "->"), + _conjunction_operator: ($) => alias($._conjunction_operator_custom, "&&"), + _disjunction_operator: ($) => alias($._disjunction_operator_custom, "||"), + _nil_coalescing_operator: ($) => + alias($._nil_coalescing_operator_custom, "??"), + _as: ($) => alias($._as_custom, "as"), + _as_quest: ($) => alias($._as_quest_custom, "as?"), + _as_bang: ($) => alias($._as_bang_custom, "as!"), + _hash_symbol: ($) => alias($._hash_symbol_custom, "#"), + bang: ($) => choice($._bang_custom, "!"), + _async_keyword: ($) => alias($._async_keyword_custom, "async"), + _async_modifier: ($) => token("async"), + throws: ($) => choice($._throws_keyword, $._rethrows_keyword), + throws_clause: ($) => + seq($._throws_keyword, "(", field("type", $._unannotated_type), ")"), + enum_class_body: ($) => + seq("{", repeat(choice($.enum_entry, $._type_level_declaration)), "}"), + enum_entry: ($) => + seq( + optional($.modifiers), + optional("indirect"), + "case", + sep1( + seq( + field("name", $.simple_identifier), + optional($._enum_entry_suffix) + ), + "," + ), + optional(";") + ), + _enum_entry_suffix: ($) => + choice( + field("data_contents", $.enum_type_parameters), + seq($._equal_sign, field("raw_value", $._expression)) + ), + enum_type_parameters: ($) => + seq( + "(", + optional( + sep1( + seq( + optional( + seq(optional($.wildcard_pattern), $.simple_identifier, ":") + ), + $._type, + optional(seq($._equal_sign, $._expression)) + ), + "," + ) + ), + ")" + ), + protocol_declaration: ($) => + prec.right( + seq( + optional($.modifiers), + field("declaration_kind", "protocol"), + field("name", alias($.simple_identifier, $.type_identifier)), + optional($.type_parameters), + optional(seq(":", $._inheritance_specifiers)), + optional($.type_constraints), + field("body", $.protocol_body) + ) + ), + protocol_body: ($) => + seq("{", optional($._protocol_member_declarations), "}"), + _protocol_member_declarations: ($) => + seq(sep1($._protocol_member_declaration, $._semi), optional($._semi)), + _protocol_member_declaration: ($) => + choice( + alias( + seq( + $._bodyless_function_declaration, + optional(field("body", $.function_body)) + ), + $.protocol_function_declaration + ), + $.init_declaration, + $.deinit_declaration, + $.protocol_property_declaration, + $.typealias_declaration, + $.associatedtype_declaration, + $.subscript_declaration + ), + init_declaration: ($) => + prec.right( + seq( + optional($.modifiers), + optional("class"), + field("name", "init"), + optional(choice($._quest, $.bang)), + optional($.type_parameters), + $._function_value_parameters, + optional($._async_keyword), + optional(choice($.throws_clause, $.throws)), + optional($.type_constraints), + optional(field("body", $.function_body)) + ) + ), + deinit_declaration: ($) => + prec.right( + seq(optional($.modifiers), "deinit", field("body", $.function_body)) + ), + subscript_declaration: ($) => + prec.right( + seq( + optional($.modifiers), + "subscript", + optional($.type_parameters), + $._function_value_parameters, + optional( + seq( + $._arrow_operator, + field("return_type", $._possibly_implicitly_unwrapped_type) + ) + ), + optional($.type_constraints), + $.computed_property + ) + ), + computed_property: ($) => + seq( + "{", + choice( + optional($.statements), + repeat( + choice($.computed_getter, $.computed_setter, $.computed_modify) + ) + ), + "}" + ), + computed_getter: ($) => + seq(repeat($.attribute), $.getter_specifier, optional($._block)), + computed_modify: ($) => + seq(repeat($.attribute), $.modify_specifier, optional($._block)), + computed_setter: ($) => + seq( + repeat($.attribute), + $.setter_specifier, + optional(seq("(", $.simple_identifier, ")")), + optional($._block) + ), + getter_specifier: ($) => + seq(optional($.mutation_modifier), "get", optional($._getter_effects)), + setter_specifier: ($) => seq(optional($.mutation_modifier), "set"), + modify_specifier: ($) => seq(optional($.mutation_modifier), "_modify"), + _getter_effects: ($) => + repeat1(choice($._async_keyword, $.throws_clause, $.throws)), + operator_declaration: ($) => + seq( + choice("prefix", "infix", "postfix"), + "operator", + $._referenceable_operator, + optional(seq(":", $.simple_identifier)), + optional($.deprecated_operator_declaration_body) + ), + // The Swift compiler no longer accepts these, but some very old code still uses it. + deprecated_operator_declaration_body: ($) => + seq("{", repeat(choice($.simple_identifier, $._basic_literal)), "}"), + precedence_group_declaration: ($) => + seq( + "precedencegroup", + $.simple_identifier, + "{", + optional($.precedence_group_attributes), + "}" + ), + precedence_group_attributes: ($) => repeat1($.precedence_group_attribute), + precedence_group_attribute: ($) => + seq( + $.simple_identifier, + ":", + choice($.simple_identifier, $.boolean_literal) + ), + associatedtype_declaration: ($) => + seq( + optional($.modifiers), + "associatedtype", + field("name", alias($.simple_identifier, $.type_identifier)), + optional(seq(":", field("must_inherit", $._type))), + optional($.type_constraints), + optional(seq($._equal_sign, field("default_value", $._type))) + ), + //////////////////////////////// + // Attributes - https://docs.swift.org/swift-book/ReferenceManual/Attributes.html + //////////////////////////////// + attribute: ($) => + seq( + "@", + $.user_type, + // attribute arguments are a mess of special cases, maybe this is good enough? + optional(seq("(", sep1Opt($._attribute_argument, ","), ")")) + ), + _attribute_argument: ($) => + choice( + // labeled function parameters, used in custom property wrappers + seq($.simple_identifier, ":", $._expression), + // Unlabeled function parameters, simple identifiers, or `*` + $._expression, + // References to param names (used in `@objc(foo:bar:)`) + repeat1(seq($.simple_identifier, ":")), + // Version restrictions (iOS 3.4.5, Swift 5.0.0) + seq(repeat1($.simple_identifier), sep1($.integer_literal, ".")) + ), + //////////////////////////////// + // Patterns - https://docs.swift.org/swift-book/ReferenceManual/Patterns.html + //////////////////////////////// + _universally_allowed_pattern: ($) => + choice( + $.wildcard_pattern, + $._tuple_pattern, + $._type_casting_pattern, + $._case_pattern + ), + _bound_identifier: ($) => field("bound_identifier", $.simple_identifier), + + _binding_pattern_no_expr: ($) => + seq( + choice( + $._universally_allowed_pattern, + $._binding_pattern, + $._bound_identifier + ), + optional($._quest) + ), + _no_expr_pattern_already_bound: ($) => + seq( + choice($._universally_allowed_pattern, $._bound_identifier), + optional($._quest) + ), + _binding_pattern_with_expr: ($) => + seq( + choice( + $._universally_allowed_pattern, + $._binding_pattern, + $._expression + ), + optional($._quest) + ), + _non_binding_pattern_with_expr: ($) => + seq( + choice($._universally_allowed_pattern, $._expression), + optional($._quest) + ), + _direct_or_indirect_binding: ($) => + seq( + choice( + $._binding_kind_and_pattern, + seq("case", $._binding_pattern_no_expr) + ), + optional($.type_annotation) + ), + value_binding_pattern: ($) => field("mutability", choice("var", "let")), + _possibly_async_binding_pattern_kind: ($) => + seq(optional($._async_modifier), $.value_binding_pattern), + _binding_kind_and_pattern: ($) => + seq( + $._possibly_async_binding_pattern_kind, + $._no_expr_pattern_already_bound + ), + wildcard_pattern: ($) => "_", + _tuple_pattern_item: ($) => + choice( + seq( + $.simple_identifier, + seq(":", alias($._binding_pattern_with_expr, $.pattern)) + ), + alias($._binding_pattern_with_expr, $.pattern) + ), + _tuple_pattern: ($) => seq("(", sep1Opt($._tuple_pattern_item, ","), ")"), + _case_pattern: ($) => + seq( + optional("case"), + optional($.user_type), // XXX this should just be _type but that creates ambiguity + $._dot, + $.simple_identifier, + optional($._tuple_pattern) + ), + _type_casting_pattern: ($) => + choice( + seq("is", $._type), + seq(alias($._binding_pattern_no_expr, $.pattern), $._as, $._type) + ), + _binding_pattern: ($) => + seq( + seq(optional("case"), $.value_binding_pattern), + $._no_expr_pattern_already_bound + ), + + // ========== + // Modifiers + // ========== + modifiers: ($) => + repeat1( + prec.left( + choice($._non_local_scope_modifier, $._locally_permitted_modifiers) + ) + ), + _locally_permitted_modifiers: ($) => + repeat1(choice($.attribute, $._locally_permitted_modifier)), + parameter_modifiers: ($) => repeat1($.parameter_modifier), + _modifier: ($) => + choice($._non_local_scope_modifier, $._locally_permitted_modifier), + _non_local_scope_modifier: ($) => + choice( + $.member_modifier, + $.visibility_modifier, + $.function_modifier, + $.mutation_modifier, + $.property_modifier, + $.parameter_modifier + ), + _locally_permitted_modifier: ($) => + choice( + $.ownership_modifier, + $.inheritance_modifier, + $.property_behavior_modifier + ), + property_behavior_modifier: ($) => "lazy", + type_modifiers: ($) => repeat1($.attribute), + member_modifier: ($) => + choice("override", "convenience", "required", "nonisolated"), + visibility_modifier: ($) => + seq( + choice( + "public", + "private", + "internal", + "fileprivate", + "open", + "package" + ), + optional(seq("(", "set", ")")) + ), + type_parameter_modifiers: ($) => repeat1($.attribute), + function_modifier: ($) => choice("infix", "postfix", "prefix"), + mutation_modifier: ($) => choice("mutating", "nonmutating"), + property_modifier: ($) => + choice("static", "dynamic", "optional", "class", "distributed"), + inheritance_modifier: ($) => choice("final"), + parameter_modifier: ($) => + choice( + "inout", + "@escaping", + "@autoclosure", + $._parameter_ownership_modifier + ), + ownership_modifier: ($) => + choice("weak", "unowned", "unowned(safe)", "unowned(unsafe)"), + _parameter_ownership_modifier: ($) => choice("borrowing", "consuming"), + use_site_target: ($) => + seq( + choice( + "property", + "get", + "set", + "receiver", + "param", + "setparam", + "delegate" + ), + ":" + ), + directive: ($) => + prec.right( + PRECS.comment, + choice( + seq(alias($._directive_if, "#if"), $._compilation_condition), + seq(alias($._directive_elseif, "#elseif"), $._compilation_condition), + seq(alias($._directive_else, "#else")), + seq(alias($._directive_endif, "#endif")) + ) + ), + _compilation_condition: ($) => + prec.right( + choice( + seq("os", "(", $.simple_identifier, ")"), + seq("arch", "(", $.simple_identifier, ")"), + seq( + "swift", + "(", + $._comparison_operator, + sep1($.integer_literal, "."), + ")" + ), + seq( + "compiler", + "(", + $._comparison_operator, + sep1($.integer_literal, "."), + ")" + ), + seq("canImport", "(", sep1($.simple_identifier, "."), ")"), + seq("targetEnvironment", "(", $.simple_identifier, ")"), + $.boolean_literal, + $.simple_identifier, + seq("(", $._compilation_condition, ")"), + seq("!", $._compilation_condition), + seq( + $._compilation_condition, + $._conjunction_operator, + $._compilation_condition + ), + seq( + $._compilation_condition, + $._disjunction_operator, + $._compilation_condition + ) + ) + ), + diagnostic: ($) => + prec( + PRECS.comment, + seq( + $._hash_symbol, + choice( + // Using regexes here, rather than actually validating the string literal, because complex string literals + // cannot be used inside `token()` and we need that to ensure we get the right precedence. + seq(/error([^\r\n]*)/), + seq(/warning([^\r\n]*)/), + seq(/sourceLocation([^\r\n]*)/) + ) + ) + ), + // Dumping ground for any nodes that used to exist in the grammar, but have since been removed for whatever + // reason. + // Neovim applies updates non-atomically to the parser and the queries. Meanwhile, `tree-sitter` rejects any query + // that contains any unrecognized nodes. Putting those two facts together, we see that we must never remove nodes + // that once existed. + unused_for_backward_compatibility: ($) => + choice(alias("unused1", "try?"), alias("unused2", "try!")), + }, +}); +function sep1(rule, separator) { + return seq(rule, repeat(seq(separator, rule))); +} +function sep1Opt(rule, separator) { + return seq(rule, repeat(seq(separator, rule)), optional(separator)); +} + +function tree_sitter_version_supports_emoji() { + try { + return ( + TREE_SITTER_CLI_VERSION_MAJOR > 0 || + TREE_SITTER_CLI_VERSION_MINOR > 20 || + TREE_SITTER_CLI_VERSION_PATCH >= 5 + ); + } catch (err) { + if (err instanceof ReferenceError) { + return false; + } else { + throw err; + } + } +} diff --git a/unified/extractor/tree-sitter-swift/package.json b/unified/extractor/tree-sitter-swift/package.json new file mode 100644 index 000000000000..68dcf7cc42fc --- /dev/null +++ b/unified/extractor/tree-sitter-swift/package.json @@ -0,0 +1,68 @@ +{ + "name": "tree-sitter-swift", + "version": "0.7.2", + "description": "A tree-sitter grammar for the Swift programming language.", + "main": "bindings/node/index.js", + "types": "bindings/node", + "scripts": { + "install": "node-gyp-build", + "prestart": "tree-sitter build --wasm", + "start": "tree-sitter playground", + "test": "node --test bindings/node/*_test.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/alex-pinkus/tree-sitter-swift.git" + }, + "tree-sitter": [ + { + "scope": "source.swift", + "file-types": [ + "swift" + ], + "injection-regex": "swift", + "highlights": "queries/highlights.scm", + "locals": "queries/locals.scm", + "injections": "queries/injections.scm" + } + ], + "keywords": [ + "parser", + "swift" + ], + "files": [ + "grammar.js", + "tree-sitter.json", + "binding.gyp", + "prebuilds/**", + "bindings/node/*", + "queries/*", + "scripts/*", + "src/**" + ], + "author": "Alex Pinkus ", + "license": "MIT", + "bugs": { + "url": "https://github.com/alex-pinkus/tree-sitter-swift/issues" + }, + "homepage": "https://github.com/alex-pinkus/tree-sitter-swift#readme", + "dependencies": { + "node-addon-api": "^8.0.0", + "node-gyp-build": "^4.8.0", + "tree-sitter-cli": "^0.23", + "which": "2.0.2" + }, + "peerDependencies": { + "tree-sitter": "^0.22.1" + }, + "peerDependenciesMeta": { + "tree_sitter": { + "optional": true + } + }, + "devDependencies": { + "node-gyp": "^10.0.1", + "prebuildify": "^6.0.0", + "prettier": "2.3.2" + } +} diff --git a/unified/extractor/tree-sitter-swift/queries/folds.scm b/unified/extractor/tree-sitter-swift/queries/folds.scm new file mode 100644 index 000000000000..ca7f72593aa8 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/folds.scm @@ -0,0 +1,35 @@ +; format-ignore +[ + (protocol_body) ; protocol Foo { ... } + (class_body) ; class Foo { ... } + (enum_class_body) ; enum Foo { ... } + (function_body) ; func Foo (...) {...} + (computed_property) ; { ... } + + (computed_getter) ; get { ... } + (computed_setter) ; set { ... } + + (do_statement) + (if_statement) + (for_statement) + (switch_statement) + (while_statement) + (guard_statement) + (switch_entry) + + (type_parameters) ; x + (tuple_type) ; (...) + (array_type) ; [String] + (dictionary_type) ; [Foo: Bar] + + (call_expression) ; callFunc(...) + (tuple_expression) ; ( foo + bar ) + (array_literal) ; [ foo, bar ] + (dictionary_literal) ; [ foo: bar, x: y ] + (lambda_literal) + (willset_didset_block) + (willset_clause) + (didset_clause) + + (import_declaration)+ +] @fold diff --git a/unified/extractor/tree-sitter-swift/queries/highlights.scm b/unified/extractor/tree-sitter-swift/queries/highlights.scm new file mode 100644 index 000000000000..82ad68d4ed1c --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/highlights.scm @@ -0,0 +1,336 @@ +[ + "." + ";" + ":" + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +; Identifiers +(type_identifier) @type + +[ + (self_expression) + (super_expression) +] @variable.builtin + +; Declarations +[ + "func" + "deinit" +] @keyword.function + +[ + (visibility_modifier) + (member_modifier) + (function_modifier) + (property_modifier) + (parameter_modifier) + (inheritance_modifier) + (mutation_modifier) +] @keyword.modifier + +(simple_identifier) @variable + +(function_declaration + (simple_identifier) @function.method) + +(protocol_function_declaration + name: (simple_identifier) @function.method) + +(init_declaration + "init" @constructor) + +(parameter + external_name: (simple_identifier) @variable.parameter) + +(parameter + name: (simple_identifier) @variable.parameter) + +(type_parameter + (type_identifier) @variable.parameter) + +(inheritance_constraint + (identifier + (simple_identifier) @variable.parameter)) + +(equality_constraint + (identifier + (simple_identifier) @variable.parameter)) + +[ + "protocol" + "extension" + "indirect" + "nonisolated" + "override" + "convenience" + "required" + "some" + "any" + "weak" + "unowned" + "didSet" + "willSet" + "subscript" + "let" + "var" + (throws) + (where_keyword) + (getter_specifier) + (setter_specifier) + (modify_specifier) + (else) + (as_operator) +] @keyword + +[ + "enum" + "struct" + "class" + "typealias" +] @keyword.type + +[ + "async" + "await" +] @keyword.coroutine + +(shebang_line) @keyword.directive + +(class_body + (property_declaration + (pattern + (simple_identifier) @variable.member))) + +(protocol_property_declaration + (pattern + (simple_identifier) @variable.member)) + +(navigation_expression + (navigation_suffix + (simple_identifier) @variable.member)) + +(value_argument + name: (value_argument_label + (simple_identifier) @variable.member)) + +(import_declaration + "import" @keyword.import) + +(enum_entry + "case" @keyword) + +(modifiers + (attribute + "@" @attribute + (user_type + (type_identifier) @attribute))) + +; Function calls +(call_expression + (simple_identifier) @function.call) ; foo() + +(call_expression + ; foo.bar.baz(): highlight the baz() + (navigation_expression + (navigation_suffix + (simple_identifier) @function.call))) + +(call_expression + (prefix_expression + (simple_identifier) @function.call)) ; .foo() + +((navigation_expression + (simple_identifier) @type) ; SomeType.method(): highlight SomeType as a type + (#match? @type "^[A-Z]")) + +(directive) @keyword.directive + +; See https://docs.swift.org/swift-book/documentation/the-swift-programming-language/lexicalstructure/#Keywords-and-Punctuation +[ + (diagnostic) + (availability_condition) + (playground_literal) + (key_path_string_expression) + (selector_expression) + (external_macro_definition) +] @function.macro + +(special_literal) @constant.macro + +; Statements +(for_statement + "for" @keyword.repeat) + +(for_statement + "in" @keyword.repeat) + +[ + "while" + "repeat" + "continue" + "break" +] @keyword.repeat + +(guard_statement + "guard" @keyword.conditional) + +(if_statement + "if" @keyword.conditional) + +(switch_statement + "switch" @keyword.conditional) + +(switch_entry + "case" @keyword) + +(switch_entry + "fallthrough" @keyword) + +(switch_entry + (default_keyword) @keyword) + +"return" @keyword.return + +(ternary_expression + [ + "?" + ":" + ] @keyword.conditional.ternary) + +[ + (try_operator) + "do" + (throw_keyword) + (catch_keyword) +] @keyword.exception + +(statement_label) @label + +; Comments +[ + (comment) + (multiline_comment) +] @comment @spell + +((comment) @comment.documentation + (#match? @comment.documentation "^///[^/]")) + +((comment) @comment.documentation + (#match? @comment.documentation "^///$")) + +((multiline_comment) @comment.documentation + (#match? @comment.documentation "^/[*][*][^*].*[*]/$")) + +; String literals +(line_str_text) @string + +(str_escaped_char) @string.escape + +(multi_line_str_text) @string + +(raw_str_part) @string + +(raw_str_end_part) @string + +(line_string_literal + [ + "\\(" + ")" + ] @punctuation.special) + +(multi_line_string_literal + [ + "\\(" + ")" + ] @punctuation.special) + +(raw_str_interpolation + [ + (raw_str_interpolation_start) + ")" + ] @punctuation.special) + +[ + "\"" + "\"\"\"" +] @string + +; Lambda literals +(lambda_literal + "in" @keyword.operator) + +; Basic literals +[ + (integer_literal) + (hex_literal) + (oct_literal) + (bin_literal) +] @number + +(real_literal) @number.float + +(boolean_literal) @boolean + +"nil" @constant.builtin + +(wildcard_pattern) @character.special + +; Regex literals +(regex_literal) @string.regexp + +; Operators +(custom_operator) @operator + +[ + "+" + "-" + "*" + "/" + "%" + "=" + "+=" + "-=" + "*=" + "/=" + "<" + ">" + "<<" + ">>" + "<=" + ">=" + "++" + "--" + "^" + "&" + "&&" + "|" + "||" + "~" + "%=" + "!=" + "!==" + "==" + "===" + "?" + "??" + "->" + "..<" + "..." + (bang) +] @operator + +(type_arguments + [ + "<" + ">" + ] @punctuation.bracket) diff --git a/unified/extractor/tree-sitter-swift/queries/indents.scm b/unified/extractor/tree-sitter-swift/queries/indents.scm new file mode 100644 index 000000000000..ec8f8af95c6f --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/indents.scm @@ -0,0 +1,123 @@ +; format-ignore +[ + ; ... refers to the section that will get affected by this indent.begin capture + (protocol_body) ; protocol Foo { ... } + (class_body) ; class Foo { ... } + (enum_class_body) ; enum Foo { ... } + (function_declaration) ; func Foo (...) {...} + (init_declaration) ; init(...) {...} + (deinit_declaration) ; deinit {...} + (computed_property) ; { ... } + (subscript_declaration) ; subscript Foo(...) { ... } + + (computed_getter) ; get { ... } + (computed_setter) ; set { ... } + + (assignment) ; a = b + + (control_transfer_statement) ; return ... + (for_statement) + (while_statement) + (repeat_while_statement) + (do_statement) + (if_statement) + (switch_statement) + (guard_statement) + + (type_parameters) ; x + (tuple_type) ; (...) + (array_type) ; [String] + (dictionary_type) ; [Foo: Bar] + + (call_expression) ; callFunc(...) + (tuple_expression) ; ( foo + bar ) + (array_literal) ; [ foo, bar ] + (dictionary_literal) ; [ foo: bar, x: y ] + (lambda_literal) + (willset_didset_block) + (willset_clause) + (didset_clause) +] @indent.begin + +(init_declaration) @indent.begin + +(init_declaration + [ + "init" + "(" + ] @indent.branch) + +; indentation for init parameters +(init_declaration + ")" @indent.branch @indent.end) + +(init_declaration + (parameter) @indent.begin + (#set! indent.immediate)) + +; @something(...) +(modifiers + (attribute) @indent.begin) + +(function_declaration + (modifiers + . + (attribute) + (_)* @indent.branch) + . + _ @indent.branch + (#not-kind-eq? @indent.branch "type_parameters" "parameter")) + +(ERROR + [ + "<" + "{" + "(" + "[" + ]) @indent.begin + +; if-elseif +(if_statement + (if_statement) @indent.dedent) + +; case Foo: +; default Foo: +; @attribute default Foo: +(switch_entry + . + _ @indent.branch) + +(function_declaration + ")" @indent.branch) + +(type_parameters + ">" @indent.branch @indent.end .) + +(tuple_expression + ")" @indent.branch @indent.end) + +(value_arguments + ")" @indent.branch @indent.end) + +(tuple_type + ")" @indent.branch @indent.end) + +(modifiers + (attribute + ")" @indent.branch @indent.end)) + +[ + "}" + "]" +] @indent.branch @indent.end + +[ + ; (ERROR) + (comment) + (multiline_comment) + (raw_str_part) + (multi_line_string_literal) +] @indent.auto + +(directive) @indent.ignore + diff --git a/unified/extractor/tree-sitter-swift/queries/injections.scm b/unified/extractor/tree-sitter-swift/queries/injections.scm new file mode 100644 index 000000000000..512cfa0d5223 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/injections.scm @@ -0,0 +1,10 @@ +; Parse regex syntax within regex literals + +((regex_literal) @injection.content + (#set! injection.language "regex")) + +([ + (comment) + (multiline_comment) +] @injection.content + (#set! injection.language "comment")) diff --git a/unified/extractor/tree-sitter-swift/queries/locals.scm b/unified/extractor/tree-sitter-swift/queries/locals.scm new file mode 100644 index 000000000000..78032a81810b --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/locals.scm @@ -0,0 +1,23 @@ +(import_declaration + (identifier) @local.definition.import) + +(function_declaration + name: (simple_identifier) @local.definition.function) + +; Scopes +[ + (statements) + (for_statement) + (while_statement) + (repeat_while_statement) + (do_statement) + (if_statement) + (guard_statement) + (switch_statement) + (property_declaration) + (function_declaration) + (class_declaration) + (protocol_declaration) +] @local.scope + + diff --git a/unified/extractor/tree-sitter-swift/queries/outline.scm b/unified/extractor/tree-sitter-swift/queries/outline.scm new file mode 100644 index 000000000000..31fe5d9d4a43 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/outline.scm @@ -0,0 +1,66 @@ +(protocol_declaration + declaration_kind: "protocol" @name + . + _ * @name + . + body: (protocol_body) +) @item + +(class_declaration + declaration_kind: ( + [ + "actor" + "class" + "extension" + "enum" + "struct" + ] + ) @name + . + _ * @name + . + body: (_) +) @item + +(init_declaration + name: "init" @name + . + _ * @name + . + body: (function_body) +) @item + +(deinit_declaration + "deinit" @name) @item + +(function_declaration + "func" @name + . + _ * @name + . + body: (function_body) +) @item + +(class_body + (property_declaration + (value_binding_pattern) @name + name: (pattern) @name + (type_annotation)? @name + ) @item +) + +(enum_class_body + (property_declaration + (value_binding_pattern) @name + name: (pattern) @name + (type_annotation)? @name + ) @item +) + +( + (protocol_function_declaration) @name +) @item + +( + (protocol_property_declaration) @name +) @item diff --git a/unified/extractor/tree-sitter-swift/queries/tags.scm b/unified/extractor/tree-sitter-swift/queries/tags.scm new file mode 100644 index 000000000000..0038571e5d72 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/tags.scm @@ -0,0 +1,51 @@ +(class_declaration + name: (type_identifier) @name) @definition.class + +(protocol_declaration + name: (type_identifier) @name) @definition.interface + +(class_declaration + (class_body + [ + (function_declaration + name: (simple_identifier) @name + ) + (subscript_declaration + (parameter (simple_identifier) @name) + ) + (init_declaration "init" @name) + (deinit_declaration "deinit" @name) + ] + ) +) @definition.method + +(protocol_declaration + (protocol_body + [ + (protocol_function_declaration + name: (simple_identifier) @name + ) + (subscript_declaration + (parameter (simple_identifier) @name) + ) + (init_declaration "init" @name) + ] + ) +) @definition.method + +(class_declaration + (class_body + [ + (property_declaration + (pattern (simple_identifier) @name) + ) + ] + ) +) @definition.property + +(property_declaration + (pattern (simple_identifier) @name) +) @definition.property + +(function_declaration + name: (simple_identifier) @name) @definition.function \ No newline at end of file diff --git a/unified/extractor/tree-sitter-swift/queries/textobjects.scm b/unified/extractor/tree-sitter-swift/queries/textobjects.scm new file mode 100644 index 000000000000..da689a1b29f6 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/queries/textobjects.scm @@ -0,0 +1,19 @@ + + +; MARK: Structure + +(function_declaration + body: (_) @function.inside) @function.around + +; TODO: Classes/structs/enums + + +; MARK: Tests + +; Only matches prefix test. Other conventions +; might be nice to add! +(function_declaration + name: (simple_identifier) @_name + (#match? @_name "^test") +) + diff --git a/unified/extractor/tree-sitter-swift/src/scanner.c b/unified/extractor/tree-sitter-swift/src/scanner.c new file mode 100644 index 000000000000..bb2dcac58b28 --- /dev/null +++ b/unified/extractor/tree-sitter-swift/src/scanner.c @@ -0,0 +1,929 @@ +#include "tree_sitter/parser.h" +#include +#include + +#define TOKEN_COUNT 33 + +enum TokenType { + BLOCK_COMMENT, + RAW_STR_PART, + RAW_STR_CONTINUING_INDICATOR, + RAW_STR_END_PART, + IMPLICIT_SEMI, + EXPLICIT_SEMI, + ARROW_OPERATOR, + DOT_OPERATOR, + CONJUNCTION_OPERATOR, + DISJUNCTION_OPERATOR, + NIL_COALESCING_OPERATOR, + EQUAL_SIGN, + EQ_EQ, + PLUS_THEN_WS, + MINUS_THEN_WS, + BANG, + THROWS_KEYWORD, + RETHROWS_KEYWORD, + DEFAULT_KEYWORD, + WHERE_KEYWORD, + ELSE_KEYWORD, + CATCH_KEYWORD, + AS_KEYWORD, + AS_QUEST, + AS_BANG, + ASYNC_KEYWORD, + CUSTOM_OPERATOR, + HASH_SYMBOL, + DIRECTIVE_IF, + DIRECTIVE_ELSEIF, + DIRECTIVE_ELSE, + DIRECTIVE_ENDIF, + FAKE_TRY_BANG +}; + +#define OPERATOR_COUNT 20 + +const char* OPERATORS[OPERATOR_COUNT] = { + "->", + ".", + "&&", + "||", + "??", + "=", + "==", + "+", + "-", + "!", + "throws", + "rethrows", + "default", + "where", + "else", + "catch", + "as", + "as?", + "as!", + "async" +}; + +enum IllegalTerminatorGroup { + ALPHANUMERIC, + OPERATOR_SYMBOLS, + OPERATOR_OR_DOT, + NON_WHITESPACE +}; + +const enum IllegalTerminatorGroup OP_ILLEGAL_TERMINATORS[OPERATOR_COUNT] = { + OPERATOR_SYMBOLS, // -> + OPERATOR_OR_DOT, // . + OPERATOR_SYMBOLS, // && + OPERATOR_SYMBOLS, // || + OPERATOR_SYMBOLS, // ?? + OPERATOR_SYMBOLS, // = + OPERATOR_SYMBOLS, // == + NON_WHITESPACE, // + + NON_WHITESPACE, // - + OPERATOR_SYMBOLS, // ! + ALPHANUMERIC, // throws + ALPHANUMERIC, // rethrows + ALPHANUMERIC, // default + ALPHANUMERIC, // where + ALPHANUMERIC, // else + ALPHANUMERIC, // catch + ALPHANUMERIC, // as + OPERATOR_SYMBOLS, // as? + OPERATOR_SYMBOLS, // as! + ALPHANUMERIC // async +}; + +const enum TokenType OP_SYMBOLS[OPERATOR_COUNT] = { + ARROW_OPERATOR, + DOT_OPERATOR, + CONJUNCTION_OPERATOR, + DISJUNCTION_OPERATOR, + NIL_COALESCING_OPERATOR, + EQUAL_SIGN, + EQ_EQ, + PLUS_THEN_WS, + MINUS_THEN_WS, + BANG, + THROWS_KEYWORD, + RETHROWS_KEYWORD, + DEFAULT_KEYWORD, + WHERE_KEYWORD, + ELSE_KEYWORD, + CATCH_KEYWORD, + AS_KEYWORD, + AS_QUEST, + AS_BANG, + ASYNC_KEYWORD +}; + +const uint64_t OP_SYMBOL_SUPPRESSOR[OPERATOR_COUNT] = { + 0, // ARROW_OPERATOR, + 0, // DOT_OPERATOR, + 0, // CONJUNCTION_OPERATOR, + 0, // DISJUNCTION_OPERATOR, + 0, // NIL_COALESCING_OPERATOR, + 0, // EQUAL_SIGN, + 0, // EQ_EQ, + 0, // PLUS_THEN_WS, + 0, // MINUS_THEN_WS, + 1UL << FAKE_TRY_BANG, // BANG, + 0, // THROWS_KEYWORD, + 0, // RETHROWS_KEYWORD, + 0, // DEFAULT_KEYWORD, + 0, // WHERE_KEYWORD, + 0, // ELSE_KEYWORD, + 0, // CATCH_KEYWORD, + 0, // AS_KEYWORD, + 0, // AS_QUEST, + 0, // AS_BANG, + 0, // ASYNC_KEYWORD +}; + +#define RESERVED_OP_COUNT 31 + +const char* RESERVED_OPS[RESERVED_OP_COUNT] = { + "/", + "=", + "-", + "+", + "!", + "*", + "%", + "<", + ">", + "&", + "|", + "^", + "?", + "~", + ".", + "..", + "->", + "/*", + "*/", + "+=", + "-=", + "*=", + "/=", + "%=", + ">>", + "<<", + "++", + "--", + "===", + "...", + "..<" +}; + +static bool is_cross_semi_token(enum TokenType op) { + switch(op) { + case ARROW_OPERATOR: + case DOT_OPERATOR: + case CONJUNCTION_OPERATOR: + case DISJUNCTION_OPERATOR: + case NIL_COALESCING_OPERATOR: + case EQUAL_SIGN: + case EQ_EQ: + case PLUS_THEN_WS: + case MINUS_THEN_WS: + case THROWS_KEYWORD: + case RETHROWS_KEYWORD: + case DEFAULT_KEYWORD: + case WHERE_KEYWORD: + case ELSE_KEYWORD: + case CATCH_KEYWORD: + case AS_KEYWORD: + case AS_QUEST: + case AS_BANG: + case ASYNC_KEYWORD: + case CUSTOM_OPERATOR: + return true; + case BANG: + default: + return false; + } +} + +#define NON_CONSUMING_CROSS_SEMI_CHAR_COUNT 3 +const uint32_t NON_CONSUMING_CROSS_SEMI_CHARS[NON_CONSUMING_CROSS_SEMI_CHAR_COUNT] = { '?', ':', '{' }; + +/** + * All possible results of having performed some sort of parsing. + * + * A parser can return a result along two dimensions: + * 1. Should the scanner continue trying to find another result? + * 2. Was some result produced by this parsing attempt? + * + * These are flattened into a single enum together. When the function returns one of the `TOKEN_FOUND` cases, it + * will always populate its `symbol_result` field. When it returns one of the `STOP_PARSING` cases, callers should + * immediately return (with the value, if there is one). + */ +enum ParseDirective { + CONTINUE_PARSING_NOTHING_FOUND, + CONTINUE_PARSING_TOKEN_FOUND, + CONTINUE_PARSING_SLASH_CONSUMED, + STOP_PARSING_NOTHING_FOUND, + STOP_PARSING_TOKEN_FOUND, + STOP_PARSING_END_OF_FILE +}; + +struct ScannerState { + uint32_t ongoing_raw_str_hash_count; +}; + +void *tree_sitter_swift_external_scanner_create() { + return calloc(1, sizeof(struct ScannerState)); +} + +void tree_sitter_swift_external_scanner_destroy(void *payload) { + free(payload); +} + +void tree_sitter_swift_external_scanner_reset(void *payload) { + struct ScannerState *state = (struct ScannerState *)payload; + state->ongoing_raw_str_hash_count = 0; +} + +unsigned tree_sitter_swift_external_scanner_serialize(void *payload, char *buffer) { + struct ScannerState *state = (struct ScannerState *)payload; + uint32_t hash_count = state->ongoing_raw_str_hash_count; + buffer[0] = (hash_count >> 24) & 0xff; + buffer[1] = (hash_count >> 16) & 0xff; + buffer[2] = (hash_count >> 8) & 0xff; + buffer[3] = (hash_count) & 0xff; + return 4; +} + +void tree_sitter_swift_external_scanner_deserialize( + void *payload, + const char *buffer, + unsigned length +) { + if (length < 4) { + return; + } + + uint32_t hash_count = ( + (((uint32_t) buffer[0]) << 24) | + (((uint32_t) buffer[1]) << 16) | + (((uint32_t) buffer[2]) << 8) | + (((uint32_t) buffer[3])) + ); + struct ScannerState *state = (struct ScannerState *)payload; + state->ongoing_raw_str_hash_count = hash_count; +} + +static void advance(TSLexer *lexer) { + lexer->advance(lexer, false); +} + +static bool should_treat_as_wspace(int32_t character) { + return iswspace(character) || (((int32_t) ';') == character); +} + +static int32_t encountered_op_count(bool *encountered_operator) { + int32_t encountered = 0; + for (int op_idx = 0; op_idx < OPERATOR_COUNT; op_idx++) { + if (encountered_operator[op_idx]) { + encountered++; + } + } + + return encountered; +} + +static bool any_reserved_ops(uint8_t *encountered_reserved_ops) { + for (int op_idx = 0; op_idx < RESERVED_OP_COUNT; op_idx++) { + if (encountered_reserved_ops[op_idx] == 2) { + return true; + } + } + + return false; +} + +static bool is_legal_custom_operator( + int32_t char_idx, + int32_t first_char, + int32_t cur_char +) { + bool is_first_char = !char_idx; + switch (cur_char) { + case '=': + case '-': + case '+': + case '!': + case '%': + case '<': + case '>': + case '&': + case '|': + case '^': + case '?': + case '~': + return true; + case '.': + // Grammar allows `.` for any operator that starts with `.` + return is_first_char || first_char == '.'; + case '*': + case '/': + // Not listed in the grammar, but `/*` and `//` can't be the start of an operator since they start comments + return char_idx != 1 || first_char != '/'; + default: + if ( + (cur_char >= 0x00A1 && cur_char <= 0x00A7) || + (cur_char == 0x00A9) || + (cur_char == 0x00AB) || + (cur_char == 0x00AC) || + (cur_char == 0x00AE) || + (cur_char >= 0x00B0 && cur_char <= 0x00B1) || + (cur_char == 0x00B6) || + (cur_char == 0x00BB) || + (cur_char == 0x00BF) || + (cur_char == 0x00D7) || + (cur_char == 0x00F7) || + (cur_char >= 0x2016 && cur_char <= 0x2017) || + (cur_char >= 0x2020 && cur_char <= 0x2027) || + (cur_char >= 0x2030 && cur_char <= 0x203E) || + (cur_char >= 0x2041 && cur_char <= 0x2053) || + (cur_char >= 0x2055 && cur_char <= 0x205E) || + (cur_char >= 0x2190 && cur_char <= 0x23FF) || + (cur_char >= 0x2500 && cur_char <= 0x2775) || + (cur_char >= 0x2794 && cur_char <= 0x2BFF) || + (cur_char >= 0x2E00 && cur_char <= 0x2E7F) || + (cur_char >= 0x3001 && cur_char <= 0x3003) || + (cur_char >= 0x3008 && cur_char <= 0x3020) || + (cur_char == 0x3030) + ) { + return true; + } else if ( + (cur_char >= 0x0300 && cur_char <= 0x036f) || + (cur_char >= 0x1DC0 && cur_char <= 0x1DFF) || + (cur_char >= 0x20D0 && cur_char <= 0x20FF) || + (cur_char >= 0xFE00 && cur_char <= 0xFE0F) || + (cur_char >= 0xFE20 && cur_char <= 0xFE2F) || + (cur_char >= 0xE0100 && cur_char <= 0xE01EF) + ) { + return !is_first_char; + } else { + return false; + } + } +} + +static bool eat_operators( + TSLexer *lexer, + const bool *valid_symbols, + bool mark_end, + const int32_t prior_char, + enum TokenType *symbol_result +) { + bool possible_operators[OPERATOR_COUNT]; + uint8_t reserved_operators[RESERVED_OP_COUNT]; + for (int op_idx = 0; op_idx < OPERATOR_COUNT; op_idx++) { + possible_operators[op_idx] = valid_symbols[OP_SYMBOLS[op_idx]] && (!prior_char || OPERATORS[op_idx][0] == prior_char); + } + for (int op_idx = 0; op_idx < RESERVED_OP_COUNT; op_idx++) { + reserved_operators[op_idx] = !prior_char || RESERVED_OPS[op_idx][0] == prior_char; + } + + bool possible_custom_operator = valid_symbols[CUSTOM_OPERATOR]; + int32_t first_char = prior_char ? prior_char : lexer->lookahead; + int32_t last_examined_char = first_char; + + int32_t str_idx = prior_char ? 1 : 0; + int32_t full_match = -1; + while(true) { + for (int op_idx = 0; op_idx < OPERATOR_COUNT; op_idx++) { + if (!possible_operators[op_idx]) { + continue; + } + + if (OPERATORS[op_idx][str_idx] == '\0') { + // Make sure that the operator is allowed to have the next character as its lookahead. + enum IllegalTerminatorGroup illegal_terminators = OP_ILLEGAL_TERMINATORS[op_idx]; + switch (lexer->lookahead) { + // See "Operators": + // https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID418 + case '/': + case '=': + case '-': + case '+': + case '!': + case '*': + case '%': + case '<': + case '>': + case '&': + case '|': + case '^': + case '?': + case '~': + if (illegal_terminators == OPERATOR_SYMBOLS) { + break; + } // Otherwise, intentionally fall through to the OPERATOR_OR_DOT case + // fall through + case '.': + if (illegal_terminators == OPERATOR_OR_DOT) { + break; + } // Otherwise, fall through to DEFAULT which checks its groups directly + // fall through + default: + if (iswalnum(lexer->lookahead) && illegal_terminators == ALPHANUMERIC) { + break; + } + + if (!iswspace(lexer->lookahead) && illegal_terminators == NON_WHITESPACE) { + break; + } + + full_match = op_idx; + if (mark_end) { + lexer->mark_end(lexer); + } + } + + possible_operators[op_idx] = false; + continue; + } + + if (OPERATORS[op_idx][str_idx] != lexer->lookahead) { + possible_operators[op_idx] = false; + continue; + } + } + + for (int op_idx = 0; op_idx < RESERVED_OP_COUNT; op_idx++) { + if (!reserved_operators[op_idx]) { + continue; + } + + if (RESERVED_OPS[op_idx][str_idx] == '\0') { + reserved_operators[op_idx] = 0; + continue; + } + + if (RESERVED_OPS[op_idx][str_idx] != lexer->lookahead) { + reserved_operators[op_idx] = 0; + continue; + } + + if (RESERVED_OPS[op_idx][str_idx + 1] == '\0') { + reserved_operators[op_idx] = 2; + continue; + } + } + + possible_custom_operator = possible_custom_operator && is_legal_custom_operator( + str_idx, + first_char, + lexer->lookahead + ); + + uint32_t encountered_ops = encountered_op_count(possible_operators); + if (encountered_ops == 0) { + if (!possible_custom_operator) { + break; + } else if (mark_end && full_match == -1) { + lexer->mark_end(lexer); + } + } + + last_examined_char = lexer->lookahead; + lexer->advance(lexer, false); + str_idx += 1; + + if (encountered_ops == 0 && !is_legal_custom_operator( + str_idx, + first_char, + lexer->lookahead + )) { + break; + } + } + + if (full_match != -1) { + // We have a match -- first see if that match has a symbol that suppresses it. For example, in `try!`, we do not + // want to emit the `!` as a symbol in our scanner, because we want the parser to have the chance to parse it as + // an immediate token. + uint64_t suppressing_symbols = OP_SYMBOL_SUPPRESSOR[full_match]; + if (suppressing_symbols) { + for (uint64_t suppressor = 0; suppressor < TOKEN_COUNT; suppressor++) { + if (!(suppressing_symbols & 1ULL << suppressor)) { + continue; + } + + // The suppressing symbol is valid in this position, so skip it. + if (valid_symbols[suppressor]) { + return false; + } + } + } + *symbol_result = OP_SYMBOLS[full_match]; + return true; + } + + if (possible_custom_operator && !any_reserved_ops(reserved_operators)) { + if ((last_examined_char != '<' || iswspace(lexer->lookahead)) && mark_end) { + lexer->mark_end(lexer); + } + *symbol_result = CUSTOM_OPERATOR; + return true; + } + + return false; +} + +static enum ParseDirective eat_comment( + TSLexer *lexer, + const bool *valid_symbols, + bool mark_end, + enum TokenType *symbol_result +) { + if (lexer->lookahead != '/') { + return CONTINUE_PARSING_NOTHING_FOUND; + } + + advance(lexer); + + if (lexer->lookahead != '*') { + return CONTINUE_PARSING_SLASH_CONSUMED; + } + + advance(lexer); + + bool after_star = false; + unsigned nesting_depth = 1; + for (;;) { + switch (lexer->lookahead) { + case '\0': + return STOP_PARSING_END_OF_FILE; + case '*': + advance(lexer); + after_star = true; + break; + case '/': + if (after_star) { + advance(lexer); + after_star = false; + nesting_depth--; + if (nesting_depth == 0) { + if (mark_end) { + lexer->mark_end(lexer); + } + *symbol_result = BLOCK_COMMENT; + return STOP_PARSING_TOKEN_FOUND; + } + } else { + advance(lexer); + after_star = false; + if (lexer->lookahead == '*') { + nesting_depth++; + advance(lexer); + } + } + break; + default: + advance(lexer); + after_star = false; + break; + } + } +} + +static enum ParseDirective eat_whitespace( + TSLexer *lexer, + const bool *valid_symbols, + enum TokenType *symbol_result +) { + enum ParseDirective ws_directive = CONTINUE_PARSING_NOTHING_FOUND; + bool semi_is_valid = valid_symbols[IMPLICIT_SEMI] && valid_symbols[EXPLICIT_SEMI]; + uint32_t lookahead; + while (should_treat_as_wspace(lookahead = lexer->lookahead)) { + if (lookahead == ';') { + if (semi_is_valid) { + ws_directive = STOP_PARSING_TOKEN_FOUND; + lexer->advance(lexer, false); + } + + break; + } + + lexer->advance(lexer, true); + + lexer->mark_end(lexer); + + if (ws_directive == CONTINUE_PARSING_NOTHING_FOUND && (lookahead == '\n' || lookahead == '\r')) { + ws_directive = CONTINUE_PARSING_TOKEN_FOUND; + } + } + + enum ParseDirective any_comment = CONTINUE_PARSING_NOTHING_FOUND; + if (ws_directive == CONTINUE_PARSING_TOKEN_FOUND && lookahead == '/') { + bool has_seen_single_comment = false; + while (lexer->lookahead == '/') { + // It's possible that this is a comment - start an exploratory mission to find out, and if it is, look for what + // comes after it. We care about what comes after it for the purpose of suppressing the newline. + + enum TokenType multiline_comment_result; + any_comment = eat_comment(lexer, valid_symbols, /* mark_end */ false, &multiline_comment_result); + if (any_comment == STOP_PARSING_TOKEN_FOUND) { + // This is a multiline comment. This scanner should be parsing those, so we might want to bail out and + // emit it instead. However, we only want to do that if we haven't advanced through a _single_ line + // comment on the way - otherwise that will get lumped into this. + if (!has_seen_single_comment) { + lexer->mark_end(lexer); + *symbol_result = multiline_comment_result; + return STOP_PARSING_TOKEN_FOUND; + } + } else if (any_comment == STOP_PARSING_END_OF_FILE) { + return STOP_PARSING_END_OF_FILE; + } else if (any_comment == CONTINUE_PARSING_SLASH_CONSUMED) { + // We accidentally ate a slash -- we should actually bail out, say we saw nothing, and let the next pass + // take it from after the newline. + return CONTINUE_PARSING_SLASH_CONSUMED; + } else if (lexer->lookahead == '/') { + // There wasn't a multiline comment, which we know means that the comment parser ate its `/` and then + // bailed out. If it had seen anything comment-like after that first `/` it would have continued going + // and eventually had a well-formed comment or an EOF. Thus, if we're currently looking at a `/`, it's + // the second one of those and it means we have a single-line comment. + has_seen_single_comment = true; + while (lexer->lookahead != '\n' && lexer->lookahead != '\0') { + lexer->advance(lexer, true); + } + } else if (iswspace(lexer->lookahead)) { + // We didn't see any type of comment - in fact, we saw an operator that we don't normally treat as an + // operator. Still, this is a reason to stop parsing. + return STOP_PARSING_NOTHING_FOUND; + } + + // If we skipped through some comment, we're at whitespace now, so advance. + while(iswspace(lexer->lookahead)) { + any_comment = CONTINUE_PARSING_NOTHING_FOUND; // We're advancing, so clear out the comment + lexer->advance(lexer, true); + } + } + + enum TokenType operator_result; + bool saw_operator = eat_operators( + lexer, + valid_symbols, + /* mark_end */ false, + '\0', + &operator_result + ); + if (saw_operator) { + // The operator we saw should suppress the newline, so bail out. + return STOP_PARSING_NOTHING_FOUND; + } else { + // Promote the implicit newline to an explicit one so we don't check for operators again. + *symbol_result = IMPLICIT_SEMI; + ws_directive = STOP_PARSING_TOKEN_FOUND; + } + } + + // Let's consume operators that can live after a "semicolon" style newline. Before we do that, though, we want to + // check for a set of characters that we do not consume, but that still suppress the semi. + if (ws_directive == CONTINUE_PARSING_TOKEN_FOUND) { + for (int i = 0; i < NON_CONSUMING_CROSS_SEMI_CHAR_COUNT; i++) { + if (NON_CONSUMING_CROSS_SEMI_CHARS[i] == lookahead) { + return CONTINUE_PARSING_NOTHING_FOUND; + } + } + } + + if (semi_is_valid && ws_directive != CONTINUE_PARSING_NOTHING_FOUND) { + *symbol_result = lookahead == ';' ? EXPLICIT_SEMI : IMPLICIT_SEMI; + return ws_directive; + } + + return CONTINUE_PARSING_NOTHING_FOUND; +} + +#define DIRECTIVE_COUNT 4 +const char* DIRECTIVES[OPERATOR_COUNT] = { + "if", + "elseif", + "else", + "endif" +}; + +const enum TokenType DIRECTIVE_SYMBOLS[DIRECTIVE_COUNT] = { + DIRECTIVE_IF, + DIRECTIVE_ELSEIF, + DIRECTIVE_ELSE, + DIRECTIVE_ENDIF +}; + +static enum TokenType find_possible_compiler_directive(TSLexer *lexer) { + bool possible_directives[DIRECTIVE_COUNT]; + for (int dir_idx = 0; dir_idx < DIRECTIVE_COUNT; dir_idx++) { + possible_directives[dir_idx] = true; + } + + int32_t str_idx = 0; + int32_t full_match = -1; + while(true) { + for (int dir_idx = 0; dir_idx < DIRECTIVE_COUNT; dir_idx++) { + if (!possible_directives[dir_idx]) { + continue; + } + + uint8_t expected_char = DIRECTIVES[dir_idx][str_idx]; + if (expected_char == '\0') { + full_match = dir_idx; + lexer->mark_end(lexer); + } + + if (expected_char != lexer->lookahead) { + possible_directives[dir_idx] = false; + continue; + } + } + + uint8_t match_count = 0; + for (int dir_idx = 0; dir_idx < DIRECTIVE_COUNT; dir_idx += 1) { + if (possible_directives[dir_idx]) { + match_count += 1; + } + } + + if (match_count == 0) { + break; + } + + lexer->advance(lexer, false); + str_idx += 1; + } + + if (full_match == -1) { + // No compiler directive found, so just match the starting symbol + return HASH_SYMBOL; + } + + return DIRECTIVE_SYMBOLS[full_match]; +} + +static bool eat_raw_str_part( + struct ScannerState *state, + TSLexer *lexer, + const bool *valid_symbols, + enum TokenType *symbol_result +) { + uint32_t hash_count = state->ongoing_raw_str_hash_count; + if (!valid_symbols[RAW_STR_PART]) { + return false; + } else if (hash_count == 0) { + // If this is a raw_str_part, it's the first one - look for hashes + while (lexer->lookahead == '#') { + hash_count += 1; + advance(lexer); + } + + if (hash_count == 0) { + return false; + } + + if (lexer->lookahead == '"') { + advance(lexer); + } else if (hash_count == 1) { + lexer->mark_end(lexer); + *symbol_result = find_possible_compiler_directive(lexer); + return true; + } else { + return false; + } + + } else if (valid_symbols[RAW_STR_CONTINUING_INDICATOR]) { + // This is the end of an interpolation - now it's another raw_str_part. This is a synthetic + // marker to tell us that the grammar just consumed a `(` symbol to close a raw + // interpolation (since we don't want to fire on every `(` in existence). We don't have + // anything to do except continue. + } else { + return false; + } + + // We're in a state where anything other than `hash_count` hash symbols in a row should be eaten + // and is part of a string. + // The last character _before_ the hashes will tell us what happens next. + // Matters are also complicated by the fact that we don't want to consume every character we + // visit; if we see a `\#(`, for instance, with the appropriate number of hash symbols, we want + // to end our parsing _before_ that sequence. This allows highlighting tools to treat that as a + // separate token. + while (lexer->lookahead != '\0') { + uint8_t last_char = '\0'; + lexer->mark_end(lexer); // We always want to parse thru the start of the string so far + // Advance through anything that isn't a hash symbol, because we want to count those. + while (lexer->lookahead != '#' && lexer->lookahead != '\0') { + last_char = lexer->lookahead; + advance(lexer); + if (last_char != '\\' || lexer->lookahead == '\\') { + // Mark a new end, but only if we didn't just advance past a `\` symbol, since we + // don't want to consume that. Exception: if this is a `\` that happens _right + // after_ another `\`, we for some reason _do_ want to consume that, because + // apparently that is parsed as a literal `\` followed by something escaped. + lexer->mark_end(lexer); + } + } + + // We hit at least one hash - count them and see if they match. + uint32_t current_hash_count = 0; + while (lexer->lookahead == '#' && current_hash_count < hash_count) { + current_hash_count += 1; + advance(lexer); + } + + // If we saw exactly the right number of hashes, one of three things is true: + // 1. We're trying to interpolate into this string. + // 2. The string just ended. + // 3. This was just some hash characters doing nothing important. + if (current_hash_count == hash_count) { + if (last_char == '\\' && lexer->lookahead == '(') { + // Interpolation case! Don't consume those chars; they get saved for grammar.js. + *symbol_result = RAW_STR_PART; + state->ongoing_raw_str_hash_count = hash_count; + return true; + } else if (last_char == '"') { + // The string is finished! Mark the end here, on the very last hash symbol. + lexer->mark_end(lexer); + *symbol_result = RAW_STR_END_PART; + state->ongoing_raw_str_hash_count = 0; + return true; + } + // Nothing special happened - let the string continue. + } + } + + return false; +} + +bool tree_sitter_swift_external_scanner_scan( + void *payload, + TSLexer *lexer, + const bool *valid_symbols +) { + // Figure out our scanner state + struct ScannerState *state = (struct ScannerState *)payload; + + // Consume any whitespace at the start. + enum TokenType ws_result; + enum ParseDirective ws_directive = eat_whitespace(lexer, valid_symbols, &ws_result); + if (ws_directive == STOP_PARSING_TOKEN_FOUND) { + lexer->result_symbol = ws_result; + return true; + } + + if (ws_directive == STOP_PARSING_NOTHING_FOUND || ws_directive == STOP_PARSING_END_OF_FILE) { + return false; + } + + bool has_ws_result = (ws_directive == CONTINUE_PARSING_TOKEN_FOUND); + + // Now consume comments (before custom operators so that those aren't treated as comments) + enum TokenType comment_result; + enum ParseDirective comment = ws_directive == CONTINUE_PARSING_SLASH_CONSUMED ? ws_directive : eat_comment(lexer, valid_symbols, /* mark_end */ true, &comment_result); + if (comment == STOP_PARSING_TOKEN_FOUND) { + lexer->mark_end(lexer); + lexer->result_symbol = comment_result; + return true; + } + + if (comment == STOP_PARSING_END_OF_FILE) { + return false; + } + // Now consume any operators that might cause our whitespace to be suppressed. + enum TokenType operator_result; + bool saw_operator = eat_operators( + lexer, + valid_symbols, + /* mark_end */ !has_ws_result, + comment == CONTINUE_PARSING_SLASH_CONSUMED ? '/' : '\0', + &operator_result + ); + + if (saw_operator && (!has_ws_result || is_cross_semi_token(operator_result))) { + lexer->result_symbol = operator_result; + if (has_ws_result) lexer->mark_end(lexer); + return true; + } + + if (has_ws_result) { + // Don't `mark_end`, since we may have advanced through some operators. + lexer->result_symbol = ws_result; + return true; + } + + // NOTE: this will consume any `#` characters it sees, even if it does not find a result. Keep + // it at the end so that it doesn't interfere with special literals or selectors! + enum TokenType raw_str_result; + bool saw_raw_str_part = eat_raw_str_part(state, lexer, valid_symbols, &raw_str_result); + if (saw_raw_str_part) { + lexer->result_symbol = raw_str_result; + return true; + } + + return false; +} + diff --git a/unified/extractor/tree-sitter-swift/tree-sitter.json b/unified/extractor/tree-sitter-swift/tree-sitter.json new file mode 100644 index 000000000000..3cd49a28a38f --- /dev/null +++ b/unified/extractor/tree-sitter-swift/tree-sitter.json @@ -0,0 +1,39 @@ +{ + "grammars": [ + { + "name": "swift", + "camelcase": "Swift", + "scope": "source.swift", + "path": ".", + "file-types": [ + "swift" + ], + "highlights": "queries/highlights.scm", + "injections": "queries/injections.scm", + "locals": "queries/locals.scm", + "injection-regex": "swift" + } + ], + "metadata": { + "version": "0.7.2", + "license": "MIT", + "description": "A tree-sitter grammar for the Swift programming language.", + "authors": [ + { + "name": "Alex Pinkus", + "email": "alex.pinkus@gmail.com" + } + ], + "links": { + "repository": "git+https://github.com/alex-pinkus/tree-sitter-swift.git" + } + }, + "bindings": { + "c": true, + "go": true, + "node": true, + "python": true, + "rust": true, + "swift": true + } +}