[package] name = "topiary-cli" description = "CLI app for Topiary, the universal code formatter." categories = ["command-line-utilities", "development-tools", "text-processing"] keywords = [ "cli", "code-formatter", "formatter", "text", "tree-sitter", ] version.workspace = true edition.workspace = true authors.workspace = true homepage.workspace = true repository.workspace = true documentation.workspace = true readme.workspace = true license.workspace = true [[bin]] name = "topiary" path = "src/main.rs" [dependencies] # For now we just load the tree-sitter language parsers statically. # Eventually we will want to dynamically load them, like Helix does. async-scoped = { workspace = true } clap = { workspace = true, features = ["derive", "env", "wrap_help"] } clap_complete = { workspace = true } env_logger = { workspace = true } futures = { workspace = true } itertools = { workspace = true } log = { workspace = true } serde = { workspace = true, features = ["derive"] } tempfile = { workspace = true } tokio = { workspace = true, features = ["fs", "rt-multi-thread", "sync", "macros"] } toml = { workspace = true } topiary-core.workspace = true topiary-config.workspace = true topiary-queries.workspace = true topiary-tree-sitter-facade.workspace = true # tree-sitter-json = { workspace = true, optional = true } # tree-sitter-css = { workspace = true, optional = true } # tree-sitter-rust = { workspace = true, optional = true } # tree-sitter-toml = { workspace = true, optional = true } # tree-sitter-bash = { workspace = true, optional = true } # tree-sitter-nickel = { workspace = true, optional = true } # tree-sitter-query = { workspace = true, optional = true } # tree-sitter-ocaml = { workspace = true, optional = true } # tree-sitter-ocamllex = { workspace = true, optional = true } [dev-dependencies] assert_cmd = { workspace = true } predicates = { workspace = true } [features] default = [ "contributed", "bash", "json", "nickel", "ocaml", "ocaml_interface", "ocamllex", "toml", "tree_sitter_query" ] # Included by default contributed = [ "css" ] # Excluded by default experimental = [ "rust", ] bash = ["topiary-config/bash", "topiary-queries/bash"] css = ["topiary-config/css", "topiary-queries/css"] json = ["topiary-config/json", "topiary-queries/json"] nickel = ["topiary-config/nickel", "topiary-queries/nickel"] ocaml = ["topiary-config/ocaml", "topiary-queries/ocaml"] ocaml_interface = ["topiary-config/ocaml_interface", "topiary-queries/ocaml_interface"] ocamllex = ["topiary-config/ocamllex", "topiary-queries/ocamllex"] rust = ["topiary-config/rust", "topiary-queries/rust"] toml = ["topiary-config/toml", "topiary-queries/toml"] tree_sitter_query = ["topiary-config/tree_sitter_query", "topiary-queries/tree_sitter_query"]