From c051a90ac5f48db307d63187b3f032a762c1f3f2 Mon Sep 17 00:00:00 2001 From: Ron Panduwana Date: Wed, 27 Mar 2024 16:08:31 +0700 Subject: [PATCH] fix: insert "tree-sitter" section in current directory's package.json if it exists Co-authored-by: ObserverOfTime --- cli/src/generate/grammar_files.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/cli/src/generate/grammar_files.rs b/cli/src/generate/grammar_files.rs index 106f9693..1c1b7771 100644 --- a/cli/src/generate/grammar_files.rs +++ b/cli/src/generate/grammar_files.rs @@ -214,6 +214,19 @@ pub fn generate_grammar_files( updated = true; } + // insert `tree-sitter` at the end + if !package_json.contains_key("tree-sitter") { + eprintln!("Adding a `tree-sitter` section to package.json"); + package_json.insert( + "tree-sitter".to_string(), + json!([{ + "scope": format!("source.{language_name}"), + "injection-regex": format!("^{language_name}$"), + }]), + ); + updated = true; + } + if updated { let mut package_json_str = serde_json::to_string_pretty(&package_json)?; package_json_str.push('\n'); @@ -450,8 +463,7 @@ fn lookup_package_json_for_path(path: &Path) -> Result<(PathBuf, PackageJSON)> { .then(|| -> Result { let file = File::open(pathbuf.as_path()).with_context(|| "Failed to open package.json")?; - let package_json: PackageJSON = serde_json::from_reader(BufReader::new(file))?; - Ok(package_json) + Ok(serde_json::from_reader(BufReader::new(file))?) }) .transpose()?; if let Some(package_json) = package_json {