[package]
name = "ecolog-lsp"
version = "0.2.3"
edition = "2021"
license = "MIT"
description = "Language Agnostic LSP for Environment Variables"

[dependencies]
# LSP & Async
tower-lsp = "0.20"
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
futures = "0.3"

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Analysis
tree-sitter = "0.24"
tree-sitter-javascript = "0.23"
tree-sitter-typescript = "0.23"
tree-sitter-python = "0.23"
tree-sitter-rust = "0.23"
tree-sitter-go = "0.23"
tree-sitter-lua = "0.2"

# Data Structures
dashmap = "6.0"
compact_str = { version = "0.8", features = ["serde"] }
parking_lot = "0.12"
text-size = "1.1"
rustc-hash = "2.1"
smallvec = "1.15"
quick_cache = "0.6"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Workspace
abundantis = { version = "0.1.9", features = ["full"] }
korni = "0.1.4"

# Error Handling
anyhow = "1.0"
thiserror = "2.0"
streaming-iterator = "0.1.9"
toml = "0.9.10"
ropey = "1.6.1"
glob = "0.3.3"

# Workspace Indexing
ignore = "0.4"
num_cpus = "1.16"

[dev-dependencies]
tempfile = "3"
tokio-test = "0.4"
assert-json-diff = "2.0"

[[test]]
name = "e2e"
path = "tests/e2e/mod.rs"
harness = true
