[package]
name = "glum"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
description = "A reading-focused terminal markdown viewer"
license = "Apache-2.0"
authors = ["Jascha Wanger <https://jascha.me>"]
repository = "https://github.com/jaschadub/glum"
readme = "README.md"
keywords = ["markdown", "tui", "reader", "cli"]
categories = ["command-line-utilities", "text-processing"]

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

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

[dependencies]
ratatui = { version = "0.29", default-features = false, features = ["crossterm"] }
crossterm = "0.28"
pulldown-cmark = { version = "0.12", default-features = false }
textwrap = { version = "0.16", default-features = false, features = ["unicode-linebreak", "unicode-width"] }
unicode-width = "0.2"
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
dirs = "5"
sha2 = "0.10"
anyhow = "1"
notify = { version = "6", default-features = false, features = ["macos_kqueue"] }

[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
opt-level = 3

[profile.dev]
opt-level = 0
debug = 1

[lints.rust]
unsafe_code = "forbid"

[lints.clippy]
pedantic = { level = "warn", priority = -1 }
# Allow these pedantic lints that are noisy for this codebase
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
cast_possible_wrap = "allow"
similar_names = "allow"
too_many_lines = "allow"
many_single_char_names = "allow"
match_same_arms = "allow"
struct_excessive_bools = "allow"
too_many_arguments = "allow"
return_self_not_must_use = "allow"
unnecessary_wraps = "allow"
redundant_closure_for_method_calls = "allow"
