[package]
name = "fff-nvim"
version = "0.10.1"
edition = "2024"

[lints]
workspace = true

[lib]
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]

[features]
# Pure-Rust walker by default; zlob is opt-in (needs Zig).
default = ["ripgrep"]
ripgrep = ["fff/ripgrep", "fff-query-parser/ripgrep", "dep:ignore"]
zlob = ["fff/zlob", "fff-query-parser/zlob", "dep:zlob"]

[dependencies]
# Workspace dependencies
ahash = { workspace = true }
tracing = { workspace = true }

# Local crates
fff = { package = "fff-search", path = "../fff-core", version = "0.10.1", default-features = false, features = [
	"mimalloc-collect",
] }
fff-query-parser = { path = "../fff-query-parser", version = "0.10.1", default-features = false }
chrono = { version = "0.4", features = ["serde"] }
ctrlc = "3.4.2"
git2 = { workspace = true }
ignore = { version = "0.4.22", optional = true }
mimalloc = { version = "0.1.47", features = ["local_dynamic_tls"] }
mlua = { version = "0.11.1", features = ["module", "luajit"] }
once_cell = "1.20.2"
zlob = { workspace = true, optional = true }

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
rand = { version = "0.8", features = ["small_rng"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

[[bench]]
name = "fuzzy_search"
path = "benches/fuzzy_search_bench.rs"
harness = false

[[bench]]
name = "grep_bench"
path = "benches/grep_bench.rs"
harness = false

[[bench]]
name = "query_tracker"
path = "benches/query_tracker_bench.rs"
harness = false

[[bench]]
name = "scan"
path = "benches/scan_bench.rs"
harness = false
