Add tree-sitter-godot-resource

pull/904/head
fish 2025-10-13 14:26:22 +07:00
parent 9d2a4191e5
commit dbfe5710db
4 changed files with 23 additions and 2 deletions

@ -92,6 +92,11 @@ fn main() {
src_dir: "vendored_parsers/tree-sitter-gdscript-src",
extra_files: vec!["scanner.c"],
},
TreeSitterParser {
name: "tree-sitter-godot-resource",
src_dir: "vendored_parsers/tree-sitter-godot-resource-src",
extra_files: vec!["scanner.c"],
},
TreeSitterParser {
name: "tree-sitter-hack",
src_dir: "vendored_parsers/tree-sitter-hack-src",

@ -39,6 +39,7 @@ pub(crate) enum Language {
GDScript,
Gleam,
Go,
GodotResource,
Hack,
Hare,
Haskell,
@ -141,6 +142,7 @@ pub(crate) fn language_name(language: Language) -> &'static str {
GDScript => "GDScript",
Gleam => "Gleam",
Go => "Go",
GodotResource => "Godot Resource",
Hack => "Hack",
Hare => "Hare",
Haskell => "Haskell",
@ -285,6 +287,7 @@ pub(crate) fn language_globs(language: Language) -> Vec<glob::Pattern> {
GDScript => &["*.gd"],
Gleam => &["*.gleam"],
Go => &["*.go"],
GodotResource => &["*.tscn", "*.tres", "project.godot"],
Hack => &["*.hack", "*.hck", "*.hhi"],
Hare => &["*.ha"],
Haskell => &["*.hs"],

@ -74,6 +74,7 @@ extern "C" {
fn tree_sitter_elisp() -> ts::Language;
fn tree_sitter_elvish() -> ts::Language;
fn tree_sitter_gdscript() -> ts::Language;
fn tree_sitter_godot_resource() -> ts::Language;
fn tree_sitter_hare() -> ts::Language;
fn tree_sitter_hack() -> ts::Language;
fn tree_sitter_janet_simple() -> ts::Language;
@ -392,12 +393,12 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig {
}
GDScript => {
let language = unsafe { tree_sitter_gdscript() };
TreeSitterConfig {
language: language.clone(),
atom_nodes: vec![].into_iter().collect(),
delimiter_tokens: vec![("{", "}"), ("[", "]"), ("(", ")")],
highlight_query: ts::Query::new(&language, "")
.unwrap(),
highlight_query: ts::Query::new(&language, "").unwrap(),
sub_languages: vec![],
}
}
@ -430,6 +431,17 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig {
sub_languages: vec![],
}
}
GodotResource => {
let language = unsafe { tree_sitter_godot_resource() };
TreeSitterConfig {
language: language.clone(),
atom_nodes: vec![].into_iter().collect(),
delimiter_tokens: vec![("{", "}"), ("[", "]"), ("(", ")")],
highlight_query: ts::Query::new(&language, "").unwrap(),
sub_languages: vec![],
}
}
Hack => {
let language = unsafe { tree_sitter_hack() };
TreeSitterConfig {

@ -0,0 +1 @@
tree-sitter-godot-resource/src/