diff --git a/crates/ruff/src/commands/show_settings.rs b/crates/ruff/src/commands/show_settings.rs index a23f31a4967a24..12d275eb655e2c 100644 --- a/crates/ruff/src/commands/show_settings.rs +++ b/crates/ruff/src/commands/show_settings.rs @@ -31,9 +31,9 @@ pub(crate) fn show_settings( let settings = resolver.resolve(&path); - writeln!(writer, "Resolved settings for: {path:?}")?; + writeln!(writer, "Resolved settings for: \"{}\"", path.display())?; if let Some(settings_path) = pyproject_config.path.as_ref() { - writeln!(writer, "Settings path: {settings_path:?}")?; + writeln!(writer, "Settings path: \"{}\"", settings_path.display())?; } write!(writer, "{settings}")?; diff --git a/crates/ruff/tests/show_settings.rs b/crates/ruff/tests/show_settings.rs index ebe675a7034d73..3488da547f58b2 100644 --- a/crates/ruff/tests/show_settings.rs +++ b/crates/ruff/tests/show_settings.rs @@ -12,16 +12,14 @@ fn display_default_settings() { .unwrap() .parent() .unwrap(); - println!("base_path: {:?}", base_path); let base_path = base_path.to_string_lossy(); - #[cfg(not(target_os = "windows"))] - let test_filters = &[(base_path.as_ref(), "[BASEPATH]")]; - - #[cfg(target_os = "windows")] // Escape the backslashes for the regex. let base_path = regex::escape(&base_path); + #[cfg(not(target_os = "windows"))] + let test_filters = &[(base_path.as_ref(), "[BASEPATH]")]; + #[cfg(target_os = "windows")] let test_filters = &[ (base_path.as_ref(), "[BASEPATH]"), diff --git a/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap b/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap index 37b5699286474f..f784ff99a0629a 100644 --- a/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap +++ b/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap @@ -205,7 +205,9 @@ linter.external = [] linter.ignore_init_module_imports = false linter.logger_objects = [] linter.namespace_packages = [] -linter.src = ["[BASEPATH]"] +linter.src = [ + "[BASEPATH]", +] linter.tab_size = 4 linter.line_length = 88 linter.task_tags = [ diff --git a/crates/ruff_linter/src/settings/mod.rs b/crates/ruff_linter/src/settings/mod.rs index bd6289438eb964..ae3e413e0ebe02 100644 --- a/crates/ruff_linter/src/settings/mod.rs +++ b/crates/ruff_linter/src/settings/mod.rs @@ -123,6 +123,9 @@ macro_rules! display_settings { (@field $fmt:ident, $prefix:ident, $settings:ident.$field:ident | debug) => { writeln!($fmt, "{}{} = {:?}", $prefix, stringify!($field), $settings.$field)?; }; + (@field $fmt:ident, $prefix:ident, $settings:ident.$field:ident | display) => { + writeln!($fmt, "{}{} = \"{}\"", $prefix, stringify!($field), $settings.$field.display())?; + }; (@field $fmt:ident, $prefix:ident, $settings:ident.$field:ident | quoted) => { writeln!($fmt, "{}{} = \"{}\"", $prefix, stringify!($field), $settings.$field)?; }; @@ -152,6 +155,20 @@ macro_rules! display_settings { } } }; + (@field $fmt:ident, $prefix:ident, $settings:ident.$field:ident | display_array) => { + { + write!($fmt, "{}{} = ", $prefix, stringify!($field))?; + if $settings.$field.is_empty() { + writeln!($fmt, "[]")?; + } else { + writeln!($fmt, "[")?; + for elem in &$settings.$field { + writeln!($fmt, "\t\"{}\",", elem.display())?; + } + writeln!($fmt, "]")?; + } + } + }; (@field $fmt:ident, $prefix:ident, $settings:ident.$field:ident) => { writeln!($fmt, "{}{} = {}", $prefix, stringify!($field), $settings.$field)?; }; @@ -220,7 +237,7 @@ impl Display for LinterSettings { namespace = "linter", fields = [ self.exclude, - self.project_root | debug, + self.project_root | display, self.rules | nested, self.per_file_ignores, @@ -238,7 +255,7 @@ impl Display for LinterSettings { self.ignore_init_module_imports, self.logger_objects | array, self.namespace_packages | debug, - self.src | debug, + self.src | display_array, self.tab_size, self.line_length, self.task_tags | array, diff --git a/crates/ruff_workspace/src/settings.rs b/crates/ruff_workspace/src/settings.rs index f37dd3723b6925..077df106b50ea2 100644 --- a/crates/ruff_workspace/src/settings.rs +++ b/crates/ruff_workspace/src/settings.rs @@ -60,9 +60,7 @@ impl fmt::Display for Settings { display_settings! { formatter = f, fields = [ - // We want the quotes and lossy UTF8 conversion for this path, so - // using PathBuf's `Debug` formatter suffices. - self.cache_dir | debug, + self.cache_dir | display, self.fix, self.fix_only, self.output_format, @@ -101,7 +99,7 @@ impl fmt::Display for FileResolverSettings { self.include, self.extend_include, self.respect_gitignore, - self.project_root | debug, + self.project_root | display, ] } Ok(())