1[package]
2name = "rust-analyzer"
3version = "0.0.0"
4authors = ["rust-analyzer Team"]
5homepage = "https://github.com/rust-analyzer/rust-analyzer"
6description = "A language server for the Rust programming language"
7documentation = "https://rust-analyzer.github.io/manual.html"
8license = "MIT OR Apache-2.0"
9autobins = false
10edition = "2021"
11rust-version = "1.56"
12
13[lib]
14doctest = false
15
16[[bin]]
17name = "rust-analyzer"
18path = "src/bin/main.rs"
19
20[dependencies]
21anyhow = "1.0.26"
22crossbeam-channel = "0.5.0"
23dissimilar = "1.0.2"
24itertools = "0.10.0"
25lsp-types = { version = "0.91", features = ["proposed"] }
26parking_lot = "0.11.0"
27xflags = "0.2.1"
28oorandom = "11.1.2"
29rustc-hash = "1.1.0"
30serde = { version = "1.0.106", features = ["derive"] }
31serde_json = { version = "1.0.48", features = ["preserve_order"] }
32threadpool = "1.7.1"
33rayon = "1.5"
34mimalloc = { version = "0.1.19", default-features = false, optional = true }
35lsp-server = "0.5.1"
36tracing = "0.1"
37tracing-subscriber = { version = "0.3", default-features = false, features = [
38    "env-filter",
39    "registry",
40    "fmt",
41    "tracing-log",
42] }
43tracing-log = "0.1.2"
44tracing-tree = "0.2"
45always-assert = "0.1"
46
47stdx = { path = "../stdx", version = "0.0.0" }
48flycheck = { path = "../flycheck", version = "0.0.0" }
49ide = { path = "../ide", version = "0.0.0" }
50ide_db = { path = "../ide_db", version = "0.0.0" }
51profile = { path = "../profile", version = "0.0.0" }
52project_model = { path = "../project_model", version = "0.0.0" }
53syntax = { path = "../syntax", version = "0.0.0" }
54vfs = { path = "../vfs", version = "0.0.0" }
55vfs-notify = { path = "../vfs-notify", version = "0.0.0" }
56cfg = { path = "../cfg", version = "0.0.0" }
57toolchain = { path = "../toolchain", version = "0.0.0" }
58tt = { path = "../tt", version = "0.0.0" }
59proc_macro_api = { path = "../proc_macro_api", version = "0.0.0" }
60
61# This should only be used in CLI
62ide_ssr = { path = "../ide_ssr", version = "0.0.0" }
63hir = { path = "../hir", version = "0.0.0" }
64hir_def = { path = "../hir_def", version = "0.0.0" }
65hir_ty = { path = "../hir_ty", version = "0.0.0" }
66proc_macro_srv = { path = "../proc_macro_srv", version = "0.0.0" }
67
68[target.'cfg(windows)'.dependencies]
69winapi = "0.3.8"
70
71[target.'cfg(not(target_env = "msvc"))'.dependencies]
72jemallocator = { version = "0.4.1", package = "tikv-jemallocator", optional = true }
73
74[dev-dependencies]
75expect-test = "1.2.0-pre.1"
76jod-thread = "0.1.0"
77xshell = "0.1"
78
79test_utils = { path = "../test_utils" }
80sourcegen = { path = "../sourcegen" }
81mbe = { path = "../mbe" }
82
83[features]
84jemalloc = ["jemallocator", "profile/jemalloc"]
85force-always-assert = ["always-assert/force"]
86