Unnamed repository; edit this file 'description' to name the repository.
Show parser availability in --health [LANG] (#12228)
Eduardo Rittner Coelho 2024-12-19
parent 13e5a2e · commit 9e4da4b
-rw-r--r--helix-term/src/health.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/helix-term/src/health.rs b/helix-term/src/health.rs
index 54789b89..88e7b27b 100644
--- a/helix-term/src/health.rs
+++ b/helix-term/src/health.rs
@@ -307,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)?
}
@@ -314,6 +316,18 @@ 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();
+
+ write!(stdout, "Tree-sitter parser: ")?;
+
+ match helix_loader::grammar::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<Item = &'a str> + 'a>(
protocol_name: &str,