Use new `default_theme` fn for --list-themes

This commit is contained in:
Tau Gärtli 2024-04-16 14:43:50 +02:00
parent 2bebe8a20c
commit 89bb073b91
No known key found for this signature in database
2 changed files with 12 additions and 3 deletions

View File

@ -30,12 +30,12 @@ use directories::PROJECT_DIRS;
use globset::GlobMatcher;
use bat::{
assets::HighlightingAssets,
config::Config,
controller::Controller,
error::*,
input::Input,
style::{StyleComponent, StyleComponents},
theme::{color_scheme, default_theme, ColorScheme, DetectColorScheme},
MappingTarget, PagingMode,
};
@ -200,10 +200,14 @@ 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();
let default_theme_name = default_theme(color_scheme(DetectColorScheme::Auto));
for theme in assets.themes() {
let default_theme_info = if default_theme == theme {
let default_theme_info = if default_theme_name == theme {
" (default)"
} else if default_theme(ColorScheme::Dark) == theme {
" (default dark)"
} else if default_theme(ColorScheme::Light) == theme {
" (default light)"
} else {
""
};

View File

@ -19,6 +19,11 @@ pub const fn default_theme(color_scheme: ColorScheme) -> &'static str {
}
}
/// Detects the color scheme from the terminal.
pub fn color_scheme(when: DetectColorScheme) -> ColorScheme {
detect(when, &TerminalColorSchemeDetector).unwrap_or_default()
}
/// Options for configuring the theme used for syntax highlighting.
/// Used together with [`theme`].
#[derive(Debug, Default, PartialEq, Eq)]