add show_fix_status and fix_applicability getters on config

since these names were already taken, I moved the setters to `with_*`

this allows fetching the values when setting up the GroupedEmitter even though
it doesn't use the rest of the rendering infrastructure
This commit is contained in:
Brent Westbrook 2025-09-26 12:21:19 -04:00
parent 2ea823e999
commit 6eeaffd324
4 changed files with 22 additions and 14 deletions

View file

@ -229,8 +229,8 @@ impl Printer {
.preview(preview) .preview(preview)
.hide_severity(true) .hide_severity(true)
.color(!cfg!(test) && colored::control::SHOULD_COLORIZE.should_colorize()) .color(!cfg!(test) && colored::control::SHOULD_COLORIZE.should_colorize())
.show_fix_status(show_fix_status(self.fix_mode, fixables.as_ref())) .with_show_fix_status(show_fix_status(self.fix_mode, fixables.as_ref()))
.fix_applicability(self.unsafe_fixes.required_applicability()) .with_fix_applicability(self.unsafe_fixes.required_applicability())
.show_fix_diff(preview); .show_fix_diff(preview);
match DiagnosticFormat::try_from(self.format) { match DiagnosticFormat::try_from(self.format) {
@ -246,8 +246,8 @@ impl Printer {
} }
Err(RuffOutputFormat::Grouped) => { Err(RuffOutputFormat::Grouped) => {
GroupedEmitter::default() GroupedEmitter::default()
.with_show_fix_status(show_fix_status(self.fix_mode, fixables.as_ref())) .with_show_fix_status(config.show_fix_status())
.with_applicability(self.unsafe_fixes.required_applicability()) .with_applicability(config.fix_applicability())
.emit(writer, &diagnostics.inner, &context)?; .emit(writer, &diagnostics.inner, &context)?;
} }
Err(RuffOutputFormat::Sarif) => { Err(RuffOutputFormat::Sarif) => {
@ -418,9 +418,9 @@ impl Printer {
let config = DisplayDiagnosticConfig::default() let config = DisplayDiagnosticConfig::default()
.hide_severity(true) .hide_severity(true)
.color(!cfg!(test) && colored::control::SHOULD_COLORIZE.should_colorize()) .color(!cfg!(test) && colored::control::SHOULD_COLORIZE.should_colorize())
.show_fix_status(show_fix_status(self.fix_mode, fixables.as_ref())) .with_show_fix_status(show_fix_status(self.fix_mode, fixables.as_ref()))
.format(format) .format(format)
.fix_applicability(self.unsafe_fixes.required_applicability()); .with_fix_applicability(self.unsafe_fixes.required_applicability());
write!( write!(
writer, writer,
"{}", "{}",

View file

@ -1353,7 +1353,7 @@ impl DisplayDiagnosticConfig {
} }
/// Whether to show a fix's availability or not. /// Whether to show a fix's availability or not.
pub fn show_fix_status(self, yes: bool) -> DisplayDiagnosticConfig { pub fn with_show_fix_status(self, yes: bool) -> DisplayDiagnosticConfig {
DisplayDiagnosticConfig { DisplayDiagnosticConfig {
show_fix_status: yes, show_fix_status: yes,
..self ..self
@ -1374,12 +1374,20 @@ impl DisplayDiagnosticConfig {
/// availability for unsafe or display-only fixes. /// availability for unsafe or display-only fixes.
/// ///
/// Note that this option is currently ignored when `hide_severity` is false. /// Note that this option is currently ignored when `hide_severity` is false.
pub fn fix_applicability(self, applicability: Applicability) -> DisplayDiagnosticConfig { pub fn with_fix_applicability(self, applicability: Applicability) -> DisplayDiagnosticConfig {
DisplayDiagnosticConfig { DisplayDiagnosticConfig {
fix_applicability: applicability, fix_applicability: applicability,
..self ..self
} }
} }
pub fn show_fix_status(&self) -> bool {
self.show_fix_status
}
pub fn fix_applicability(&self) -> Applicability {
self.fix_applicability
}
} }
impl Default for DisplayDiagnosticConfig { impl Default for DisplayDiagnosticConfig {

View file

@ -2618,7 +2618,7 @@ watermelon
/// Show fix availability when rendering. /// Show fix availability when rendering.
pub(super) fn show_fix_status(&mut self, yes: bool) { pub(super) fn show_fix_status(&mut self, yes: bool) {
let mut config = std::mem::take(&mut self.config); let mut config = std::mem::take(&mut self.config);
config = config.show_fix_status(yes); config = config.with_show_fix_status(yes);
self.config = config; self.config = config;
} }
@ -2632,7 +2632,7 @@ watermelon
/// The lowest fix applicability to show when rendering. /// The lowest fix applicability to show when rendering.
pub(super) fn fix_applicability(&mut self, applicability: Applicability) { pub(super) fn fix_applicability(&mut self, applicability: Applicability) {
let mut config = std::mem::take(&mut self.config); let mut config = std::mem::take(&mut self.config);
config = config.fix_applicability(applicability); config = config.with_fix_applicability(applicability);
self.config = config; self.config = config;
} }

View file

@ -449,9 +449,9 @@ pub(crate) fn print_jupyter_messages(
let config = DisplayDiagnosticConfig::default() let config = DisplayDiagnosticConfig::default()
.format(DiagnosticFormat::Full) .format(DiagnosticFormat::Full)
.hide_severity(true) .hide_severity(true)
.show_fix_status(true) .with_show_fix_status(true)
.show_fix_diff(true) .show_fix_diff(true)
.fix_applicability(Applicability::DisplayOnly); .with_fix_applicability(Applicability::DisplayOnly);
DisplayDiagnostics::new( DisplayDiagnostics::new(
&EmitterContext::new(&FxHashMap::from_iter([( &EmitterContext::new(&FxHashMap::from_iter([(
@ -468,9 +468,9 @@ pub(crate) fn print_messages(diagnostics: &[Diagnostic]) -> String {
let config = DisplayDiagnosticConfig::default() let config = DisplayDiagnosticConfig::default()
.format(DiagnosticFormat::Full) .format(DiagnosticFormat::Full)
.hide_severity(true) .hide_severity(true)
.show_fix_status(true) .with_show_fix_status(true)
.show_fix_diff(true) .show_fix_diff(true)
.fix_applicability(Applicability::DisplayOnly); .with_fix_applicability(Applicability::DisplayOnly);
DisplayDiagnostics::new( DisplayDiagnostics::new(
&EmitterContext::new(&FxHashMap::default()), &EmitterContext::new(&FxHashMap::default()),