[package] name = "rust-analyzer" version = "0.0.0" 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" autobins = false authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true [lib] doctest = false [[bin]] name = "rust-analyzer" path = "src/bin/main.rs" [dependencies] anyhow = "1.0.62" crossbeam-channel = "0.5.5" dissimilar = "1.0.4" itertools = "0.10.5" scip = "0.1.1" lsp-types = { version = "=0.94", features = ["proposed"] } parking_lot = "0.12.1" xflags = "0.3.0" oorandom = "11.1.3" rustc-hash = "1.1.0" serde_json = { workspace = true, features = ["preserve_order"] } serde.workspace = true rayon = "1.6.1" num_cpus = "1.15.0" mimalloc = { version = "0.1.30", default-features = false, optional = true } lsp-server = { version = "0.7.0", path = "../../lib/lsp-server" } tracing = "0.1.35" tracing-subscriber = { version = "0.3.16", default-features = false, features = [ "env-filter", "registry", "fmt", "tracing-log", ] } tracing-log = "0.1.3" tracing-tree = "0.2.1" triomphe.workspace = true nohash-hasher.workspace = true always-assert = "0.1.2" # These dependencies are unused, but we pin them to a version here to restrict them for our transitive dependencies # so that we don't pull in duplicates of their dependencies like windows-sys and syn 1 vs 2 # these would pull in serde 2 thiserror = "=1.0.39" serde_repr = "=0.1.11" # these would pull in windows-sys 0.45.0 mio = "=0.8.5" filetime = "=0.2.19" parking_lot_core = "=0.9.6" cfg.workspace = true flycheck.workspace = true hir-def.workspace = true hir-ty.workspace = true hir.workspace = true ide-db.workspace = true # This should only be used in CLI ide-ssr.workspace = true ide.workspace = true proc-macro-api.workspace = true proc-macro-srv-cli.workspace = true profile.workspace = true project-model.workspace = true stdx.workspace = true syntax.workspace = true toolchain.workspace = true tt.workspace = true vfs-notify.workspace = true vfs.workspace = true [target.'cfg(windows)'.dependencies] winapi = "0.3.9" [target.'cfg(not(target_env = "msvc"))'.dependencies] jemallocator = { version = "0.5.0", package = "tikv-jemallocator", optional = true } [dev-dependencies] expect-test = "1.4.0" xshell = "0.2.2" test-utils.workspace = true sourcegen.workspace = true mbe.workspace = true [features] jemalloc = ["jemallocator", "profile/jemalloc"] force-always-assert = ["always-assert/force"] sysroot-abi = ["proc-macro-srv-cli/sysroot-abi"] in-rust-tree = ["sysroot-abi", "ide/in-rust-tree", "syntax/in-rust-tree"]