add cmake, dockerfile, php, toml and yaml tree-sitter support

This commit is contained in:
Gered 2024-11-10 11:55:55 -05:00
parent 25b4794d3e
commit 880a729f48
4 changed files with 85 additions and 0 deletions

51
Cargo.lock generated
View file

@ -1003,7 +1003,9 @@ dependencies = [
"tree-sitter-bash", "tree-sitter-bash",
"tree-sitter-c", "tree-sitter-c",
"tree-sitter-c-sharp", "tree-sitter-c-sharp",
"tree-sitter-cmake",
"tree-sitter-cpp", "tree-sitter-cpp",
"tree-sitter-dockerfile",
"tree-sitter-elixir", "tree-sitter-elixir",
"tree-sitter-erlang", "tree-sitter-erlang",
"tree-sitter-go", "tree-sitter-go",
@ -1013,13 +1015,16 @@ dependencies = [
"tree-sitter-json", "tree-sitter-json",
"tree-sitter-lua", "tree-sitter-lua",
"tree-sitter-md", "tree-sitter-md",
"tree-sitter-php",
"tree-sitter-python", "tree-sitter-python",
"tree-sitter-r", "tree-sitter-r",
"tree-sitter-ruby", "tree-sitter-ruby",
"tree-sitter-rust", "tree-sitter-rust",
"tree-sitter-scala", "tree-sitter-scala",
"tree-sitter-swift", "tree-sitter-swift",
"tree-sitter-toml",
"tree-sitter-typescript", "tree-sitter-typescript",
"tree-sitter-yaml",
"uuid", "uuid",
] ]
@ -2379,6 +2384,15 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-cmake"
version = "0.5.0"
source = "git+https://code.blarg.ca/gered/tree-sitter-cmake.git?branch=tree-sitter-language#2a50b3b0ce318f11489dc8ec95ef165a84a262bf"
dependencies = [
"cc",
"tree-sitter-language",
]
[[package]] [[package]]
name = "tree-sitter-cpp" name = "tree-sitter-cpp"
version = "0.23.1" version = "0.23.1"
@ -2389,6 +2403,15 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-dockerfile"
version = "0.2.0"
source = "git+https://code.blarg.ca/gered/tree-sitter-dockerfile.git?branch=tree-sitter-language#ca73f2e024e2d6d92ddd785f7275ab2c6b6666eb"
dependencies = [
"cc",
"tree-sitter-language",
]
[[package]] [[package]]
name = "tree-sitter-elixir" name = "tree-sitter-elixir"
version = "0.3.1" version = "0.3.1"
@ -2485,6 +2508,16 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-php"
version = "0.23.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c9e1c3e04e8aca119bebc6d26ea06b961e91c57c54d389531a62db2e8c79036"
dependencies = [
"cc",
"tree-sitter-language",
]
[[package]] [[package]]
name = "tree-sitter-python" name = "tree-sitter-python"
version = "0.23.2" version = "0.23.2"
@ -2545,6 +2578,15 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-toml"
version = "0.20.0"
source = "git+https://code.blarg.ca/gered/tree-sitter-toml.git?branch=tree-sitter-language#0975ccfb7d7c567cbf21d24bf198ff9515af371e"
dependencies = [
"cc",
"tree-sitter-language",
]
[[package]] [[package]]
name = "tree-sitter-typescript" name = "tree-sitter-typescript"
version = "0.23.0" version = "0.23.0"
@ -2555,6 +2597,15 @@ dependencies = [
"tree-sitter-language", "tree-sitter-language",
] ]
[[package]]
name = "tree-sitter-yaml"
version = "0.6.1"
source = "git+https://code.blarg.ca/gered/tree-sitter-yaml.git?branch=tree-sitter-language#9ffe10a1b805e9ddcb926e7b0602ea7fc1b7f1e0"
dependencies = [
"cc",
"tree-sitter-language",
]
[[package]] [[package]]
name = "try-lock" name = "try-lock"
version = "0.2.4" version = "0.2.4"

View file

@ -36,8 +36,10 @@ tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tree-sitter = "0.24.3" tree-sitter = "0.24.3"
tree-sitter-bash = "0.23.1" tree-sitter-bash = "0.23.1"
tree-sitter-c = "0.23.1" tree-sitter-c = "0.23.1"
tree-sitter-cmake = { git = "https://code.blarg.ca/gered/tree-sitter-cmake.git", branch = "tree-sitter-language" }
tree-sitter-cpp = "0.23.1" tree-sitter-cpp = "0.23.1"
tree-sitter-c-sharp = "0.23.0" tree-sitter-c-sharp = "0.23.0"
tree-sitter-dockerfile = { git = "https://code.blarg.ca/gered/tree-sitter-dockerfile.git", branch = "tree-sitter-language" }
tree-sitter-elixir = "0.3.1" tree-sitter-elixir = "0.3.1"
tree-sitter-erlang = "0.9.0" tree-sitter-erlang = "0.9.0"
tree-sitter-go = "0.23.1" tree-sitter-go = "0.23.1"
@ -47,13 +49,16 @@ tree-sitter-javascript = "0.23.0"
tree-sitter-json = "0.24.1" tree-sitter-json = "0.24.1"
tree-sitter-lua = "0.2.0" tree-sitter-lua = "0.2.0"
tree-sitter-md = "0.3.2" tree-sitter-md = "0.3.2"
tree-sitter-php = "0.23.5"
tree-sitter-python = "0.23.2" tree-sitter-python = "0.23.2"
tree-sitter-r = "1.1.0" tree-sitter-r = "1.1.0"
tree-sitter-ruby = "0.23.0" tree-sitter-ruby = "0.23.0"
tree-sitter-rust = "0.23.0" tree-sitter-rust = "0.23.0"
tree-sitter-scala = "0.23.2" tree-sitter-scala = "0.23.2"
tree-sitter-swift = "0.6.0" tree-sitter-swift = "0.6.0"
tree-sitter-toml = { git = "https://code.blarg.ca/gered/tree-sitter-toml.git", branch = "tree-sitter-language" }
tree-sitter-typescript = "0.23.0" tree-sitter-typescript = "0.23.0"
tree-sitter-yaml = { git = "https://code.blarg.ca/gered/tree-sitter-yaml.git", branch = "tree-sitter-language" }
[dependencies.uuid] [dependencies.uuid]
version = "1.4" version = "1.4"

View file

@ -13,12 +13,18 @@ fn get_parser(language_id: LanguageId) -> Result<Parser> {
LanguageId::C => { LanguageId::C => {
Some(tree_sitter_c::LANGUAGE) Some(tree_sitter_c::LANGUAGE)
} }
LanguageId::Cmake => {
Some(tree_sitter_cmake::LANGUAGE)
}
LanguageId::Cpp => { LanguageId::Cpp => {
Some(tree_sitter_cpp::LANGUAGE) Some(tree_sitter_cpp::LANGUAGE)
} }
LanguageId::CSharp => { LanguageId::CSharp => {
Some(tree_sitter_c_sharp::LANGUAGE) Some(tree_sitter_c_sharp::LANGUAGE)
} }
LanguageId::Dockerfile => {
Some(tree_sitter_dockerfile::LANGUAGE)
}
LanguageId::Elixir => { LanguageId::Elixir => {
Some(tree_sitter_elixir::LANGUAGE) Some(tree_sitter_elixir::LANGUAGE)
} }
@ -46,6 +52,9 @@ fn get_parser(language_id: LanguageId) -> Result<Parser> {
LanguageId::Markdown => { LanguageId::Markdown => {
Some(tree_sitter_md::LANGUAGE) Some(tree_sitter_md::LANGUAGE)
} }
LanguageId::Php => {
Some(tree_sitter_php::LANGUAGE_PHP)
}
LanguageId::Python => { LanguageId::Python => {
Some(tree_sitter_python::LANGUAGE) Some(tree_sitter_python::LANGUAGE)
} }
@ -64,12 +73,18 @@ fn get_parser(language_id: LanguageId) -> Result<Parser> {
LanguageId::Swift => { LanguageId::Swift => {
Some(tree_sitter_swift::LANGUAGE) Some(tree_sitter_swift::LANGUAGE)
} }
LanguageId::Toml => {
Some(tree_sitter_toml::LANGUAGE)
}
LanguageId::TypeScript => { LanguageId::TypeScript => {
Some(tree_sitter_typescript::LANGUAGE_TYPESCRIPT) Some(tree_sitter_typescript::LANGUAGE_TYPESCRIPT)
} }
LanguageId::TypeScriptReact => { LanguageId::TypeScriptReact => {
Some(tree_sitter_typescript::LANGUAGE_TSX) Some(tree_sitter_typescript::LANGUAGE_TSX)
} }
LanguageId::Yaml => {
Some(tree_sitter_yaml::LANGUAGE)
}
LanguageId::Unknown => None, LanguageId::Unknown => None,
}; };
if let Some(language) = language { if let Some(language) = language {

View file

@ -5,8 +5,10 @@ use std::fmt;
pub(crate) enum LanguageId { pub(crate) enum LanguageId {
Bash, Bash,
C, C,
Cmake,
Cpp, Cpp,
CSharp, CSharp,
Dockerfile,
Elixir, Elixir,
Erlang, Erlang,
Go, Go,
@ -17,14 +19,17 @@ pub(crate) enum LanguageId {
Json, Json,
Lua, Lua,
Markdown, Markdown,
Php,
Python, Python,
R, R,
Ruby, Ruby,
Rust, Rust,
Scala, Scala,
Swift, Swift,
Toml,
TypeScript, TypeScript,
TypeScriptReact, TypeScriptReact,
Yaml,
Unknown, Unknown,
} }
@ -33,8 +38,10 @@ impl fmt::Display for LanguageId {
match self { match self {
Self::Bash => write!(f, "shellscript"), Self::Bash => write!(f, "shellscript"),
Self::C => write!(f, "c"), Self::C => write!(f, "c"),
Self::Cmake => write!(f, "cmake"),
Self::Cpp => write!(f, "cpp"), Self::Cpp => write!(f, "cpp"),
Self::CSharp => write!(f, "csharp"), Self::CSharp => write!(f, "csharp"),
Self::Dockerfile => write!(f, "dockerfile"),
Self::Elixir => write!(f, "elixir"), Self::Elixir => write!(f, "elixir"),
Self::Erlang => write!(f, "erlang"), Self::Erlang => write!(f, "erlang"),
Self::Go => write!(f, "go"), Self::Go => write!(f, "go"),
@ -45,14 +52,17 @@ impl fmt::Display for LanguageId {
Self::Json => write!(f, "json"), Self::Json => write!(f, "json"),
Self::Lua => write!(f, "lua"), Self::Lua => write!(f, "lua"),
Self::Markdown => write!(f, "markdown"), Self::Markdown => write!(f, "markdown"),
Self::Php => write!(f, "php"),
Self::Python => write!(f, "python"), Self::Python => write!(f, "python"),
Self::R => write!(f, "r"), Self::R => write!(f, "r"),
Self::Ruby => write!(f, "ruby"), Self::Ruby => write!(f, "ruby"),
Self::Rust => write!(f, "rust"), Self::Rust => write!(f, "rust"),
Self::Scala => write!(f, "scala"), Self::Scala => write!(f, "scala"),
Self::Swift => write!(f, "swift"), Self::Swift => write!(f, "swift"),
Self::Toml => write!(f, "toml"),
Self::TypeScript => write!(f, "typescript"), Self::TypeScript => write!(f, "typescript"),
Self::TypeScriptReact => write!(f, "typescriptreact"), Self::TypeScriptReact => write!(f, "typescriptreact"),
Self::Yaml => write!(f, "yaml"),
Self::Unknown => write!(f, "unknown"), Self::Unknown => write!(f, "unknown"),
} }
} }
@ -62,8 +72,10 @@ impl From<&str> for LanguageId {
fn from(value: &str) -> Self { fn from(value: &str) -> Self {
match value { match value {
"c" => Self::C, "c" => Self::C,
"cmake" => Self::Cmake,
"cpp" => Self::Cpp, "cpp" => Self::Cpp,
"csharp" => Self::CSharp, "csharp" => Self::CSharp,
"dockerfile" => Self::Dockerfile,
"elixir" => Self::Elixir, "elixir" => Self::Elixir,
"erlang" => Self::Erlang, "erlang" => Self::Erlang,
"go" => Self::Go, "go" => Self::Go,
@ -81,8 +93,10 @@ impl From<&str> for LanguageId {
"scala" => Self::Scala, "scala" => Self::Scala,
"shellscript" => Self::Bash, "shellscript" => Self::Bash,
"swift" => Self::Swift, "swift" => Self::Swift,
"toml" => Self::Toml,
"typescript" => Self::TypeScript, "typescript" => Self::TypeScript,
"typescriptreact" => Self::TypeScriptReact, "typescriptreact" => Self::TypeScriptReact,
"yaml" => Self::Yaml,
_ => Self::Unknown, _ => Self::Unknown,
} }
} }