[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.3.1" lsp-types = { version = "=0.94.0", 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.workspace = true tracing = "0.1.35" tracing-subscriber = { version = "0.3.16", default-features = false, features = [ "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 3 deps are not used by r-a directly, but we list them here to lock in their versions # in our transitive deps to prevent them from pulling in windows-sys 0.45.0 mio = "=0.8.5" parking_lot_core = "=0.9.6" cfg.workspace = true flycheck.workspace = true hir-def.workspace = true hir-ty.workspace = true hir.workspace = true rustc-dependencies.workspace = true ide-db.workspace = true # This should only be used in CLI ide-ssr.workspace = true ide.workspace = true load-cargo.workspace = true proc-macro-api.workspace = true profile.workspace = true project-model.workspace = true stdx.workspace = true syntax.workspace = true parser.workspace = true toolchain.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 = [] in-rust-tree = [ "sysroot-abi", "ide/in-rust-tree", "syntax/in-rust-tree", "parser/in-rust-tree", "rustc-dependencies/in-rust-tree", "hir-def/in-rust-tree", "hir-ty/in-rust-tree", ]