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 1c6d40f562
commit 4409c56754
No known key found for this signature in database
2 changed files with 12 additions and 3 deletions

View File

@ -30,13 +30,12 @@ use directories::PROJECT_DIRS;
use globset::GlobMatcher;
use bat::{
assets::HighlightingAssets,
config::Config,
controller::Controller,
error::*,
input::Input,
style::{StyleComponent, StyleComponents},
MappingTarget, PagingMode,
theme, MappingTarget, PagingMode,
};
const THEME_PREVIEW_DATA: &[u8] = include_bytes!("../../../assets/theme_preview.rs");
@ -201,10 +200,15 @@ pub fn list_themes(cfg: &Config, config_dir: &Path, cache_dir: &Path) -> Result<
let mut stdout = stdout.lock();
if config.colored_output {
let default_theme = HighlightingAssets::default_theme();
use theme::{color_scheme, default_theme, ColorScheme, DetectColorScheme};
let default_theme = default_theme(color_scheme(DetectColorScheme::Auto));
for theme in assets.themes() {
let default_theme_info = if default_theme == theme {
" (default)"
} else if theme::default_theme(ColorScheme::Dark) == theme {
" (default dark)"
} else if theme::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)]