mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-11 20:58:54 +00:00
791a63255b
And implement addons as necessary. There are many more makers to be moved, and I'm not completely satisfied with this (due to the ease of making a mistake in the AST structure, and slightly less but also because of the need to remember whitespaces), but this is already enough to see how this will look like.
222 lines
7 KiB
TOML
222 lines
7 KiB
TOML
[workspace]
|
|
members = ["xtask/", "lib/*", "crates/*"]
|
|
exclude = ["crates/proc-macro-srv/proc-macro-test/imp"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
rust-version = "1.82"
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
authors = ["rust-analyzer team"]
|
|
repository = "https://github.com/rust-lang/rust-analyzer"
|
|
|
|
[profile.dev]
|
|
debug = 1
|
|
|
|
[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
|
|
serde.opt-level = 3
|
|
salsa.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
|
|
|
|
[profile.dev-rel]
|
|
inherits = "release"
|
|
debug = 2
|
|
|
|
[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", 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" }
|
|
ra-salsa = { path = "./crates/ra-salsa", package = "salsa", 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" }
|
|
syntax-bridge = { path = "./crates/syntax-bridge", 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" }
|
|
edition = { path = "./crates/edition", version = "0.0.0" }
|
|
|
|
ra-ap-rustc_lexer = { version = "0.87", default-features = false }
|
|
ra-ap-rustc_parse_format = { version = "0.87", default-features = false }
|
|
ra-ap-rustc_index = { version = "0.87", default-features = false }
|
|
ra-ap-rustc_abi = { version = "0.87", default-features = false }
|
|
ra-ap-rustc_pattern_analysis = { version = "0.87", 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
|
|
line-index = { version = "0.1.2" }
|
|
la-arena = { version = "0.3.1" }
|
|
lsp-server = { version = "0.7.6" }
|
|
|
|
# non-local crates
|
|
anyhow = "1.0.75"
|
|
arrayvec = "0.7.4"
|
|
bitflags = "2.4.1"
|
|
cargo_metadata = "0.18.1"
|
|
camino = "1.1.6"
|
|
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"
|
|
dissimilar = "1.0.7"
|
|
dot = "0.1.4"
|
|
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"
|
|
libloading = "0.8.0"
|
|
memmap2 = "0.5.4"
|
|
nohash-hasher = "0.2.0"
|
|
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"] }
|
|
pulldown-cmark-to-cmark = "10.0.4"
|
|
pulldown-cmark = { version = "0.9.0", default-features = false }
|
|
rayon = "1.8.0"
|
|
rustc-hash = "2.0.0"
|
|
semver = "1.0.14"
|
|
serde = { version = "1.0.192" }
|
|
serde_derive = { version = "1.0.192" }
|
|
serde_json = "1.0.108"
|
|
smallvec = { version = "1.10.0", features = [
|
|
"const_new",
|
|
"union",
|
|
"const_generics",
|
|
] }
|
|
smol_str = "0.3.2"
|
|
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",
|
|
"local-time",
|
|
"std",
|
|
"time",
|
|
"tracing-log",
|
|
] }
|
|
triomphe = { version = "0.1.14", default-features = false, features = ["std"] }
|
|
url = "2.3.1"
|
|
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.rust]
|
|
# remember to update RUSTFLAGS in ci.yml if you add something here
|
|
|
|
elided_lifetimes_in_paths = "warn"
|
|
explicit_outlives_requirements = "warn"
|
|
unsafe_op_in_unsafe_fn = "warn"
|
|
unused_extern_crates = "warn"
|
|
unused_lifetimes = "warn"
|
|
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
|
|
too_long_first_doc_paragraph = "allow"
|
|
# subjective
|
|
single_match = "allow"
|
|
# () 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"
|
|
# Has false positives
|
|
assigning_clones = "allow"
|
|
# Does not work with macros
|
|
vec_init_then_push = "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"
|
|
str_to_string = "warn"
|