rust/crates/rust-analyzer/Cargo.toml
Aleksey Kladov 881d71a489 internal: reduce crate interdependence
I don't think there's anything wrong with project_model depending on
proc_macro_api directly -- fundamentally, both are about gluing our pure
data model to the messy outside world.

However, it's easy enough to avoid the dependency, so why not.

As an additional consideration, `proc_macro_api` now pulls in `base_db`.
project_model should definitely not depend on that!
2021-08-22 13:32:00 +03:00

82 lines
2.6 KiB
TOML

[package]
name = "rust-analyzer"
version = "0.0.0"
authors = ["rust-analyzer Team"]
homepage = "https://github.com/rust-analyzer/rust-analyzer"
description = "A language server for the Rust programming language"
documentation = "https://rust-analyzer.github.io/manual.html"
license = "MIT OR Apache-2.0"
autobins = false
edition = "2018"
[lib]
doctest = false
[[bin]]
name = "rust-analyzer"
path = "src/bin/main.rs"
[dependencies]
anyhow = "1.0.26"
crossbeam-channel = "0.5.0"
dissimilar = "1.0.2"
env_logger = { version = "0.9", default-features = false }
itertools = "0.10.0"
jod-thread = "0.1.0"
log = "0.4.8"
lsp-types = { version = "0.89.0", features = ["proposed"] }
parking_lot = "0.11.0"
xflags = "0.2.1"
oorandom = "11.1.2"
rustc-hash = "1.1.0"
serde = { version = "1.0.106", features = ["derive"] }
serde_json = { version = "1.0.48", features = ["preserve_order"] }
threadpool = "1.7.1"
rayon = "1.5"
mimalloc = { version = "0.1.19", default-features = false, optional = true }
lsp-server = "0.5.1"
tracing = "0.1"
tracing-subscriber = { version = "0.2", default-features = false, features = ["env-filter", "registry"] }
tracing-tree = { version = "0.1.4" }
always-assert = "0.1"
stdx = { path = "../stdx", version = "0.0.0" }
flycheck = { path = "../flycheck", version = "0.0.0" }
ide = { path = "../ide", version = "0.0.0" }
ide_db = { path = "../ide_db", version = "0.0.0" }
profile = { path = "../profile", version = "0.0.0" }
project_model = { path = "../project_model", version = "0.0.0" }
syntax = { path = "../syntax", version = "0.0.0" }
text_edit = { path = "../text_edit", version = "0.0.0" }
vfs = { path = "../vfs", version = "0.0.0" }
vfs-notify = { path = "../vfs-notify", version = "0.0.0" }
cfg = { path = "../cfg", version = "0.0.0" }
toolchain = { path = "../toolchain", version = "0.0.0" }
proc_macro_api = { path = "../proc_macro_api", version = "0.0.0" }
# This should only be used in CLI
ide_ssr = { path = "../ide_ssr", version = "0.0.0" }
hir = { path = "../hir", version = "0.0.0" }
hir_def = { path = "../hir_def", version = "0.0.0" }
hir_ty = { path = "../hir_ty", version = "0.0.0" }
proc_macro_srv = { path = "../proc_macro_srv", version = "0.0.0" }
[target.'cfg(windows)'.dependencies]
winapi = "0.3.8"
[target.'cfg(not(target_env = "msvc"))'.dependencies]
jemallocator = { version = "0.4.1", package = "tikv-jemallocator", optional = true }
[dev-dependencies]
expect-test = "1.1"
xshell = "0.1"
test_utils = { path = "../test_utils" }
sourcegen = { path = "../sourcegen" }
mbe = { path = "../mbe" }
tt = { path = "../tt" }
[features]
jemalloc = ["jemallocator", "profile/jemalloc"]
force-always-assert = ["always-assert/force"]