feat: bump treesitter to 0.22

This commit is contained in:
Maciej Jur 2024-05-06 21:23:35 +02:00
parent 4b19440655
commit 3d3b091129
Signed by: kamov
GPG key ID: 191CBFF5F72ECAFD
3 changed files with 209 additions and 203 deletions

123
Cargo.lock generated
View file

@ -793,6 +793,12 @@ dependencies = [
"hashbrown 0.13.2", "hashbrown 0.13.2",
] ]
[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.153" version = "0.2.153"
@ -1224,8 +1230,7 @@ dependencies = [
"pulldown-cmark", "pulldown-cmark",
"regex", "regex",
"serde", "serde",
"tree-sitter", "tree-sitter 0.22.6",
"tree-sitter-astro",
"tree-sitter-css", "tree-sitter-css",
"tree-sitter-haskell", "tree-sitter-haskell",
"tree-sitter-highlight", "tree-sitter-highlight",
@ -1233,10 +1238,11 @@ dependencies = [
"tree-sitter-javascript", "tree-sitter-javascript",
"tree-sitter-md", "tree-sitter-md",
"tree-sitter-python", "tree-sitter-python",
"tree-sitter-query",
"tree-sitter-regex", "tree-sitter-regex",
"tree-sitter-rust", "tree-sitter-rust",
"tree-sitter-scheme", "tree-sitter-scss",
"tree-sitter-toml", "tree-sitter-toml-ng",
"tree-sitter-typescript", "tree-sitter-typescript",
"tungstenite", "tungstenite",
] ]
@ -1311,18 +1317,18 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "1.0.58" version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
dependencies = [ dependencies = [
"thiserror-impl", "thiserror-impl",
] ]
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "1.0.58" version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -1364,42 +1370,45 @@ dependencies = [
] ]
[[package]] [[package]]
name = "tree-sitter-astro" name = "tree-sitter"
version = "0.0.1" version = "0.22.6"
source = "git+https://github.com/virchau13/tree-sitter-astro.git?rev=e924787e12e8a03194f36a113290ac11d6dc10f3#e924787e12e8a03194f36a113290ac11d6dc10f3" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "regex",
] ]
[[package]] [[package]]
name = "tree-sitter-css" name = "tree-sitter-css"
version = "0.20.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3306ddefa1d2681adda2613d11974ffabfbeb215e23235da6c862f3493a04fd" checksum = "e2f806f96136762b0121f5fdd7172a3dcd8f42d37a2f23ed7f11b35895e20eb4"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-haskell" name = "tree-sitter-haskell"
version = "0.14.0" version = "0.21.0"
source = "git+https://github.com/tree-sitter/tree-sitter-haskell?rev=1da347c88599faad7964e63facead5d163ac7dba#1da347c88599faad7964e63facead5d163ac7dba" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef25a7e6c73cc1cbe0c0b7dbd5406e7b3485b370bd61c5d8d852ae0781f9bf9a"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-highlight" name = "tree-sitter-highlight"
version = "0.20.1" version = "0.22.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "042342584c5a7a0b833d9fc4e2bdab3f9868ddc6c4b339a1e01451c6720868bc" checksum = "eaca0fe34fa96eec6aaa8e63308dbe1bafe65a6317487c287f93938959b21907"
dependencies = [ dependencies = [
"lazy_static",
"regex", "regex",
"thiserror", "thiserror",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
@ -1409,86 +1418,96 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "017822b6bd42843c4bd67fabb834f61ce23254e866282dd93871350fd6b7fa1d" checksum = "017822b6bd42843c4bd67fabb834f61ce23254e866282dd93871350fd6b7fa1d"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.20.10",
] ]
[[package]] [[package]]
name = "tree-sitter-javascript" name = "tree-sitter-javascript"
version = "0.20.4" version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d015c02ea98b62c806f7329ff71c383286dfc3a7a7da0cc484f6e42922f73c2c" checksum = "080880908cb6e8d03cb9ceaeecec9a3d3a2f4e122e74642509bbb22aaefd991b"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-md" name = "tree-sitter-md"
version = "0.1.7" version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c20d3ef8d202430b644a307e6299d84bf8ed87fa1b796e4638f8805a595060c" checksum = "d9c3cfd068f2527250bbd8ff407431164e12b17863e7eafb76e311dd3f96965a"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-python" name = "tree-sitter-python"
version = "0.20.4" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c93b1b1fbd0d399db3445f51fd3058e43d0b4dcff62ddbdb46e66550978aa5" checksum = "b4066c6cf678f962f8c2c4561f205945c84834cce73d981e71392624fdc390a9"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
]
[[package]]
name = "tree-sitter-query"
version = "0.2.1"
source = "git+https://github.com/tree-sitter-grammars/tree-sitter-query?rev=87b1a3d#87b1a3dc6c5a76c5cedcdfc60efe75805468cb90"
dependencies = [
"cc",
"tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-regex" name = "tree-sitter-regex"
version = "0.20.0" version = "0.21.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efb5a53e9c990757895476216796b170fd81e4d173d08f8b082279c4e6ff8c5c" checksum = "5ff1286fe9651b2797484839ffa37aa76c8618d4ccb6836d7e31765dfd60c0d5"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-rust" name = "tree-sitter-rust"
version = "0.20.4" version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0832309b0b2b6d33760ce5c0e818cb47e1d72b468516bfe4134408926fa7594" checksum = "277690f420bf90741dea984f3da038ace46c4fe6047cba57a66822226cde1c93"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-scheme" name = "tree-sitter-scss"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33909a9ca86390ebbf3461e9949c4bbe2767d2d024b486306d27616641d4ba24"
dependencies = [
"cc",
"tree-sitter 0.22.6",
]
[[package]]
name = "tree-sitter-toml-ng"
version = "0.6.0" version = "0.6.0"
source = "git+https://github.com/6cdh/tree-sitter-scheme?rev=85b6188fb77c03dfb01d13e58e2844450506860c#85b6188fb77c03dfb01d13e58e2844450506860c"
dependencies = [
"cc",
"tree-sitter",
]
[[package]]
name = "tree-sitter-toml"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca517f578a98b23d20780247cc2688407fa81effad5b627a5a364ec3339b53e8" checksum = "695d20cd83acf16c02c773f03e76d7b43b19883d4e2ce3652a8f06b5e0da7455"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]
name = "tree-sitter-typescript" name = "tree-sitter-typescript"
version = "0.20.5" version = "0.21.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8bc1d2c24276a48ef097a71b56888ac9db63717e8f8d0b324668a27fd619670" checksum = "f07523e51e3b88529360a89038c0cca7ee877db40a40141514eece8b4cddcbb4"
dependencies = [ dependencies = [
"cc", "cc",
"tree-sitter", "tree-sitter 0.22.6",
] ]
[[package]] [[package]]

View file

@ -6,6 +6,7 @@ edition = "2021"
[dependencies] [dependencies]
camino = "1.1.6" camino = "1.1.6"
chrono = "0.4.35" chrono = "0.4.35"
clap = { version = "4.5.4", features = ["derive"] }
emojis = "0.6.1" emojis = "0.6.1"
glob = "0.3.1" glob = "0.3.1"
grass = { version = "0.13.2", default-features = false, features = ["random"] } grass = { version = "0.13.2", default-features = false, features = ["random"] }
@ -26,20 +27,20 @@ tungstenite = "0.21.0"
pulldown-cmark = { git = "https://github.com/pulldown-cmark/pulldown-cmark.git", branch = "branch_0.11" } pulldown-cmark = { git = "https://github.com/pulldown-cmark/pulldown-cmark.git", branch = "branch_0.11" }
# Treesitter # Treesitter
tree-sitter = "0.20" tree-sitter = "0.22"
tree-sitter-highlight = "0.20" tree-sitter-highlight = "0.22"
# Treesitter languages # Treesitter languages
tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" } # tree-sitter-astro = { git = "https://github.com/virchau13/tree-sitter-astro.git", rev = "e924787e12e8a03194f36a113290ac11d6dc10f3" }
tree-sitter-css = "0.20.0" tree-sitter-css = "0.21"
tree-sitter-haskell = { git = "https://github.com/tree-sitter/tree-sitter-haskell", rev = "1da347c88599faad7964e63facead5d163ac7dba" } tree-sitter-haskell = "0.21"
tree-sitter-html = "0.20" tree-sitter-html = "0.20"
tree-sitter-javascript = "0.20" tree-sitter-javascript = "0.21"
tree-sitter-md = "0.1" tree-sitter-md = "0.2"
tree-sitter-python = "0.20" tree-sitter-python = "0.21"
tree-sitter-regex = "0.20" tree-sitter-regex = "0.21"
tree-sitter-rust = "0.20" tree-sitter-rust = "0.21"
tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "85b6188fb77c03dfb01d13e58e2844450506860c" } tree-sitter-scss = "1"
tree-sitter-toml = "0.20" tree-sitter-query = { git = "https://github.com/tree-sitter-grammars/tree-sitter-query", rev = "87b1a3d" }
tree-sitter-typescript = "0.20" tree-sitter-toml-ng = "0.6"
clap = { version = "4.5.4", features = ["derive"] } tree-sitter-typescript = "0.21"

View file

@ -1,6 +1,5 @@
use std::collections::HashMap; use std::collections::HashMap;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
use tree_sitter::Language;
use tree_sitter_highlight::HighlightConfiguration; use tree_sitter_highlight::HighlightConfiguration;
use super::captures; use super::captures;
@ -17,6 +16,19 @@ macro_rules! query {
}; };
} }
macro_rules! language {
($name:expr, $lang:expr, $highlights:expr, $injections:expr, $locals:expr $(,)?) => {
(
$name,
{
let mut config = HighlightConfiguration::new($lang, $name, $highlights, $injections, $locals).unwrap();
config.configure(captures::NAMES);
config
}
)
};
}
pub static EXTENSIONS: Lazy<HashMap<&'static str, &'static str>> = Lazy::new(|| { pub static EXTENSIONS: Lazy<HashMap<&'static str, &'static str>> = Lazy::new(|| {
HashMap::from([ HashMap::from([
("hs", "haskell"), ("hs", "haskell"),
@ -24,174 +36,148 @@ pub static EXTENSIONS: Lazy<HashMap<&'static str, &'static str>> = Lazy::new(||
("md", "markdown"), ("md", "markdown"),
("mdx", "markdown"), ("mdx", "markdown"),
("py", "python"), ("py", "python"),
("query", "scheme"),
("scm", "scheme"), ("scm", "scheme"),
("scss", "css"),
("ts", "javascript"), ("ts", "javascript"),
("typescript", "javascript") ("typescript", "javascript")
]) ])
}); });
#[inline(always)]
fn config_for(
lang: Language,
highlights: &str,
injections: &str,
locals: &str,
) -> HighlightConfiguration {
let mut config = HighlightConfiguration::new(lang, highlights, injections, locals).unwrap();
config.configure(captures::NAMES);
config
}
pub static CONFIGS: Lazy<HashMap<&'static str, HighlightConfiguration>> = Lazy::new(|| { pub static CONFIGS: Lazy<HashMap<&'static str, HighlightConfiguration>> = Lazy::new(|| {
HashMap::from([ HashMap::from([
( // (
"astro", // "astro",
config_for( // config_for(
tree_sitter_astro::language(), // tree_sitter_astro::language(),
query!("astro/highlights"), // query!("astro/highlights"),
query!("astro/injections"), // query!("astro/injections"),
"", // "",
) // )
), // ),
( language!(
"css", "css",
config_for(
tree_sitter_css::language(), tree_sitter_css::language(),
query!("css/highlights"), tree_sitter_css::HIGHLIGHTS_QUERY,
"", "",
"", "",
)
), ),
( language!(
"haskell", "haskell",
config_for(
tree_sitter_haskell::language(), tree_sitter_haskell::language(),
tree_sitter_haskell::HIGHLIGHTS_QUERY, tree_sitter_haskell::HIGHLIGHTS_QUERY,
"", "",
tree_sitter_haskell::LOCALS_QUERY, tree_sitter_haskell::LOCALS_QUERY,
)
), ),
( // (
"html", // "html",
config_for( // config_for(
tree_sitter_html::language(), // tree_sitter_html::language(),
tree_sitter_html::HIGHLIGHTS_QUERY, // "html",
tree_sitter_html::INJECTIONS_QUERY, // tree_sitter_html::HIGHLIGHTS_QUERY,
"", // tree_sitter_html::INJECTIONS_QUERY,
) // "",
), // )
( // ),
language!(
"javascript", "javascript",
config_for(
tree_sitter_javascript::language(), tree_sitter_javascript::language(),
&format!("{} {}", &format!("{} {}",
query!("ecma/highlights"), query!("ecma/highlights"),
tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::HIGHLIGHT_QUERY,
), ),
tree_sitter_javascript::INJECTION_QUERY, tree_sitter_javascript::INJECTIONS_QUERY,
tree_sitter_javascript::LOCALS_QUERY, tree_sitter_javascript::LOCALS_QUERY,
)
), ),
( language!(
"jsx", "jsx",
config_for(
tree_sitter_javascript::language(), tree_sitter_javascript::language(),
&format!("{} {} {}", &format!("{} {} {}",
query!("ecma/highlights"), query!("ecma/highlights"),
tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::HIGHLIGHT_QUERY,
tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, tree_sitter_javascript::JSX_HIGHLIGHT_QUERY,
), ),
tree_sitter_javascript::INJECTION_QUERY, tree_sitter_javascript::INJECTIONS_QUERY,
tree_sitter_javascript::LOCALS_QUERY, tree_sitter_javascript::LOCALS_QUERY,
)
), ),
( language!(
"markdown", "markdown",
config_for(
tree_sitter_md::language(), tree_sitter_md::language(),
tree_sitter_md::HIGHLIGHT_QUERY_BLOCK, tree_sitter_md::HIGHLIGHT_QUERY_BLOCK,
tree_sitter_md::INJECTION_QUERY_BLOCK, tree_sitter_md::INJECTION_QUERY_BLOCK,
"", "",
)
), ),
( language!(
"python", "python",
config_for(
tree_sitter_python::language(), tree_sitter_python::language(),
tree_sitter_python::HIGHLIGHT_QUERY, tree_sitter_python::HIGHLIGHTS_QUERY,
"", "",
"", "",
)
), ),
( language!(
"regex", "regex",
config_for(
tree_sitter_regex::language(), tree_sitter_regex::language(),
query!("regex/highlights"), query!("regex/highlights"),
"", "",
"", "",
)
), ),
( language!(
"rust", "rust",
config_for(
tree_sitter_rust::language(), tree_sitter_rust::language(),
tree_sitter_rust::HIGHLIGHT_QUERY, tree_sitter_rust::HIGHLIGHTS_QUERY,
tree_sitter_rust::INJECTIONS_QUERY, tree_sitter_rust::INJECTIONS_QUERY,
"", "",
)
), ),
( language!(
"scheme", "scss",
config_for( tree_sitter_scss::language(),
tree_sitter_scheme::language(), &format!("{} {}",
tree_sitter_scheme::HIGHLIGHTS_QUERY, tree_sitter_css::HIGHLIGHTS_QUERY,
tree_sitter_scss::HIGHLIGHTS_QUERY,
),
"", "",
"", "",
)
), ),
( language!(
"query",
tree_sitter_query::language(),
tree_sitter_query::HIGHLIGHTS_QUERY,
"",
"",
),
language!(
"toml", "toml",
config_for( tree_sitter_toml_ng::language(),
tree_sitter_toml::language(), tree_sitter_toml_ng::HIGHLIGHTS_QUERY,
tree_sitter_toml::HIGHLIGHT_QUERY,
"", "",
"", "",
)
), ),
( language!(
"typescript", "typescript",
config_for(
tree_sitter_typescript::language_typescript(), tree_sitter_typescript::language_typescript(),
&format!("{} {} {}", &format!("{} {} {}",
query!("ecma/highlights"), query!("ecma/highlights"),
tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::HIGHLIGHT_QUERY,
tree_sitter_typescript::HIGHLIGHT_QUERY, tree_sitter_typescript::HIGHLIGHTS_QUERY,
), ),
tree_sitter_javascript::INJECTION_QUERY, tree_sitter_javascript::INJECTIONS_QUERY,
&format!("{} {}", &format!("{} {}",
tree_sitter_javascript::LOCALS_QUERY, tree_sitter_javascript::LOCALS_QUERY,
tree_sitter_typescript::LOCALS_QUERY tree_sitter_typescript::LOCALS_QUERY,
),
) )
), ),
( language!(
"tsx", "tsx",
config_for(
tree_sitter_typescript::language_tsx(), tree_sitter_typescript::language_tsx(),
&format!("{} {} {} {}", &format!("{} {} {} {}",
query!("ecma/highlights"), query!("ecma/highlights"),
tree_sitter_javascript::HIGHLIGHT_QUERY, tree_sitter_javascript::HIGHLIGHT_QUERY,
tree_sitter_javascript::JSX_HIGHLIGHT_QUERY, tree_sitter_javascript::JSX_HIGHLIGHT_QUERY,
tree_sitter_typescript::HIGHLIGHT_QUERY, tree_sitter_typescript::HIGHLIGHTS_QUERY,
), ),
tree_sitter_javascript::INJECTION_QUERY, tree_sitter_javascript::INJECTIONS_QUERY,
&format!("{} {}", &format!("{} {}",
tree_sitter_javascript::LOCALS_QUERY, tree_sitter_javascript::LOCALS_QUERY,
tree_sitter_typescript::LOCALS_QUERY tree_sitter_typescript::LOCALS_QUERY,
)
) )
), ),
]) ])