diff --git a/crates/ruff_cli/src/printer.rs b/crates/ruff_cli/src/printer.rs index 174100b7c5..bf56bb7883 100644 --- a/crates/ruff_cli/src/printer.rs +++ b/crates/ruff_cli/src/printer.rs @@ -498,32 +498,22 @@ fn num_digits(n: usize) -> usize { /// Print a single `Message` with full details. fn print_message(stdout: &mut T, message: &Message) -> Result<()> { - let label = if message.kind.fixable() { - format!( - "{}{}{}{}{}{} {} [{}] {}", - relativize_path(Path::new(&message.filename)).bold(), - ":".cyan(), - message.location.row(), - ":".cyan(), - message.location.column(), - ":".cyan(), - message.kind.rule().code().red().bold(), - "*".cyan(), - message.kind.body(), - ) - } else { - format!( - "{}{}{}{}{}{} {} {}", - relativize_path(Path::new(&message.filename)).bold(), - ":".cyan(), - message.location.row(), - ":".cyan(), - message.location.column(), - ":".cyan(), - message.kind.rule().code().red().bold(), - message.kind.body(), - ) - }; + let label = format!( + "{}{}{}{}{}{} {} {}{}", + relativize_path(Path::new(&message.filename)).bold(), + ":".cyan(), + message.location.row(), + ":".cyan(), + message.location.column(), + ":".cyan(), + message.kind.rule().code().red().bold(), + message + .kind + .fixable() + .then_some(format_args!("[{}] ", "*".cyan())) + .unwrap_or(format_args!("")), + message.kind.body(), + ); writeln!(stdout, "{label}")?; if let Some(source) = &message.source { let commit = message.kind.commit(); @@ -578,30 +568,21 @@ fn print_grouped_message( row_length: usize, column_length: usize, ) -> Result<()> { - let label = if message.kind.fixable() { - format!( - " {}{}{}{}{} {} [{}] {}", - " ".repeat(row_length - num_digits(message.location.row())), - message.location.row(), - ":".cyan(), - message.location.column(), - " ".repeat(column_length - num_digits(message.location.column())), - message.kind.rule().code().red().bold(), - "*".cyan(), - message.kind.body(), - ) - } else { - format!( - " {}{}{}{}{} {} {}", - " ".repeat(row_length - num_digits(message.location.row())), - message.location.row(), - ":".cyan(), - message.location.column(), - " ".repeat(column_length - num_digits(message.location.column())), - message.kind.rule().code().red().bold(), - message.kind.body(), - ) - }; + let label = format!( + " {}{}{}{}{} {} {}{}", + " ".repeat(row_length - num_digits(message.location.row())), + message.location.row(), + ":".cyan(), + message.location.column(), + " ".repeat(column_length - num_digits(message.location.column())), + message.kind.rule().code().red().bold(), + message + .kind + .fixable() + .then_some(format_args!("[{}] ", "*".cyan())) + .unwrap_or(format_args!("")), + message.kind.body(), + ); writeln!(stdout, "{label}")?; if let Some(source) = &message.source { let commit = message.kind.commit(); diff --git a/crates/ruff_dev/src/generate_rules_table.rs b/crates/ruff_dev/src/generate_rules_table.rs index 0cd4cab479..dcc189850b 100644 --- a/crates/ruff_dev/src/generate_rules_table.rs +++ b/crates/ruff_dev/src/generate_rules_table.rs @@ -34,25 +34,18 @@ fn generate_table(table_out: &mut String, rules: impl IntoIterator) Some(_) => "🛠", }; - if rule.explanation().is_some() { - table_out.push_str(&format!( - "| {} | [{}]({}/{}.md) | {} | {} |", - rule.code(), - rule.as_ref(), - URL_PREFIX, - rule.as_ref(), - rule.message_formats()[0].replace('|', r"\|"), - fix_token - )); - } else { - table_out.push_str(&format!( - "| {} | {} | {} | {} |", - rule.code(), - rule.as_ref(), - rule.message_formats()[0].replace('|', r"\|"), - fix_token - )); - } + let rule_name = rule.as_ref(); + + table_out.push_str(&format!( + "| {} | {} | {} | {} |", + rule.code(), + rule.explanation() + .is_some() + .then_some(format_args!("[{rule_name}]({URL_PREFIX}/{rule_name}.md)",)) + .unwrap_or(format_args!("{rule_name}")), + rule.message_formats()[0].replace('|', r"\|"), + fix_token + )); table_out.push('\n'); } table_out.push('\n');