mirror of
https://github.com/astral-sh/ruff
synced 2026-01-22 05:51:03 -05:00
Summary -- This PR adds a macro-generated method to retrieve the `Rule` associated with a given `Violation` struct, which makes it substantially cheaper than parsing from the rule name. The rule is then converted to a `NoqaCode` for storage on the `Message` (and eventually on the new diagnostic type). The `ViolationMetadata::rule_name` method was now unused, so the `rule` method replaces it. Several types had to be moved from the `ruff_diagnostics` crate to the `ruff_linter` crate to make this work, namely the `Violation` traits and the old `Diagnostic` type, which had a constructor generic over a `Violation`. It's actually a fairly small PR, minus the hundreds of import changes. The main changes are in these files: - [crates/ruff_linter/src/message/mod.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-139754ea310d75f28307008d21c771a190038bd106efe3b9267cc2d6c0fa0921) - [crates/ruff_diagnostics/src/lib.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-8e8ea5c586935bf21ea439f24253fcfd5955d2cb130f5377c2fa7bfee3ea3a81) - [crates/ruff_linter/src/diagnostic.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-1d0c9aad90d8f9446079c5be5f284150d97797158715bd9729e6f1f70246297a) - [crates/ruff_linter/src/lib.rs](https://github.com/astral-sh/ruff/pull/18234/files#diff-eb93ef7e78a612f5fa9145412c75cf6b1a5cefba1c2233e4a11a880a1ce1fbcc) Test Plan -- Existing tests
60 lines
1.8 KiB
TOML
60 lines
1.8 KiB
TOML
[package]
|
|
name = "ruff_dev"
|
|
version = "0.0.0"
|
|
publish = false
|
|
authors = { workspace = true }
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
homepage = { workspace = true }
|
|
documentation = { workspace = true }
|
|
repository = { workspace = true }
|
|
license = { workspace = true }
|
|
|
|
[dependencies]
|
|
ty = { workspace = true }
|
|
ty_project = { workspace = true, features = ["schemars"] }
|
|
ruff = { workspace = true }
|
|
ruff_formatter = { workspace = true }
|
|
ruff_linter = { workspace = true, features = ["schemars"] }
|
|
ruff_notebook = { workspace = true }
|
|
ruff_options_metadata = { workspace = true }
|
|
ruff_python_ast = { workspace = true }
|
|
ruff_python_codegen = { workspace = true }
|
|
ruff_python_formatter = { workspace = true }
|
|
ruff_python_parser = { workspace = true }
|
|
ruff_python_trivia = { workspace = true }
|
|
ruff_workspace = { workspace = true, features = ["schemars"] }
|
|
|
|
anyhow = { workspace = true }
|
|
clap = { workspace = true, features = ["wrap_help"] }
|
|
ignore = { workspace = true }
|
|
imara-diff = { workspace = true }
|
|
indicatif = { workspace = true }
|
|
itertools = { workspace = true }
|
|
libcst = { workspace = true }
|
|
markdown = { version = "1.0.0" }
|
|
pretty_assertions = { workspace = true }
|
|
rayon = { workspace = true }
|
|
regex = { workspace = true }
|
|
schemars = { workspace = true }
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde_json = { workspace = true }
|
|
similar = { workspace = true }
|
|
strum = { workspace = true }
|
|
tempfile = { workspace = true }
|
|
toml = { workspace = true, features = ["parse"] }
|
|
tracing = { workspace = true }
|
|
tracing-indicatif = { workspace = true }
|
|
tracing-subscriber = { workspace = true, features = ["env-filter"] }
|
|
url = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
indoc = { workspace = true }
|
|
|
|
[features]
|
|
# Turn off rayon for profiling
|
|
singlethreaded = []
|
|
|
|
[lints]
|
|
workspace = true
|