[workspace] default-members = ["crates/cli"] members = [ "crates/cli", "crates/config", "crates/generate", "crates/highlight", "crates/loader", "crates/tags", "crates/xtask", "crates/language", "lib", ] resolver = "2" [workspace.package] version = "0.26.0" authors = [ "Max Brunsfeld ", "Amaan Qureshi ", ] edition = "2021" rust-version = "1.84" homepage = "https://tree-sitter.github.io/tree-sitter" repository = "https://github.com/tree-sitter/tree-sitter" license = "MIT" keywords = ["incremental", "parsing"] categories = ["command-line-utilities", "parsing"] [workspace.lints.clippy] dbg_macro = "deny" todo = "deny" pedantic = { level = "warn", priority = -1 } nursery = { level = "warn", priority = -1 } cargo = { level = "warn", priority = -1 } # The lints below are a specific subset of the pedantic+nursery lints # that we explicitly allow in the tree-sitter codebase because they either: # # 1. Contain false positives, # 2. Are unnecessary, or # 3. Worsen the code branches_sharing_code = "allow" cast_lossless = "allow" cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_precision_loss = "allow" cast_sign_loss = "allow" checked_conversions = "allow" cognitive_complexity = "allow" collection_is_never_read = "allow" fallible_impl_from = "allow" fn_params_excessive_bools = "allow" inline_always = "allow" if_not_else = "allow" items_after_statements = "allow" match_wildcard_for_single_variants = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" module_name_repetitions = "allow" multiple_crate_versions = "allow" needless_for_each = "allow" obfuscated_if_else = "allow" option_if_let_else = "allow" or_fun_call = "allow" range_plus_one = "allow" redundant_clone = "allow" redundant_closure_for_method_calls = "allow" ref_option = "allow" similar_names = "allow" string_lit_as_bytes = "allow" struct_excessive_bools = "allow" struct_field_names = "allow" transmute_undefined_repr = "allow" too_many_lines = "allow" unnecessary_wraps = "allow" unused_self = "allow" used_underscore_items = "allow" [workspace.lints.rust] mismatched_lifetime_syntaxes = "allow" [profile.optimize] inherits = "release" strip = true # Automatically strip symbols from the binary. lto = true # Link-time optimization. opt-level = 3 # Optimization level 3. codegen-units = 1 # Maximum size reduction optimizations. [profile.size] inherits = "optimize" opt-level = "s" # Optimize for size. [profile.release-dev] inherits = "release" lto = false debug = true debug-assertions = true overflow-checks = true incremental = true codegen-units = 256 [workspace.dependencies] ansi_colours = "1.2.3" anstyle = "1.0.11" anyhow = "1.0.99" bstr = "1.12.0" cc = "1.2.34" clap = { version = "4.5.45", features = [ "cargo", "derive", "env", "help", "string", "unstable-styles", ] } clap_complete = "4.5.57" clap_complete_nushell = "4.5.8" ctor = "0.2.9" ctrlc = { version = "3.4.7", features = ["termination"] } dialoguer = { version = "0.11.0", features = ["fuzzy-select"] } etcetera = "0.10.0" filetime = "0.2.26" flate2 = "1.1.2" fs4 = "0.12.0" git2 = "0.20.2" glob = "0.3.3" heck = "0.5.0" html-escape = "0.2.13" indexmap = "2.11.0" indoc = "2.0.6" libloading = "0.8.8" log = { version = "0.4.27", features = ["std"] } memchr = "2.7.5" once_cell = "1.21.3" path-slash = "0.2.1" pretty_assertions = "1.4.1" rand = "0.8.5" regex = "1.11.2" regex-syntax = "0.8.6" rustc-hash = "2.1.1" semver = { version = "1.0.26", features = ["serde"] } serde = { version = "1.0.219", features = ["derive"] } serde_derive = "1.0.217" serde_json = { version = "1.0.143", features = ["preserve_order"] } similar = "2.7.0" smallbitvec = "2.6.0" streaming-iterator = "0.1.9" tar = "0.4.40" tempfile = "3.21.0" thiserror = "2.0.16" tiny_http = "0.12.0" toml = "0.8.23" topological-sort = "0.2.2" unindent = "0.2.4" url = { version = "2.5.4", features = ["serde"] } walkdir = "2.5.0" wasmparser = "0.229.0" webbrowser = "1.0.5" tree-sitter = { version = "0.26.0", path = "./lib" } tree-sitter-generate = { version = "0.26.0", path = "./crates/generate" } tree-sitter-language = { path = "./crates/language" } tree-sitter-loader = { version = "0.26.0", path = "./crates/loader" } tree-sitter-config = { version = "0.26.0", path = "./crates/config" } tree-sitter-highlight = { version = "0.26.0", path = "./crates/highlight" } tree-sitter-tags = { version = "0.26.0", path = "./crates/tags" }