mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:49:50 +00:00
rule 8/8: Automatically rewrite RuleCode to Rule
# This commit was automatically generated by running the following # script (followed by `cargo +nightly fmt`): import glob import re from typing import NamedTuple class Rule(NamedTuple): code: str name: str path: str def rules() -> list[Rule]: """Returns all the rules defined in `src/registry.rs`.""" file = open('src/registry.rs') rules = [] while next(file) != 'ruff_macros::define_rule_mapping!(\n': continue while (line := next(file)) != ');\n': line = line.strip().rstrip(',') if line.startswith('//'): continue code, path = line.split(' => ') name = path.rsplit('::')[-1] rules.append(Rule(code, name, path)) return rules code2name = {r.code: r.name for r in rules()} for pattern in ('src/**/*.rs', 'ruff_cli/**/*.rs', 'ruff_dev/**/*.rs', 'scripts/add_*.py'): for name in glob.glob(pattern, recursive=True): with open(name) as f: text = f.read() text = re.sub('Rule(?:Code)?::([A-Z]\w+)', lambda m: 'Rule::' + code2name[m.group(1)], text) text = re.sub(r'(?<!"<FilePattern>:<)RuleCode\b', 'Rule', text) text = re.sub('(use crate::registry::{.*, Rule), Rule(.*)', r'\1\2', text) # fix duplicate import with open(name, 'w') as f: f.write(text)
This commit is contained in:
parent
9e3083aa2c
commit
6649225167
90 changed files with 2427 additions and 1590 deletions
|
@ -47,11 +47,11 @@ mod tests {
|
|||
use anyhow::Result;
|
||||
use test_case::test_case;
|
||||
|
||||
use crate::registry::RuleCode;
|
||||
use crate::registry::Rule;
|
||||
use crate::linter::test_path;
|
||||
use crate::settings;
|
||||
|
||||
fn rules(rule_code: RuleCode, path: &Path) -> Result<()> {
|
||||
fn rules(rule_code: Rule, path: &Path) -> Result<()> {
|
||||
let snapshot = format!("{}_{}", rule_code.as_ref(), path.to_string_lossy());
|
||||
let diagnostics =test_path(
|
||||
Path::new("./resources/test/fixtures/%s")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue