diff options
author | Michael Davis | 2022-02-16 13:57:20 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-03-10 08:31:57 +0000 |
commit | 4fc991fdeca5db36bd7be7197510e62a019e1677 (patch) | |
tree | 03ce0022ba5f6aa71adf1c81214d05db8a84f035 /helix-core/src/config.rs | |
parent | 08ee949dcb904dc27aa41a62ad686c14c0a406bb (diff) |
migrate grammar fetching/building code into helix-loader crate
This is a rather large refactor that moves most of the code for
loading, fetching, and building grammars into a new helix-loader
module. This works well with the [[grammars]] syntax for
languages.toml defined earlier: we only have to depend on the types
for GrammarConfiguration in helix-loader and can leave all the
[[language]] entries for helix-core.
Diffstat (limited to 'helix-core/src/config.rs')
-rw-r--r-- | helix-core/src/config.rs | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/helix-core/src/config.rs b/helix-core/src/config.rs index d4ebee1f..f399850e 100644 --- a/helix-core/src/config.rs +++ b/helix-core/src/config.rs @@ -1,33 +1,10 @@ -use crate::merge_toml_values; - -/// Default bultin-in languages.toml. -pub fn default_lang_config() -> toml::Value { - toml::from_slice(include_bytes!("../../languages.toml")) - .expect("Could not parse bultin-in languages.toml to valid toml") -} - -/// User configured languages.toml file, merged with the default config. -pub fn user_lang_config() -> Result<toml::Value, toml::de::Error> { - let def_lang_conf = default_lang_config(); - let data = std::fs::read(crate::config_dir().join("languages.toml")); - let user_lang_conf = match data { - Ok(raw) => { - let value = toml::from_slice(&raw)?; - merge_toml_values(def_lang_conf, value) - } - Err(_) => def_lang_conf, - }; - - Ok(user_lang_conf) -} - /// Syntax configuration loader based on built-in languages.toml. pub fn default_syntax_loader() -> crate::syntax::Configuration { - default_lang_config() + helix_loader::default_lang_config() .try_into() .expect("Could not serialize built-in languages.toml") } /// Syntax configuration loader based on user configured languages.toml. pub fn user_syntax_loader() -> Result<crate::syntax::Configuration, toml::de::Error> { - user_lang_config()?.try_into() + helix_loader::user_lang_config()?.try_into() } |