[package]
name = "just-lsp"
version = "0.4.0"
description = "A language server for just"
authors = ["Liam <liam@scalzulli.com>"]
license = "CC0-1.0"
homepage = "https://github.com/terror/just-lsp"
repository = "https://github.com/terror/just-lsp"
edition = "2024"
exclude = ["/screenshot.png", "/www"]
categories = ["development-tools"]
keywords = ["productivity", "compilers", "language-servers", "just", "tree-sitter"]
resolver = "2"

include = [
  "/LICENSE",
  "/README.md",
  "/build.rs",
  "/src/",
  "/queries/**",
  "/vendor/*-src/**.c",
  "/vendor/*-src/**/**.h"
]

[lints]
workspace = true

[profile.release]
codegen-units = 1
lto = true

[workspace]
members = [".", "crates/*"]

[workspace.lints.rust]
mismatched_lifetime_syntaxes = "allow"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(fuzzing)'] }

[workspace.lints.clippy]
all = { level = "deny", priority = -1 }
arbitrary-source-item-ordering = "deny"
enum_glob_use = "allow"
ignore_without_reason = "allow"
needless_pass_by_value = "allow"
pedantic = { level = "deny", priority = -1 }
similar_names = "allow"
struct_excessive_bools = "allow"
struct_field_names = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
type_complexity = "allow"
undocumented_unsafe_blocks = "deny"
unnecessary_wraps = "allow"
wildcard_imports = "allow"

[dependencies]
anyhow = "1.0.102"
ariadne = "0.6.0"
clap = { version = "4.5.60", features = ["derive"] }
dirs = "6.0.0"
env_logger = "0.11.9"
inventory = "0.3"
log = "0.4.29"
ropey = "1.6.1"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
target = "2.1.0"
tempfile = "3.26.0"
tokio = { version = "1.50.0", features = ["io-std", "io-util", "macros", "process", "rt-multi-thread"] }
tokio-stream = { version = "0.1.18", features = ["io-util"] }
tower-lsp = "0.20.0"
tree-sitter = "0.26.6"
tree-sitter-highlight = "0.26.6"

[dev-dependencies]
indoc = "2.0.7"
pretty_assertions = "1.4.1"
serde_json = "1.0.149"
tower-test = "0.4.0"

[build-dependencies]
cc = "1.2.56"
