|
|
|
|
@ -90,10 +90,10 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Bash",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "raw_string", "heredoc_body"])
|
|
|
|
|
atom_nodes: vec!["string", "raw_string", "heredoc_body"]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("[", "]")]),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/bash.scm"),
|
|
|
|
|
@ -106,10 +106,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "C",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string_literal", "char_literal"])
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("[", "]")]),
|
|
|
|
|
atom_nodes: vec!["string_literal", "char_literal"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/c.scm"),
|
|
|
|
|
@ -124,10 +122,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
language,
|
|
|
|
|
// The C++ grammar extends the C grammar, so the node
|
|
|
|
|
// names are generally the same.
|
|
|
|
|
atom_nodes: (vec!["string_literal", "char_literal"])
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("[", "]"), ("<", ">")]),
|
|
|
|
|
atom_nodes: vec!["string_literal", "char_literal"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]"), ("<", ">")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
concat!(
|
|
|
|
|
@ -143,8 +139,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Clojure",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]")])
|
|
|
|
|
atom_nodes: vec![].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]")]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -159,8 +155,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Common Lisp",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["str_lit", "char_lit"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")")]),
|
|
|
|
|
atom_nodes: vec!["str_lit", "char_lit"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")")],
|
|
|
|
|
highlight_query: ts::Query::new(language, "").unwrap(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -169,14 +165,14 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "C#",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![
|
|
|
|
|
atom_nodes: vec![
|
|
|
|
|
"string_literal",
|
|
|
|
|
"verbatim_string_literal",
|
|
|
|
|
"character_literal",
|
|
|
|
|
])
|
|
|
|
|
]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")")]),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/c-sharp.scm"),
|
|
|
|
|
@ -189,8 +185,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "CSS",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["integer_value", "float_value"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")")]),
|
|
|
|
|
atom_nodes: vec!["integer_value", "float_value"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/css.scm"),
|
|
|
|
|
@ -203,8 +199,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Dart",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string_literal", "script_tag"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")]),
|
|
|
|
|
atom_nodes: vec!["string_literal", "script_tag"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/dart.scm"),
|
|
|
|
|
@ -217,8 +213,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Emacs Lisp",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]")])
|
|
|
|
|
atom_nodes: vec![].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]")]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -233,8 +229,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Elixir",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "heredoc"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("do", "end")])
|
|
|
|
|
atom_nodes: vec!["string", "heredoc"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("do", "end")]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -249,10 +245,10 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Go",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["interpreted_string_literal", "raw_string_literal"])
|
|
|
|
|
atom_nodes: vec!["interpreted_string_literal", "raw_string_literal"]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("[", "]"), ("(", ")")])
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("[", "]"), ("(", ")")]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -267,8 +263,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Haskell",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("[", "]"), ("(", ")")]),
|
|
|
|
|
atom_nodes: vec![].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("[", "]"), ("(", ")")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/haskell.scm"),
|
|
|
|
|
@ -281,15 +277,15 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Janet",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![
|
|
|
|
|
atom_nodes: vec![].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![
|
|
|
|
|
("@{", "}"),
|
|
|
|
|
("@(", ")"),
|
|
|
|
|
("@[", "]"),
|
|
|
|
|
("{", "}"),
|
|
|
|
|
("(", ")"),
|
|
|
|
|
("[", "]"),
|
|
|
|
|
])
|
|
|
|
|
]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -304,8 +300,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Java",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec![]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("[", "]")]),
|
|
|
|
|
atom_nodes: vec![].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/java.scm"),
|
|
|
|
|
@ -318,10 +314,10 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "JavaScript",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "template_string", "regex"])
|
|
|
|
|
atom_nodes: vec!["string", "template_string", "regex"]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![
|
|
|
|
|
delimiter_tokens: vec![
|
|
|
|
|
("[", "]"),
|
|
|
|
|
("(", ")"),
|
|
|
|
|
("{", "}"),
|
|
|
|
|
@ -329,7 +325,7 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
// like 1 < 2, but we should never see both a < and a
|
|
|
|
|
// > at the same level in JSX.
|
|
|
|
|
("<", ">"),
|
|
|
|
|
]),
|
|
|
|
|
],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/javascript.scm"),
|
|
|
|
|
@ -342,8 +338,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "JSON",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("[", "]")]),
|
|
|
|
|
atom_nodes: vec!["string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("[", "]")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/json.scm"),
|
|
|
|
|
@ -356,8 +352,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Lua",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("{", "}"), ("[", "]")])
|
|
|
|
|
atom_nodes: vec!["string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
@ -389,7 +385,7 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
name: "OCaml",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: OCAML_ATOM_NODES.iter().copied().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("[", "]"), ("{", "}")]),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("[", "]"), ("{", "}")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/ocaml.scm"),
|
|
|
|
|
@ -403,7 +399,7 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
name: "OCaml Interface",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: OCAML_ATOM_NODES.iter().copied().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("[", "]"), ("{", "}")]),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("[", "]"), ("{", "}")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/ocaml.scm"),
|
|
|
|
|
@ -416,8 +412,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "PHP",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("[", "]"), ("{", "}")]),
|
|
|
|
|
atom_nodes: vec!["string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("[", "]"), ("{", "}")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/php.scm"),
|
|
|
|
|
@ -430,8 +426,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Python",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("(", ")"), ("[", "]"), ("{", "}")]),
|
|
|
|
|
atom_nodes: vec!["string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("(", ")"), ("[", "]"), ("{", "}")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/python.scm"),
|
|
|
|
|
@ -444,10 +440,10 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Ruby",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "heredoc_body", "regex"])
|
|
|
|
|
atom_nodes: vec!["string", "heredoc_body", "regex"]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![
|
|
|
|
|
delimiter_tokens: vec![
|
|
|
|
|
("{", "}"),
|
|
|
|
|
("(", ")"),
|
|
|
|
|
("[", "]"),
|
|
|
|
|
@ -455,7 +451,7 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
("def", "end"),
|
|
|
|
|
("begin", "end"),
|
|
|
|
|
("class", "end"),
|
|
|
|
|
]),
|
|
|
|
|
],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/ruby.scm"),
|
|
|
|
|
@ -468,16 +464,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Rust",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["char_literal", "string_literal"])
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![
|
|
|
|
|
("{", "}"),
|
|
|
|
|
("(", ")"),
|
|
|
|
|
("[", "]"),
|
|
|
|
|
("|", "|"),
|
|
|
|
|
("<", ">"),
|
|
|
|
|
]),
|
|
|
|
|
atom_nodes: vec!["char_literal", "string_literal"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]"), ("|", "|"), ("<", ">")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/rust.scm"),
|
|
|
|
|
@ -490,8 +478,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "Scala",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "template_string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]")]),
|
|
|
|
|
atom_nodes: vec!["string", "template_string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
include_str!("../vendor/highlights/scala.scm"),
|
|
|
|
|
@ -504,10 +492,10 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "TypeScript",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "template_string", "regex"])
|
|
|
|
|
atom_nodes: vec!["string", "template_string", "regex"]
|
|
|
|
|
.into_iter()
|
|
|
|
|
.collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")]),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
concat!(
|
|
|
|
|
@ -523,8 +511,8 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
|
|
|
|
|
TreeSitterConfig {
|
|
|
|
|
name: "TypeScript TSX",
|
|
|
|
|
language,
|
|
|
|
|
atom_nodes: (vec!["string", "template_string"]).into_iter().collect(),
|
|
|
|
|
delimiter_tokens: (vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")]),
|
|
|
|
|
atom_nodes: vec!["string", "template_string"].into_iter().collect(),
|
|
|
|
|
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]"), ("<", ">")],
|
|
|
|
|
highlight_query: ts::Query::new(
|
|
|
|
|
language,
|
|
|
|
|
concat!(
|
|
|
|
|
|