[package]
name = "env-forge-tui"
version = "0.7.2"
edition = "2021"
rust-version = "1.75"
description = "Terminal environment variable manager with TUI and CLI"
license = "MIT"
repository = "https://github.com/emreerinc/envforge"
homepage = "https://github.com/emreerinc/envforge"
readme = "README.md"
keywords = ["env", "environment", "terminal", "tui", "shell"]
categories = ["command-line-utilities"]
authors = ["Emre Erinc"]
exclude = [".specsmd/", "memory-bank/", ".github/", "node_modules/", ".claude/", ".agents/", ".idea", ".vscode", "target/", "plans/"]

[[bin]]
name = "envforge"
path = "src/main.rs"

[lib]
name = "envforge"
path = "src/lib.rs"

[dependencies]
regex = "1"
sha2 = "0.11"
dirs = "6"
thiserror = "2"
log = "0.4"
serde = { version = "1", features = ["derive"] }
toml = "1.1"
tempfile = "3"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
copypasta = "0.10"
ratatui = "0.30.0"
crossterm = "0.29"
clap = { version = "4", features = ["derive"] }
serde_json = "1"
fuzzy-matcher = "0.3.7"
clap_complete = { version = "4.6.0", features = ["default"] }
clap_complete_fig = "4"
age = { version = "0.11.2", default-features = false, features = ["armor"] }
base64 = "0.22.1"
hex = "0.4"
hostname = "0.4"
rand = "0.10.1"
serde_norway = "0.9.42"
tower-lsp = "0.20"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-std", "process", "time", "io-util"] }
dashmap = "5.5"
uuid = { version = "1", features = ["v4", "serde"] }

[lints.rust]
future-incompatible = "warn"
nonstandard_style = { level = "deny", priority = 1 }

[lints.clippy]
all = { level = "deny", priority = -1 }
redundant_clone = "deny"
large_enum_variant = "deny"
needless_collect = "deny"
pedantic = { level = "warn", priority = -1 }
# Pedantic lints we intentionally allow
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
too_many_lines = "allow"
struct_excessive_bools = "allow"
return_self_not_must_use = "allow"
doc_markdown = "allow"
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
similar_names = "allow"
uninlined_format_args = "allow"
unnecessary_wraps = "allow"
wildcard_imports = "allow"
redundant_closure_for_method_calls = "allow"
needless_pass_by_value = "allow"
unused_self = "allow"
items_after_statements = "allow"
implicit_hasher = "allow"
manual_string_new = "allow"
format_push_string = "allow"
needless_lifetimes = "allow"
needless_raw_string_hashes = "allow"
option_if_let_else = "allow"
str_to_string = "allow"
match_same_arms = "allow"
bool_to_int_with_if = "allow"
single_match_else = "allow"
single_char_pattern = "allow"
unreadable_literal = "allow"
match_bool = "allow"
if_not_else = "allow"
manual_is_variant_and = "allow"
map_unwrap_or = "allow"
redundant_else = "allow"
case_sensitive_file_extension_comparisons = "allow"
fn_params_excessive_bools = "allow"
semicolon_if_nothing_returned = "allow"
unnested_or_patterns = "allow"
used_underscore_binding = "allow"
inefficient_to_string = "allow"
unnecessary_literal_bound = "allow"
option_option = "allow"
manual_let_else = "allow"
implicit_clone = "allow"
cast_possible_wrap = "allow"
doc_link_with_quotes = "allow"
match_wildcard_for_single_variants = "allow"
assigning_clones = "allow"
if_then_some_else_none = "allow"
ignored_unit_patterns = "allow"
comparison_chain = "allow"
collapsible_match = "allow"

[dev-dependencies]
insta = "1.47.2"
