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 globset::GlobMatcher;
use bat::{ use bat::{
assets::HighlightingAssets,
config::Config, config::Config,
controller::Controller, controller::Controller,
error::*, error::*,
input::Input, input::Input,
style::{StyleComponent, StyleComponents}, style::{StyleComponent, StyleComponents},
theme::{color_scheme, default_theme, ColorScheme, DetectColorScheme},
MappingTarget, PagingMode, MappingTarget, PagingMode,
}; };
@ -200,10 +200,14 @@ pub fn list_themes(cfg: &Config, config_dir: &Path, cache_dir: &Path) -> Result<
let stdout = io::stdout(); let stdout = io::stdout();
let mut stdout = stdout.lock(); 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() { for theme in assets.themes() {
let default_theme_info = if default_theme == theme { let default_theme_info = if default_theme_name == theme {
" (default)" " (default)"
} else if default_theme(ColorScheme::Dark) == theme {
" (default dark)"
} else if default_theme(ColorScheme::Light) == theme {
" (default light)"
} else { } 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. /// Options for configuring the theme used for syntax highlighting.
/// Used together with [`theme`]. /// Used together with [`theme`].
#[derive(Debug, Default, PartialEq, Eq)] #[derive(Debug, Default, PartialEq, Eq)]