From 6a8121c2d0be8f00db9beae09d4b0e645873b754 Mon Sep 17 00:00:00 2001 From: eduardorittner Date: Tue, 10 Dec 2024 01:40:37 -0300 Subject: [PATCH 1/2] Added check for treesitter-parser in --health --- helix-term/src/health.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs index 54789b8997a6..d3c0664efc9c 100644 --- a/helix-term/src/health.rs +++ b/helix-term/src/health.rs @@ -300,6 +300,8 @@ pub fn language(lang_str: String) -> std::io::Result<()> { lang.debugger.as_ref().map(|dap| dap.command.to_string()), )?; + probe_parser(lang.grammar.as_ref().unwrap_or(&lang.language_id))?; + probe_protocol( "formatter", lang.formatter @@ -314,6 +316,20 @@ pub fn language(lang_str: String) -> std::io::Result<()> { Ok(()) } +fn probe_parser(grammar_name: &str) -> std::io::Result<()> { + let stdout = std::io::stdout(); + let mut stdout = stdout.lock(); + + use helix_loader::grammar::get_language; + + write!(stdout, "Tree-sitter parser: ")?; + + match get_language(grammar_name) { + Ok(_) => writeln!(stdout, "{}", "✓".green()), + Err(_) => writeln!(stdout, "{}", "None".yellow()), + } +} + /// Display diagnostics about multiple LSPs and DAPs. fn probe_protocols<'a, I: Iterator + 'a>( protocol_name: &str, From ee689b6581a9cdf2af31585258f8dd57353155cd Mon Sep 17 00:00:00 2001 From: eduardorittner Date: Wed, 18 Dec 2024 14:08:01 -0300 Subject: [PATCH 2/2] review changes - Use fully qualified syntax for `get_language` instead of `use` - Print parser availability after formatter and before queries --- helix-term/src/health.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs index d3c0664efc9c..88e7b27be4d7 100644 --- a/helix-term/src/health.rs +++ b/helix-term/src/health.rs @@ -300,8 +300,6 @@ pub fn language(lang_str: String) -> std::io::Result<()> { lang.debugger.as_ref().map(|dap| dap.command.to_string()), )?; - probe_parser(lang.grammar.as_ref().unwrap_or(&lang.language_id))?; - probe_protocol( "formatter", lang.formatter @@ -309,6 +307,8 @@ pub fn language(lang_str: String) -> std::io::Result<()> { .map(|formatter| formatter.command.to_string()), )?; + probe_parser(lang.grammar.as_ref().unwrap_or(&lang.language_id))?; + for ts_feat in TsFeature::all() { probe_treesitter_feature(&lang_str, *ts_feat)? } @@ -320,11 +320,9 @@ fn probe_parser(grammar_name: &str) -> std::io::Result<()> { let stdout = std::io::stdout(); let mut stdout = stdout.lock(); - use helix_loader::grammar::get_language; - write!(stdout, "Tree-sitter parser: ")?; - match get_language(grammar_name) { + match helix_loader::grammar::get_language(grammar_name) { Ok(_) => writeln!(stdout, "{}", "✓".green()), Err(_) => writeln!(stdout, "{}", "None".yellow()), }