display which theme is the default one in basic output

This commit is contained in:
Stéphane Blondon 2024-04-14 17:17:58 +02:00 committed by Martin Nordholts
parent 9eaed3e3f0
commit 23ec433167
3 changed files with 26 additions and 3 deletions

View file

@ -34,6 +34,7 @@
- Relax syntax mapping rule restrictions to allow brace expansion #2865 (@cyqsimon)
- Apply clippy fixes #2864 (@cyqsimon)
- Faster startup by offloading glob matcher building to a worker thread #2868 (@cyqsimon)
- Display which theme is the default one in basic output (no colors), see #2937 (@sblondon)
- Display which theme is the default one in colored output, see #2838 (@sblondon)
## Syntaxes

View file

@ -200,8 +200,8 @@ pub fn list_themes(cfg: &Config, config_dir: &Path, cache_dir: &Path) -> Result<
let stdout = io::stdout();
let mut stdout = stdout.lock();
let default_theme = HighlightingAssets::default_theme();
if config.colored_output {
let default_theme = HighlightingAssets::default_theme();
for theme in assets.themes() {
let default_theme_info = if default_theme == theme {
" (default)"
@ -230,7 +230,12 @@ pub fn list_themes(cfg: &Config, config_dir: &Path, cache_dir: &Path) -> Result<
)?;
} else {
for theme in assets.themes() {
writeln!(stdout, "{theme}")?;
let default_theme_info = if default_theme == theme {
" (default)"
} else {
""
};
writeln!(stdout, "{theme}{default_theme_info}")?;
}
}

View file

@ -273,7 +273,7 @@ fn squeeze_limit_line_numbers() {
}
#[test]
fn list_themes() {
fn list_themes_with_colors() {
#[cfg(target_os = "macos")]
let default_theme_chunk = "Monokai Extended Light\x1B[0m (default)";
@ -290,6 +290,23 @@ fn list_themes() {
.stdout(predicate::str::contains("Output the square of a number.").normalize());
}
#[test]
fn list_themes_without_colors() {
#[cfg(target_os = "macos")]
let default_theme_chunk = "Monokai Extended Light (default)";
#[cfg(not(target_os = "macos"))]
let default_theme_chunk = "Monokai Extended (default)";
bat()
.arg("--color=never")
.arg("--list-themes")
.assert()
.success()
.stdout(predicate::str::contains("DarkNeon").normalize())
.stdout(predicate::str::contains(default_theme_chunk).normalize());
}
#[test]
#[cfg_attr(any(not(feature = "git"), target_os = "windows"), ignore)]
fn short_help() {