From b94339bc199b5f9789c4b9504719c205077512bb Mon Sep 17 00:00:00 2001 From: Fabio Batista Date: Sun, 3 Nov 2024 18:04:17 -0300 Subject: [PATCH] [`eradicate`] ignore `# language=` in commented-out-code rule (ERA001) Fixes one common case cited on #6019 --- crates/ruff_linter/src/rules/eradicate/detection.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/ruff_linter/src/rules/eradicate/detection.rs b/crates/ruff_linter/src/rules/eradicate/detection.rs index c3ba54a1993500..559a7dbf83f7e3 100644 --- a/crates/ruff_linter/src/rules/eradicate/detection.rs +++ b/crates/ruff_linter/src/rules/eradicate/detection.rs @@ -16,7 +16,7 @@ static CODE_INDICATORS: LazyLock = LazyLock::new(|| { static ALLOWLIST_REGEX: LazyLock = LazyLock::new(|| { Regex::new( - r"^(?i)(?:pylint|pyright|noqa|nosec|region|endregion|type:\s*ignore|fmt:\s*(on|off)|isort:\s*(on|off|skip|skip_file|split|dont-add-imports(:\s*\[.*?])?)|mypy:|SPDX-License-Identifier:|(?:en)?coding[:=][ \t]*([-_.a-zA-Z0-9]+))", + r"^(?i)(?:pylint|pyright|noqa|nosec|region|endregion|type:\s*ignore|fmt:\s*(on|off)|isort:\s*(on|off|skip|skip_file|split|dont-add-imports(:\s*\[.*?])?)|mypy:|SPDX-License-Identifier:|language=[a-z](?: ?[-_.a-z0-9]+)+|(?:en)?coding[:=][ \t]*([-_.a-zA-Z0-9]+))", ).unwrap() }); @@ -297,6 +297,16 @@ mod tests { )); } + #[test] + fn comment_contains_language_injection() { + assert!(comment_contains_code("# language=123", &[])); + assert!(comment_contains_code("# language=\"pt\"", &[])); + assert!(comment_contains_code("# language='en'", &[])); + + assert!(!comment_contains_code("# language=xml", &[])); + assert!(!comment_contains_code("# language=ecma script level 4", &[])); + } + #[test] fn comment_contains_todo() { let task_tags = TASK_TAGS