diff --git a/crates/ruff_dev/src/generate_rules_table.rs b/crates/ruff_dev/src/generate_rules_table.rs index 7b489a8543..813b472080 100644 --- a/crates/ruff_dev/src/generate_rules_table.rs +++ b/crates/ruff_dev/src/generate_rules_table.rs @@ -1,10 +1,12 @@ //! Generate a Markdown-compatible table of supported lint rules. use itertools::Itertools; -use ruff::registry::{Linter, Rule, RuleNamespace, UpstreamCategory}; -use ruff_diagnostics::AutofixKind; use strum::IntoEnumIterator; +use ruff::registry::{Linter, Rule, RuleNamespace, UpstreamCategory}; +use ruff::settings::options::Options; +use ruff_diagnostics::AutofixKind; + const FIX_SYMBOL: &str = "🛠"; fn generate_table(table_out: &mut String, rules: impl IntoIterator, linter: &Linter) { @@ -78,6 +80,19 @@ pub fn generate() -> String { table_out.push('\n'); } + if Options::metadata() + .iter() + .any(|(name, _)| name == &linter.name()) + { + table_out.push_str(&format!( + "For related settings, see [{}](settings.md#{}).", + linter.name(), + linter.name(), + )); + table_out.push('\n'); + table_out.push('\n'); + } + if let Some(categories) = linter.upstream_categories() { for UpstreamCategory(prefix, name) in categories { table_out.push_str(&format!(