Switch to tree-sitter-rust-orchard

Offers better attachment of attributes and doc comments
and supports newer language constructs.
Closes #35.
pull/879/head
Antonin Delpeuch 2025-06-17 09:24:02 +07:00 committed by Wilfred Hughes
parent d6ab90d840
commit dc4ce18196
3 changed files with 11 additions and 8 deletions

8
Cargo.lock generated

@ -297,7 +297,7 @@ dependencies = [
"tree-sitter-php",
"tree-sitter-python",
"tree-sitter-ruby",
"tree-sitter-rust",
"tree-sitter-rust-orchard",
"tree-sitter-scala",
"tree-sitter-swift",
"tree-sitter-toml-ng",
@ -1245,10 +1245,10 @@ dependencies = [
]
[[package]]
name = "tree-sitter-rust"
version = "0.23.2"
name = "tree-sitter-rust-orchard"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4d64d449ca63e683c562c7743946a646671ca23947b9c925c0cfbe65051a4af"
checksum = "42e06f00ca89feba4d7455e95b61b9019a979a380527297fab0c461e2e13c264"
dependencies = [
"cc",
"tree-sitter-language",

@ -100,7 +100,7 @@ tree-sitter-pascal = "0.10.0"
tree-sitter-php = "0.23.11"
tree-sitter-python = "0.23.5"
tree-sitter-ruby = "0.23.1"
tree-sitter-rust = "0.23.2"
tree-sitter-rust-orchard = "0.13.0"
tree-sitter-scala = "0.23.3"
tree-sitter-swift = "0.7.0"
tree-sitter-toml-ng = "0.7.0"

@ -917,15 +917,18 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig {
}
}
Rust => {
let language_fn = tree_sitter_rust::LANGUAGE;
let language_fn = tree_sitter_rust_orchard::LANGUAGE;
let language = tree_sitter::Language::new(language_fn);
TreeSitterConfig {
language: language.clone(),
atom_nodes: ["char_literal", "string_literal"].into_iter().collect(),
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]"), ("|", "|"), ("<", ">")],
highlight_query: ts::Query::new(&language, tree_sitter_rust::HIGHLIGHTS_QUERY)
.unwrap(),
highlight_query: ts::Query::new(
&language,
tree_sitter_rust_orchard::HIGHLIGHTS_QUERY,
)
.unwrap(),
sub_languages: vec![],
}
}