| [workspace] |
| members = ["xtask/", "lib/*", "crates/*"] |
| exclude = ["crates/proc-macro-srv/proc-macro-test/"] |
| resolver = "2" |
| |
| [workspace.package] |
| rust-version = "1.74" |
| edition = "2021" |
| license = "MIT OR Apache-2.0" |
| authors = ["rust-analyzer team"] |
| |
| [profile.dev] |
| # Disabling debug info speeds up builds a bunch, |
| # and we don't rely on it for debugging that much. |
| debug = 0 |
| |
| [profile.dev.package] |
| # These speed up local tests. |
| rowan.opt-level = 3 |
| rustc-hash.opt-level = 3 |
| smol_str.opt-level = 3 |
| text-size.opt-level = 3 |
| # This speeds up `cargo xtask dist`. |
| miniz_oxide.opt-level = 3 |
| |
| [profile.release] |
| incremental = true |
| # Set this to 1 or 2 to get more useful backtraces in debugger. |
| debug = 0 |
| |
| [patch.'crates-io'] |
| # rowan = { path = "../rowan" } |
| |
| # chalk-solve = { path = "../chalk/chalk-solve" } |
| # chalk-ir = { path = "../chalk/chalk-ir" } |
| # chalk-recursive = { path = "../chalk/chalk-recursive" } |
| # chalk-derive = { path = "../chalk/chalk-derive" } |
| # line-index = { path = "lib/line-index" } |
| # la-arena = { path = "lib/la-arena" } |
| # lsp-server = { path = "lib/lsp-server" } |
| |
| |
| # ungrammar = { path = "../ungrammar" } |
| |
| # rust-analyzer-salsa = { path = "../salsa" } |
| |
| [workspace.dependencies] |
| # local crates |
| base-db = { path = "./crates/base-db", version = "0.0.0" } |
| cfg = { path = "./crates/cfg", version = "0.0.0" } |
| flycheck = { path = "./crates/flycheck", version = "0.0.0" } |
| hir = { path = "./crates/hir", version = "0.0.0" } |
| hir-def = { path = "./crates/hir-def", version = "0.0.0" } |
| hir-expand = { path = "./crates/hir-expand", version = "0.0.0" } |
| hir-ty = { path = "./crates/hir-ty", version = "0.0.0" } |
| ide = { path = "./crates/ide", version = "0.0.0" } |
| ide-assists = { path = "./crates/ide-assists", version = "0.0.0" } |
| ide-completion = { path = "./crates/ide-completion", version = "0.0.0" } |
| ide-db = { path = "./crates/ide-db", version = "0.0.0" } |
| ide-diagnostics = { path = "./crates/ide-diagnostics", version = "0.0.0" } |
| ide-ssr = { path = "./crates/ide-ssr", version = "0.0.0" } |
| intern = { path = "./crates/intern", version = "0.0.0" } |
| limit = { path = "./crates/limit", version = "0.0.0" } |
| load-cargo = { path = "./crates/load-cargo", version = "0.0.0" } |
| mbe = { path = "./crates/mbe", version = "0.0.0" } |
| parser = { path = "./crates/parser", version = "0.0.0" } |
| paths = { path = "./crates/paths", version = "0.0.0" } |
| proc-macro-api = { path = "./crates/proc-macro-api", version = "0.0.0" } |
| proc-macro-srv = { path = "./crates/proc-macro-srv", version = "0.0.0" } |
| proc-macro-srv-cli = { path = "./crates/proc-macro-srv-cli", version = "0.0.0" } |
| profile = { path = "./crates/profile", version = "0.0.0" } |
| project-model = { path = "./crates/project-model", version = "0.0.0" } |
| span = { path = "./crates/span", version = "0.0.0" } |
| stdx = { path = "./crates/stdx", version = "0.0.0" } |
| syntax = { path = "./crates/syntax", version = "0.0.0" } |
| text-edit = { path = "./crates/text-edit", version = "0.0.0" } |
| toolchain = { path = "./crates/toolchain", version = "0.0.0" } |
| tt = { path = "./crates/tt", version = "0.0.0" } |
| vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" } |
| vfs = { path = "./crates/vfs", version = "0.0.0" } |
| rustc-dependencies = { path = "./crates/rustc-dependencies", version = "0.0.0" } |
| |
| # local crates that aren't published to crates.io. These should not have versions. |
| sourcegen = { path = "./crates/sourcegen" } |
| test-fixture = { path = "./crates/test-fixture" } |
| test-utils = { path = "./crates/test-utils" } |
| |
| # In-tree crates that are published separately and follow semver. See lib/README.md |
| line-index = { version = "0.1.1" } |
| la-arena = { version = "0.3.1" } |
| lsp-server = { version = "0.7.4" } |
| |
| # non-local crates |
| anyhow = "1.0.75" |
| arrayvec = "0.7.4" |
| bitflags = "2.4.1" |
| cargo_metadata = "0.18.1" |
| command-group = "2.0.1" |
| crossbeam-channel = "0.5.8" |
| dissimilar = "1.0.7" |
| either = "1.9.0" |
| expect-test = "1.4.0" |
| hashbrown = { version = "0.14", features = [ |
| "inline-more", |
| ], default-features = false } |
| indexmap = "2.1.0" |
| itertools = "0.12.0" |
| libc = "0.2.150" |
| nohash-hasher = "0.2.0" |
| rayon = "1.8.0" |
| rust-analyzer-salsa = "0.17.0-pre.4" |
| rustc-hash = "1.1.0" |
| semver = "1.0.14" |
| serde = { version = "1.0.192", features = ["derive"] } |
| serde_json = "1.0.108" |
| smallvec = { version = "1.10.0", features = [ |
| "const_new", |
| "union", |
| "const_generics", |
| ] } |
| smol_str = "0.2.0" |
| text-size = "1.1.1" |
| tracing = "0.1.40" |
| tracing-tree = "0.3.0" |
| tracing-subscriber = { version = "0.3.18", default-features = false, features = [ |
| "registry", |
| "fmt", |
| "tracing-log", |
| ] } |
| triomphe = { version = "0.1.10", default-features = false, features = ["std"] } |
| xshell = "0.2.5" |
| |
| |
| # We need to freeze the version of the crate, as the raw-api feature is considered unstable |
| dashmap = { version = "=5.5.3", features = ["raw-api"] } |
| |
| [workspace.lints.clippy] |
| collapsible_if = "allow" |
| needless_pass_by_value = "allow" |
| nonminimal_bool = "allow" |
| redundant_pattern_matching = "allow" |