[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] authors = [ "Max Brunsfeld ", "Amaan Qureshi " ] categories = [ "command-line-utilities", "parsing" ] edition = "2024" homepage = "https://tree-sitter.github.io/tree-sitter" keywords = [ "incremental", "parsing" ] license = "MIT" repository = "https://github.com/tree-sitter/tree-sitter" rust-version = "1.90" version = "0.27.0" [workspace.lints.clippy] cargo = { level = "warn", priority = -1 } dbg_macro = "deny" nursery = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } todo = "deny" # 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 cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_precision_loss = "allow" cast_sign_loss = "allow" if_not_else = "allow" items_after_statements = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" multiple_crate_versions = "allow" option_if_let_else = "allow" similar_names = "allow" string_lit_as_bytes = "allow" struct_excessive_bools = "allow" too_many_lines = "allow" [workspace.lints.rust] mismatched_lifetime_syntaxes = "allow" [profile.optimize] inherits = "release" codegen-units = 1 # Maximum size reduction optimizations. lto = true # Link-time optimization. opt-level = 3 # Optimization level 3. strip = true # Automatically strip symbols from the binary. [profile.size] inherits = "optimize" opt-level = "s" # Optimize for size. [profile.release-dev] inherits = "release" codegen-units = 256 debug = true debug-assertions = true incremental = true lto = false overflow-checks = true [workspace.dependencies] ansi_colours = "1.2.3" anstyle = "1.0.14" anyhow = "1.0.102" bstr = "1.12.1" cc = "1.2.58" clap = { features = [ "cargo", "derive", "env", "help", "string", "unstable-styles", ], version = "4.5.58" } clap_complete = "4.5.66" clap_complete_nushell = "4.5.10" crc32fast = "1.5.0" ctor = "0.6.3" ctrlc = { features = [ "termination" ], version = "3.5.2" } dialoguer = { features = [ "fuzzy-select" ], version = "0.12.0" } etcetera = "0.11.0" glob = "0.3.3" heck = "0.5.0" html-escape = "0.2.13" indexmap = "2.13.0" indoc = "2.0.7" libloading = "0.9.0" log = { features = [ "std" ], version = "0.4.29" } memchr = "2.8.0" once_cell = "1.21.3" pretty_assertions = "1.4.1" rand = "0.10.0" regex = "1.12.3" regex-syntax = "0.8.9" rustc-hash = "2.1.1" schemars = "1.2.1" semver = { features = [ "serde" ], version = "1.0.27" } serde = { features = [ "derive" ], version = "1.0.228" } serde_json = { features = [ "preserve_order" ], version = "1.0.149" } similar = "2.7.0" streaming-iterator = "0.1.9" tempfile = "3.25.0" thiserror = "2.0.18" tiny_http = "0.12.0" topological-sort = "0.2.2" unindent = "0.2.4" walkdir = "2.5.0" wasmparser = "0.244.0" webbrowser = "1.1.0" tree-sitter = { path = "./lib", version = "0.27.0" } tree-sitter-config = { path = "./crates/config", version = "0.27.0" } tree-sitter-generate = { path = "./crates/generate", version = "0.27.0", default-features = false } tree-sitter-highlight = { path = "./crates/highlight", version = "0.27.0" } tree-sitter-loader = { path = "./crates/loader", version = "0.27.0" } tree-sitter-tags = { path = "./crates/tags", version = "0.27.0" } tree-sitter-language = { path = "./crates/language", version = "0.1" }