Include cyan for prefix on versions (#9155)

## Summary

The `v` in `v1.0.0` wasn't cyan, but the version was. This wasn't
obvious from the snapshots, which ignore color.
This commit is contained in:
Charlie Marsh 2024-11-15 16:11:19 -05:00 committed by GitHub
parent 5bff2ba243
commit e21227504b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 23 additions and 20 deletions

View File

@ -308,61 +308,65 @@ pub(crate) fn no_solution_hint(err: uv_resolver::NoSolutionError, help: String)
fn format_chain(name: &PackageName, version: Option<&Version>, chain: &DerivationChain) -> String { fn format_chain(name: &PackageName, version: Option<&Version>, chain: &DerivationChain) -> String {
/// Format a step in the [`DerivationChain`] as a human-readable error message. /// Format a step in the [`DerivationChain`] as a human-readable error message.
fn format_step(step: &DerivationStep, range: Option<Ranges<Version>>) -> String { fn format_step(step: &DerivationStep, range: Option<Ranges<Version>>) -> String {
if let Some(visual) = if let Some(range) =
range.filter(|range| *range != Ranges::empty() && *range != Ranges::full()) range.filter(|range| *range != Ranges::empty() && *range != Ranges::full())
{ {
if let Some(extra) = &step.extra { if let Some(extra) = &step.extra {
// Ex) `flask[dotenv]>=1.0.0` (v1.2.3)` // Ex) `flask[dotenv]>=1.0.0` (v1.2.3)`
format!( format!(
"`{}{}` (v{})", "`{}{}` ({})",
format!("{}[{}]", step.name, extra).cyan(), format!("{}[{}]", step.name, extra).cyan(),
visual.cyan(), range.cyan(),
step.version.cyan() format!("v{}", step.version).cyan(),
) )
} else if let Some(group) = &step.group { } else if let Some(group) = &step.group {
// Ex) `flask:dev>=1.0.0` (v1.2.3)` // Ex) `flask:dev>=1.0.0` (v1.2.3)`
format!( format!(
"`{}{}` (v{})", "`{}{}` ({})",
format!("{}:{}", step.name, group).cyan(), format!("{}:{}", step.name, group).cyan(),
visual.cyan(), range.cyan(),
step.version.cyan() format!("v{}", step.version).cyan(),
) )
} else { } else {
// Ex) `flask>=1.0.0` (v1.2.3)` // Ex) `flask>=1.0.0` (v1.2.3)`
format!( format!(
"`{}{}` (v{})", "`{}{}` ({})",
step.name.cyan(), step.name.cyan(),
visual.cyan(), range.cyan(),
step.version.cyan() format!("v{}", step.version).cyan(),
) )
} }
} else { } else {
if let Some(extra) = &step.extra { if let Some(extra) = &step.extra {
// Ex) `flask[dotenv]` (v1.2.3)` // Ex) `flask[dotenv]` (v1.2.3)`
format!( format!(
"`{}` (v{})", "`{}` ({})",
format!("{}[{}]", step.name, extra).cyan(), format!("{}[{}]", step.name, extra).cyan(),
step.version.cyan() format!("v{}", step.version).cyan(),
) )
} else if let Some(group) = &step.group { } else if let Some(group) = &step.group {
// Ex) `flask:dev` (v1.2.3)` // Ex) `flask:dev` (v1.2.3)`
format!( format!(
"`{}` (v{})", "`{}` ({})",
format!("{}:{}", step.name, group).cyan(), format!("{}:{}", step.name, group).cyan(),
step.version.cyan() format!("v{}", step.version).cyan(),
) )
} else { } else {
// Ex) `flask` (v1.2.3)` // Ex) `flask` (v1.2.3)`
format!("`{}` (v{})", step.name.cyan(), step.version.cyan()) format!(
"`{}` ({})",
step.name.cyan(),
format!("v{}", step.version).cyan()
)
} }
} }
} }
let mut message = if let Some(version) = version { let mut message = if let Some(version) = version {
format!( format!(
"`{}` (v{}) was included because", "`{}` ({}) was included because",
name.cyan(), name.cyan(),
version.cyan() format!("v{version}").cyan()
) )
} else { } else {
format!("`{}` was included because", name.cyan()) format!("`{}` was included because", name.cyan())
@ -376,10 +380,9 @@ fn format_chain(name: &PackageName, version: Option<&Version>, chain: &Derivatio
} }
range = Some(SentinelRange::from(&step.range).strip()); range = Some(SentinelRange::from(&step.range).strip());
} }
if let Some(visual) = if let Some(range) = range.filter(|range| *range != Ranges::empty() && *range != Ranges::full())
range.filter(|range| *range != Ranges::empty() && *range != Ranges::full())
{ {
message = format!("{message} `{}{}`", name.cyan(), visual.cyan()); message = format!("{message} `{}{}`", name.cyan(), range.cyan());
} else { } else {
message = format!("{message} `{}`", name.cyan()); message = format!("{message} `{}`", name.cyan());
} }