rust-analyzer/Cargo.toml

215 lines
6.8 KiB
TOML
Raw Normal View History

2018-02-03 09:51:06 +00:00
[workspace]
members = ["xtask/", "lib/*", "crates/*"]
exclude = ["crates/proc-macro-srv/proc-macro-test/imp"]
2023-06-04 08:02:11 +00:00
resolver = "2"
2018-08-15 21:23:22 +00:00
[workspace.package]
2024-05-14 08:45:46 +00:00
rust-version = "1.78"
edition = "2021"
license = "MIT OR Apache-2.0"
authors = ["rust-analyzer team"]
repository = "https://github.com/rust-lang/rust-analyzer"
2019-10-11 08:06:28 +00:00
[profile.dev]
debug = 1
2019-10-11 08:06:28 +00:00
2020-08-18 15:44:51 +00:00
[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
salsa.opt-level = 3
2020-08-18 15:44:51 +00:00
2018-08-15 21:23:22 +00:00
[profile.release]
2021-05-30 23:12:11 +00:00
incremental = true
2021-10-19 12:15:47 +00:00
# Set this to 1 or 2 to get more useful backtraces in debugger.
debug = 0
[profile.dev-rel]
inherits = "release"
debug = 2
2018-12-30 08:09:17 +00:00
[patch.'crates-io']
2020-01-11 21:15:27 +00:00
# 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" }
2020-12-15 14:37:37 +00:00
# ungrammar = { path = "../ungrammar" }
2023-12-07 09:57:51 +00:00
# rust-analyzer-salsa = { path = "../salsa" }
[workspace.dependencies]
# local crates
base-db = { path = "./crates/base-db", version = "0.0.0" }
2024-07-16 08:36:59 +00:00
cfg = { path = "./crates/cfg", version = "0.0.0", features = ["tt"] }
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" }
2024-02-07 15:29:46 +00:00
salsa = { path = "./crates/salsa", version = "0.0.0" }
2023-12-18 12:30:41 +00:00
span = { path = "./crates/span", version = "0.0.0" }
stdx = { path = "./crates/stdx", version = "0.0.0" }
syntax = { path = "./crates/syntax", version = "0.0.0" }
syntax-bridge = { path = "./crates/syntax-bridge", 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" }
2024-05-19 08:22:58 +00:00
ra-ap-rustc_lexer = { version = "0.53.0", default-features = false }
ra-ap-rustc_parse_format = { version = "0.53.0", default-features = false }
ra-ap-rustc_index = { version = "0.53.0", default-features = false }
ra-ap-rustc_abi = { version = "0.53.0", default-features = false }
2024-06-30 16:41:55 +00:00
ra-ap-rustc_pattern_analysis = { version = "0.53.0", default-features = false }
# local crates that aren't published to crates.io. These should not have versions.
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
2023-12-12 15:18:08 +00:00
line-index = { version = "0.1.1" }
la-arena = { version = "0.3.1" }
lsp-server = { version = "0.7.6" }
2023-03-25 13:43:08 +00:00
# non-local crates
2023-11-15 10:49:32 +00:00
anyhow = "1.0.75"
2023-12-20 11:53:46 +00:00
arrayvec = "0.7.4"
2023-11-15 19:20:47 +00:00
bitflags = "2.4.1"
2023-11-15 19:18:49 +00:00
cargo_metadata = "0.18.1"
2024-03-19 12:05:50 +00:00
camino = "1.1.6"
2024-07-10 08:38:47 +00:00
chalk-solve = { version = "0.98.0", default-features = false }
chalk-ir = "0.98.0"
chalk-recursive = { version = "0.98.0", default-features = false }
chalk-derive = "0.98.0"
crossbeam-channel = "0.5.8"
2023-11-15 11:34:56 +00:00
dissimilar = "1.0.7"
2024-03-05 11:00:21 +00:00
dot = "0.1.4"
2023-11-15 11:07:36 +00:00
either = "1.9.0"
expect-test = "1.4.0"
2023-12-07 10:48:58 +00:00
hashbrown = { version = "0.14", features = [
2024-02-07 15:29:46 +00:00
"inline-more",
2023-12-07 10:48:58 +00:00
], default-features = false }
2023-11-15 11:21:34 +00:00
indexmap = "2.1.0"
2023-11-15 10:53:56 +00:00
itertools = "0.12.0"
2023-11-16 19:48:49 +00:00
libc = "0.2.150"
libloading = "0.8.0"
memmap2 = "0.5.4"
2023-12-07 09:57:51 +00:00
nohash-hasher = "0.2.0"
2024-03-05 11:00:21 +00:00
oorandom = "11.1.3"
object = { version = "0.33.0", default-features = false, features = [
"std",
"read_core",
"elf",
"macho",
"pe",
] }
process-wrap = { version = "8.0.2", features = ["std"] }
2024-03-05 11:00:21 +00:00
pulldown-cmark-to-cmark = "10.0.4"
pulldown-cmark = { version = "0.9.0", default-features = false }
2023-12-07 09:57:51 +00:00
rayon = "1.8.0"
rustc-hash = "1.1.0"
semver = "1.0.14"
2023-12-07 09:57:51 +00:00
serde = { version = "1.0.192", features = ["derive"] }
serde_json = "1.0.108"
2023-05-06 07:51:25 +00:00
smallvec = { version = "1.10.0", features = [
2024-02-07 15:29:46 +00:00
"const_new",
"union",
"const_generics",
2023-05-06 07:51:25 +00:00
] }
2024-01-16 10:07:45 +00:00
smol_str = "0.2.1"
snap = "1.1.0"
2023-12-07 09:57:51 +00:00
text-size = "1.1.1"
2023-11-15 11:00:32 +00:00
tracing = "0.1.40"
2023-11-15 19:07:31 +00:00
tracing-tree = "0.3.0"
2023-11-15 11:04:39 +00:00
tracing-subscriber = { version = "0.3.18", default-features = false, features = [
"registry",
"fmt",
"tracing-log",
2023-11-15 11:04:39 +00:00
] }
2023-11-28 15:27:17 +00:00
triomphe = { version = "0.1.10", default-features = false, features = ["std"] }
2024-03-05 11:00:21 +00:00
url = "2.3.1"
2023-12-07 09:57:51 +00:00
xshell = "0.2.5"
2023-12-07 10:48:58 +00:00
# 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.rust]
2024-07-25 05:27:15 +00:00
# remember to update RUSTFLAGS in ci.yml if you add something here
elided_lifetimes_in_paths = "warn"
explicit_outlives_requirements = "warn"
2024-07-25 05:27:15 +00:00
unsafe_op_in_unsafe_fn = "warn"
unused_extern_crates = "warn"
unused_lifetimes = "warn"
2024-03-01 10:10:29 +00:00
unreachable_pub = "warn"
[workspace.lints.clippy]
# FIXME Remove the tidy test once the lint table is stable
## lint groups
complexity = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
perf = { level = "deny", priority = -1 }
restriction = { level = "allow", priority = -1 }
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
## allow following lints
# () makes a fine error in most cases
result_unit_err = "allow"
# We don't expose public APIs that matter like this
len_without_is_empty = "allow"
# We have macros that rely on this currently
enum_variant_names = "allow"
# Builder pattern disagrees
new_ret_no_self = "allow"
# Has a bunch of false positives
useless_asref = "allow"
2024-03-22 10:38:18 +00:00
# Has false positives
assigning_clones = "allow"
## Following lints should be tackled at some point
too_many_arguments = "allow"
type_complexity = "allow"
wrong_self_convention = "allow"
## warn at following lints
# CI raises these to deny
dbg_macro = "warn"
todo = "warn"
print_stdout = "warn"
print_stderr = "warn"
rc_buffer = "warn"
2024-02-09 15:21:32 +00:00
str_to_string = "warn"