Skip to content

Commit dcd385a

Browse files
committed
Allow naming custom theme same as inherited one
1 parent fd3d75a commit dcd385a

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

helix-view/src/theme.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,12 @@ impl Loader {
4646
return Ok(self.base16_default());
4747
}
4848

49-
let mut raw_theme: RawTheme = self.load_raw(name)?;
49+
let path = self.path(name, false);
50+
let mut raw_theme: RawTheme = self.load_raw(path)?;
5051

5152
if let Some(parent_theme_name) = &raw_theme.inherits_from {
52-
//let parent_theme_name = "bogster";
53-
let parent_raw_theme = self.load_raw(parent_theme_name)?;
53+
let path = self.path(parent_theme_name, parent_theme_name == name);
54+
let parent_raw_theme = self.load_raw(path)?;
5455

5556
raw_theme.inherit(parent_raw_theme);
5657
}
@@ -74,19 +75,18 @@ impl Loader {
7475
}
7576

7677
// Loads the raw theme data first from the user_dir then in default_dir
77-
fn load_raw(&self, name: &str) -> Result<RawTheme, anyhow::Error> {
78-
let path = self.path(name);
78+
fn load_raw(&self, path: PathBuf) -> Result<RawTheme, anyhow::Error> {
7979
let data = std::fs::read(&path)?;
8080

8181
toml::from_slice(data.as_slice()).context("Faled to deserialize theme")
8282
}
8383

8484
// Returns the path to the theme name
85-
fn path(&self, name: &str) -> PathBuf {
85+
fn path(&self, name: &str, only_default_dir: bool) -> PathBuf {
8686
let filename = format!("{}.toml", name);
8787

8888
let user_path = self.user_dir.join(&filename);
89-
if user_path.exists() {
89+
if !only_default_dir && user_path.exists() {
9090
user_path
9191
} else {
9292
self.default_dir.join(filename)

0 commit comments

Comments
 (0)