[workspace] default-members = ["cli"] members = [ "cli", "cli/config", "cli/loader", "lib", "lib/language", "tags", "highlight", "xtask", ] resolver = "2" [workspace.package] version = "0.25.0" authors = ["Max Brunsfeld "] edition = "2021" rust-version = "1.74.1" 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" 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" [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] anstyle = "1.0.10" anyhow = "1.0.94" bstr = "1.11.1" cc = "1.2.4" clap = { version = "4.5.23", features = [ "cargo", "derive", "env", "help", "unstable-styles", ] } clap_complete = "4.5.39" clap_complete_nushell = "4.5.4" ctor = "0.2.9" ctrlc = { version = "3.4.5", features = ["termination"] } dialoguer = { version = "0.11.0", features = ["fuzzy-select"] } etcetera = "0.8.0" filetime = "0.2.25" fs4 = "0.12.0" git2 = "0.19.0" glob = "0.3.1" heck = "0.5.0" html-escape = "0.2.13" indexmap = "2.7.0" indoc = "2.0.5" lazy_static = "1.5.0" libloading = "0.8.6" log = { version = "0.4.22", features = ["std"] } memchr = "2.7.4" once_cell = "1.20.2" path-slash = "0.2.1" pretty_assertions = "1.4.1" rand = "0.8.5" regex = "1.11.1" regex-syntax = "0.8.5" rustc-hash = "2.1.0" semver = { version = "1.0.24", features = ["serde"] } serde = { version = "1.0.216", features = ["derive"] } serde_derive = "1.0.216" serde_json = { version = "1.0.133", features = ["preserve_order"] } similar = "2.6.0" smallbitvec = "2.5.3" streaming-iterator = "0.1.9" tempfile = "3.14.0" thiserror = "2.0.7" tiny_http = "0.12.0" toml = "0.8.19" unindent = "0.2.3" url = { version = "2.5.4", features = ["serde"] } walkdir = "2.5.0" wasmparser = "0.221.2" webbrowser = "1.0.3" tree-sitter = { version = "0.25.0", path = "./lib" } tree-sitter-generate = { version = "0.25.0", path = "./cli/generate" } tree-sitter-loader = { version = "0.25.0", path = "./cli/loader" } tree-sitter-config = { version = "0.25.0", path = "./cli/config" } tree-sitter-highlight = { version = "0.25.0", path = "./highlight" } tree-sitter-tags = { version = "0.25.0", path = "./tags" }