Add support for Newick tree files

pull/485/head
Franklin Delehelle 2023-02-16 15:52:03 +07:00
parent 7da090705c
commit a0b9df0e29
No known key found for this signature in database
GPG Key ID: 0CE9FDA70E999B9E
5 changed files with 25 additions and 0 deletions

@ -235,6 +235,11 @@ fn main() {
src_dir: "vendored_parsers/tree-sitter-make-src",
extra_files: vec![],
},
TreeSitterParser {
name: "tree-sitter-newick",
src_dir: "vendored_parsers/tree-sitter-newick-src",
extra_files: vec![],
},
TreeSitterParser {
name: "tree-sitter-nix",
src_dir: "vendored_parsers/tree-sitter-nix-src",

@ -48,6 +48,7 @@ pub enum Language {
Kotlin,
Lua,
Make,
Newick,
Nix,
OCaml,
OCamlInterface,
@ -102,6 +103,7 @@ pub fn language_name(language: Language) -> &'static str {
Kotlin => "Kotlin",
Lua => "Lua",
Make => "Make",
Newick => "Newick",
Nix => "Nix",
OCaml => "OCaml",
OCamlInterface => "OCaml Interface",
@ -195,6 +197,7 @@ pub const LANG_EXTENSIONS: &[(Language, &[&str])] = &[
(Kotlin, &["kt", "ktm", "kts"]),
(Lua, &["lua"]),
(Make, &["mak", "d", "make", "makefile", "mk", "mkfile"]),
(Newick, &["nhx", "nwk", "nh"]),
(Nix, &["nix"]),
(OCaml, &["ml"]),
(OCamlInterface, &["mli"]),

@ -91,6 +91,7 @@ extern "C" {
fn tree_sitter_kotlin() -> ts::Language;
fn tree_sitter_lua() -> ts::Language;
fn tree_sitter_make() -> ts::Language;
fn tree_sitter_newick() -> ts::Language;
fn tree_sitter_nix() -> ts::Language;
fn tree_sitter_ocaml() -> ts::Language;
fn tree_sitter_ocaml_interface() -> ts::Language;
@ -619,6 +620,20 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
}],
}
}
Newick => {
let language = unsafe { tree_sitter_newick() };
TreeSitterConfig {
language,
atom_nodes: vec![].into_iter().collect(),
delimiter_tokens: vec![("(", ")")],
highlight_query: ts::Query::new(
language,
include_str!("../../vendored_parsers/highlights/newick.scm"),
)
.unwrap(),
sub_languages: vec![],
}
}
Nix => {
let language = unsafe { tree_sitter_nix() };
TreeSitterConfig {

@ -0,0 +1 @@
../tree-sitter-newick/queries/highlights.scm

@ -0,0 +1 @@
tree-sitter-newick/src