@@ -2,7 +2,6 @@ use directories::ProjectDirs;
22use errors::*;
33use std::borrow::Cow;
44use std::fs::{self, File};
5−use std::io;
65use std::path::{Path, PathBuf};
76use syntect::dumps::{dump_to_file, from_binary, from_reader};
87use syntect::highlighting::{Theme, ThemeSet};
@@ -123,17 +122,19 @@ impl HighlightingAssets {
123122 Ok(())
124123 }
125124
126− pub fn get_theme(&self, theme: &str) -> Result<&Theme> {
127− Ok(self.theme_set.themes.get(theme).ok_or_else(|| {
128− io::Error::new(
129− io::ErrorKind::Other,
130− format!("Could not find '{}' theme", theme),
131− )
132− })?)
133− }
134−
135− pub fn theme_exists(&self, theme: &str) -> bool {
136− self.theme_set.themes.contains_key(theme)
125+ pub fn get_theme(&self, theme: &str) -> &Theme {
126+ match self.theme_set.themes.get(theme) {
127+ Some(theme) => theme,
128+ None => {
129+ use ansi_term::Colour::Yellow;
130+ eprintln!(
131+ "{}: Unknown theme '{}', using default.",
132+ Yellow.paint("[bat warning]"),
133+ theme
134+ );
135+ &self.theme_set.themes["Default"]
136+ }
137+ }
137138 }
138139
139140 pub fn get_syntax(&self, language: Option<&str>, filename: Option<&str>) -> &SyntaxDefinition {