[package]
name = "flake-edit"
description = "Edit your flake inputs with ease."
version = "0.3.6"
edition = "2024"
keywords = ["nix", "flake", "terminal", "cli"]
categories = ["command-line-utilities"]
authors = ["Alexander Kenji Berthold"]
readme = "README.md"
license = "MIT"
repository = "https://github.com/a-kenji/flake-edit"
documentation = "https://github.com/a-kenji/flake-edit"
homepage = "https://github.com/a-kenji/flake-edit"
include = ["src/**/*", "docs/man/**/*", "LICENSE", "README.md", "build.rs"]
[[bin]]
name = "flake-edit"
required-features = ["application"]
[workspace]
members = ["."]
[features]
default = ["application"]
application = [
"clap",
"write",
"assets",
"anyhow",
"diffy",
"tracing-subscriber",
"ratatui",
"crossterm",
"nucleo-matcher",
]
write = []
assets = [
"clap_complete",
"clap_complete_nushell",
"clap_mangen",
"manners",
"roff",
]
[dependencies]
anyhow = { version = "1.0.102", optional = true }
clap = { version = "4.6.1", optional = true, features = ["derive"] }
color-eyre = { version = "0.6.5", default-features = false, features = [
"track-caller",
] }
diffy = { version = "0.5.0", optional = true, features = ["std", "color"] }
directories = "6.0.0"
nix-uri = "0.2.0"
ureq = { version = "3", default-features = false, features = ["rustls"] }
rnix = "0.14.0"
ropey = { version = "1.6.1" }
semver = "1.0.28"
serde = { version = "1.0.228", default-features = false, features = [
"derive",
"alloc",
] }
serde_json = { version = "1.0.150" }
smallvec = { version = "1.15", features = ["const_generics", "union"] }
toml = "1.1"
thiserror = "2.0.18"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = [
"time",
"std",
"fmt",
"env-filter",
], optional = true }
ratatui = { version = "0.30.1", optional = true, default-features = false, features = [
"crossterm",
] }
crossterm = { version = "0.29.0", optional = true, default-features = false }
nucleo-matcher = { version = "0.3", optional = true }
[build-dependencies]
clap = { version = "4.6.1", features = ["derive"], optional = true }
clap_complete = { version = "4.6.5", features = [], optional = true }
clap_complete_nushell = { version = "4.6.0", optional = true }
clap_mangen = { version = "0.3.0", features = [], optional = true }
manners = { version = "0.1", optional = true }
roff = { version = "1.1.1", optional = true }
[[bench]]
name = "benches"
path = "benches/benches.rs"
harness = false
[[bench]]
name = "divan"
path = "benches/divan.rs"
harness = false
[profile.release]
lto = true
codegen-units = 1
opt-level = 'z'
strip = true
panic = "abort"
[profile.dev]
incremental = true
lto = "thin"
debug = false
[profile.dev.package.insta]
opt-level = 3
[profile.dev.package.similar]
opt-level = 3
[profile.dev.package.backtrace]
opt-level = 3
[dev-dependencies]
criterion = "0.8.2"
divan = "0.1.21"
insta = { version = "1.47.2", features = ["yaml", "filters", "redactions"] }
insta-cmd = "0.6"
rstest = "0.26"
tempfile = "3"
[lints.rust]
unsafe_code = "deny"
unused_extern_crates = "warn"
unreachable_pub = "warn"
[lints.clippy]
allow_attributes = "warn"
dbg_macro = "warn"
exit = "deny"
todo = "warn"
unimplemented = "warn"
mem_forget = "warn"
rc_mutex = "warn"
unchecked_time_subtraction = "warn"
float_cmp = "warn"
filetype_is_file = "warn"
clone_on_ref_ptr = "warn"
if_then_some_else_none = "warn"
tabs_in_doc_comments = "warn"
[lints.rustdoc]
bare_urls = "warn"