Add suffix based file icons

This commit is contained in:
Mikayla Maki 2023-07-13 16:56:39 -07:00
parent 91ba80ae98
commit d26f76ba90
No known key found for this signature in database
6 changed files with 62 additions and 14 deletions

View file

@ -342,6 +342,8 @@ pub struct LanguageConfig {
pub block_comment: Option<(Arc<str>, Arc<str>)>,
#[serde(default)]
pub overrides: HashMap<String, LanguageConfigOverride>,
#[serde(default)]
pub icon_path: Option<Arc<str>>,
}
#[derive(Debug, Default)]
@ -408,6 +410,7 @@ impl Default for LanguageConfig {
line_comment: Default::default(),
block_comment: Default::default(),
overrides: Default::default(),
icon_path: Default::default(),
}
}
}
@ -752,6 +755,22 @@ impl LanguageRegistry {
self.get_or_load_language(|config| UniCase::new(config.name.as_ref()) == name)
}
pub fn icon_for_suffix(
self: &Arc<Self>,
suffix: &str,
) -> Option<Arc<str>> {
let state = self.state.read();
state.available_languages
.iter()
.find(|langauge| {
langauge.config.path_suffixes.iter().any(|s| s == suffix)
})
.map(|language| {
language.config.icon_path.clone()
})
.flatten()
}
pub fn language_for_name_or_extension(
self: &Arc<Self>,
string: &str,