anstream println field witdth is not aware of color codes
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza reproduciendo el ejemplo de Rust del issue y sigue cómo el formateo de println de anstream gestiona el ancho cuando una implementación de Display emite códigos de color ANSI. Identifica la ruta de formateo relevante y añade cobertura para el ejemplo; se considera terminado cuando los valores coloreados quedan alineados con sus equivalentes sin color.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I would expect the following (rather silly minimal case) to align columns properly:
use anstream::println;
use anstyle::AnsiColor;
use anstyle::Reset;
enum MyLogLevel {
Ok,
Warn,
Error,
}
impl std::fmt::Display for MyLogLevel {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
MyLogLevel::Ok => write!(f, "{}Ok{}", AnsiColor::Green.render_fg(), Reset.render()),
MyLogLevel::Warn => write!(
f,
"{}Warning{}",
AnsiColor::Yellow.render_fg(),
Reset.render()
),
MyLogLevel::Error => write!(f, "{}Error{}", AnsiColor::Red.render_fg(), Reset.render()),
}
}
}
fn main() {
println!("{:<10} Everything is fine", "Ok");
println!("{:<10} Be careful", "Warning");
println!("{:<10} BAD BAD BAD", "Error");
println!("{:<10} Everything is fine", MyLogLevel::Ok);
println!("{:<10} Be careful", MyLogLevel::Warn);
println!("{:<10} BAD BAD BAD", MyLogLevel::Error);
}
It prints:
Ok Everything is fine
Warning Be careful
Error BAD BAD BAD
Ok Everything is fine
Warning Be careful
Error BAD BAD BAD
This is unexpected. So it seems the anstream println is not properly aware of how wide colour codes are.
- Lenguaje dominante
- HTML
- Estrellas
- 172
- Forks
- 45
- Merge medio
- 4 h 12 min
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-cli/anstyle
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
`StripStr` doesn't appear to maintain state across calls to `strip_next`.Quizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. AbiertoA-stream
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
-
A-stream C-bug S-triage
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de rust-cli/anstyle
Issues similares
-
[1.x Bug] run-operation --sql reports success but rolls back writes on transaction-capable adaptersAbiertotriage
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
dbt-labs/dbt#16784 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:cli bug good first issue priority:medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
rtk-ai/rtk#4615 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
kellyjonbrazil/jc#788 ·
Los mantenedores suelen responder en 2 días
-
T.1 - Enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
nipoppy/nipoppy#1205 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Los mantenedores suelen responder en 1 día