content: [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 <maxbrunsfeld@gmail.com>",
    "Amaan Qureshi <amaanq12@gmail.com>",
  ]
  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.13"
  anyhow = "1.0.100"
  bstr = "1.12.0"
  cc = "1.2.41"
  clap = { version = "4.5.48", features = [
    "cargo",
    "derive",
    "env",
    "help",
    "string",
    "unstable-styles",
  ] }
  clap_complete = "4.5.58"
  clap_complete_nushell = "4.5.8"
  crc32fast = "1.5.0"
  ctor = "0.2.9"
  ctrlc = { version = "3.5.0", features = ["termination"] }
  dialoguer = { version = "0.11.0", features = ["fuzzy-select"] }
  etcetera = "0.10.0"
  fs4 = "0.12.0"
  glob = "0.3.3"
  heck = "0.5.0"
  html-escape = "0.2.13"
  indexmap = "2.11.4"
  indoc = "2.0.6"
  libloading = "0.8.9"
  log = { version = "0.4.28", features = ["std"] }
  memchr = "2.7.6"
  once_cell = "1.21.3"
  pretty_assertions = "1.4.1"
  rand = "0.8.5"
  regex = "1.11.3"
  regex-syntax = "0.8.6"
  rustc-hash = "2.1.1"
  semver = { version = "1.0.27", features = ["serde"] }
  serde = { version = "1.0.219", features = ["derive"] }
  serde_json = { version = "1.0.145", features = ["preserve_order"] }
  similar = "2.7.0"
  smallbitvec = "2.6.0"
  streaming-iterator = "0.1.9"
  tempfile = "3.23.0"
  thiserror = "2.0.17"
  tiny_http = "0.12.0"
  topological-sort = "0.2.2"
  unindent = "0.2.4"
  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-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" }
  
  tree-sitter-language = { version = "0.1.5", path = "./crates/language" }
  