From 4e1aeb1b99740b9f875cf3730f49d8a0f20b5635 Mon Sep 17 00:00:00 2001 From: Michael Davis Date: Thu, 11 Jan 2024 14:18:43 -0500 Subject: [PATCH] Rename LanguageConfig language_id as language_name --- helix-core/src/syntax.rs | 27 +++++++++++++++------------ helix-term/src/health.rs | 15 +++++++++------ helix-term/src/ui/mod.rs | 2 +- helix-view/src/document.rs | 4 ++-- xtask/src/docgen.rs | 6 +++--- xtask/src/querycheck.rs | 2 +- 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index 102ecb15d..16b8a13a8 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -93,7 +93,7 @@ fn default() -> Self { #[serde(rename_all = "kebab-case", deny_unknown_fields)] pub struct LanguageConfiguration { #[serde(rename = "name")] - pub language_id: String, // c-sharp, rust, tsx + pub language_name: String, // c-sharp, rust, tsx #[serde(rename = "language-id")] // see the table under https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#textDocumentItem pub language_server_language_id: Option, // csharp, rust, typescriptreact, for the language-server @@ -636,21 +636,21 @@ pub fn read_query(language: &str, filename: &str) -> String { impl LanguageConfiguration { fn initialize_highlight(&self, scopes: &[String]) -> Option> { - let highlights_query = read_query(&self.language_id, "highlights.scm"); + let highlights_query = read_query(&self.language_name, "highlights.scm"); // always highlight syntax errors // highlights_query += "\n(ERROR) @error"; - let injections_query = read_query(&self.language_id, "injections.scm"); - let locals_query = read_query(&self.language_id, "locals.scm"); + let injections_query = read_query(&self.language_name, "injections.scm"); + let locals_query = read_query(&self.language_name, "locals.scm"); if highlights_query.is_empty() { None } else { - let language = get_language(self.grammar.as_deref().unwrap_or(&self.language_id)) + let language = get_language(self.grammar.as_deref().unwrap_or(&self.language_name)) .map_err(|err| { log::error!( "Failed to load tree-sitter parser for language {:?}: {}", - self.language_id, + self.language_name, err ) }) @@ -661,7 +661,7 @@ fn initialize_highlight(&self, scopes: &[String]) -> Option &str { } fn load_query(&self, kind: &str) -> Option { - let query_text = read_query(&self.language_id, kind); + let query_text = read_query(&self.language_name, kind); if query_text.is_empty() { return None; } @@ -715,7 +715,7 @@ fn load_query(&self, kind: &str) -> Option { log::error!( "Failed to parse {} queries for {}: {}", kind, - self.language_id, + self.language_name, e ) }) @@ -855,10 +855,13 @@ pub fn language_config_for_scope(&self, scope: &str) -> Option Option> { + pub fn language_config_for_language_name( + &self, + name: &str, + ) -> Option> { self.language_configs .iter() - .find(|config| config.language_id == id) + .find(|config| config.language_name == name) .cloned() } @@ -890,7 +893,7 @@ pub fn language_configuration_for_injection_string( InjectionLanguageMarker::Name(string) => self.language_config_for_name(string), InjectionLanguageMarker::Filename(file) => self.language_config_for_file_name(file), InjectionLanguageMarker::Shebang(shebang) => { - self.language_config_for_language_id(shebang) + self.language_config_for_language_name(shebang) } } } diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs index 44ae2a2f7..8e875de3c 100644 --- a/helix-term/src/health.rs +++ b/helix-term/src/health.rs @@ -179,7 +179,7 @@ pub fn languages_all() -> std::io::Result<()> { syn_loader_conf .language - .sort_unstable_by_key(|l| l.language_id.clone()); + .sort_unstable_by_key(|l| l.language_name.clone()); let check_binary = |cmd: Option<&str>| match cmd { Some(cmd) => match which::which(cmd) { @@ -190,7 +190,7 @@ pub fn languages_all() -> std::io::Result<()> { }; for lang in &syn_loader_conf.language { - column(&lang.language_id, Color::Reset); + column(&lang.language_name, Color::Reset); let mut cmds = lang.language_servers.iter().filter_map(|ls| { syn_loader_conf @@ -210,7 +210,7 @@ pub fn languages_all() -> std::io::Result<()> { check_binary(formatter); for ts_feat in TsFeature::all() { - match load_runtime_file(&lang.language_id, ts_feat.runtime_filename()).is_ok() { + match load_runtime_file(&lang.language_name, ts_feat.runtime_filename()).is_ok() { true => column("✓", Color::Green), false => column("✘", Color::Red), } @@ -254,7 +254,7 @@ pub fn language(lang_str: String) -> std::io::Result<()> { let lang = match syn_loader_conf .language .iter() - .find(|l| l.language_id == lang_str) + .find(|l| l.language_name == lang_str) { Some(l) => l, None => { @@ -263,8 +263,11 @@ pub fn language(lang_str: String) -> std::io::Result<()> { let suggestions: Vec<&str> = syn_loader_conf .language .iter() - .filter(|l| l.language_id.starts_with(lang_str.chars().next().unwrap())) - .map(|l| l.language_id.as_str()) + .filter(|l| { + l.language_name + .starts_with(lang_str.chars().next().unwrap()) + }) + .map(|l| l.language_name.as_str()) .collect(); if !suggestions.is_empty() { let suggestions = suggestions.join(", "); diff --git a/helix-term/src/ui/mod.rs b/helix-term/src/ui/mod.rs index 660bbfea3..0b8dae855 100644 --- a/helix-term/src/ui/mod.rs +++ b/helix-term/src/ui/mod.rs @@ -339,7 +339,7 @@ pub fn language(editor: &Editor, input: &str) -> Vec { let language_ids = editor .syn_loader .language_configs() - .map(|config| &config.language_id) + .map(|config| &config.language_name) .chain(std::iter::once(&text)); fuzzy_match(input, language_ids, false) diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs index 0de0cd172..e4cd7d865 100644 --- a/helix-view/src/document.rs +++ b/helix-view/src/document.rs @@ -1085,7 +1085,7 @@ pub fn set_language_by_language_id( config_loader: Arc, ) -> anyhow::Result<()> { let language_config = config_loader - .language_config_for_language_id(language_id) + .language_config_for_language_name(language_id) .ok_or_else(|| anyhow!("invalid language id: {}", language_id))?; self.set_language(Some(language_config), Some(config_loader)); Ok(()) @@ -1530,7 +1530,7 @@ pub fn language_scope(&self) -> Option<&str> { pub fn language_name(&self) -> Option<&str> { self.language .as_ref() - .map(|language| language.language_id.as_str()) + .map(|language| language.language_name.as_str()) } /// Language ID for the document. Either the `language-id`, diff --git a/xtask/src/docgen.rs b/xtask/src/docgen.rs index 034d9918e..5f0ae5d51 100644 --- a/xtask/src/docgen.rs +++ b/xtask/src/docgen.rs @@ -67,7 +67,7 @@ pub fn lang_features() -> Result { let mut langs = config .language .iter() - .map(|l| l.language_id.clone()) + .map(|l| l.language_name.clone()) .collect::>(); langs.sort_unstable(); @@ -81,9 +81,9 @@ pub fn lang_features() -> Result { let lc = config .language .iter() - .find(|l| l.language_id == lang) + .find(|l| l.language_name == lang) .unwrap(); // lang comes from config - row.push(lc.language_id.clone()); + row.push(lc.language_name.clone()); for (_feat, support_list) in &ts_features_to_langs { row.push( diff --git a/xtask/src/querycheck.rs b/xtask/src/querycheck.rs index 454d0e5cd..06601ef78 100644 --- a/xtask/src/querycheck.rs +++ b/xtask/src/querycheck.rs @@ -14,7 +14,7 @@ pub fn query_check() -> Result<(), DynError> { ]; for language in lang_config().language { - let language_name = &language.language_id; + let language_name = &language.language_name; let grammar_name = language.grammar.as_ref().unwrap_or(language_name); for query_file in query_files { let language = get_language(grammar_name);