Add solidity support

pull/502/head
Valentin 2023-04-05 11:12:19 +07:00
parent 00f587d0fe
commit b86d4dbf9e
6 changed files with 30 additions and 0 deletions

@ -345,6 +345,11 @@ fn main() {
src_dir: "vendored_parsers/tree-sitter-zig-src",
extra_files: vec![],
},
TreeSitterParser {
name: "tree-sitter-solidity",
src_dir:"vendored_parsers/tree-sitter-solidity-src",
extra_files: vec![],
}
];
// Only rerun if relevant files in the vendored_parsers/ directory change.

@ -63,6 +63,7 @@ pub enum Language {
Ruby,
Rust,
Scala,
Solidity,
Sql,
Swift,
Toml,
@ -120,6 +121,7 @@ pub fn language_name(language: Language) -> &'static str {
Ruby => "Ruby",
Rust => "Rust",
Scala => "Scala",
Solidity => "Solidity",
Sql => "SQL",
Swift => "Swift",
Toml => "TOML",
@ -216,6 +218,7 @@ pub const LANG_EXTENSIONS: &[(Language, &[&str])] = &[
(Ruby, &["rb", "builder", "spec", "rake"]),
(Rust, &["rs"]),
(Scala, &["scala", "sbt", "sc"]),
(Solidity, &["sol"]),
(Sql, &["sql", "pgsql"]),
(Swift, &["swift"]),
(Toml, &["toml"]),
@ -380,6 +383,7 @@ fn from_emacs_mode_header(src: &str) -> Option<Language> {
"rust" => Some(Rust),
"scala" => Some(Scala),
"sh" => Some(Bash),
"solidity" => Some(Solidity),
"sql" => Some(Sql),
"swift" => Some(Swift),
"toml" => Some(Toml),

@ -107,6 +107,7 @@ extern "C" {
fn tree_sitter_ruby() -> ts::Language;
fn tree_sitter_rust() -> ts::Language;
fn tree_sitter_scala() -> ts::Language;
fn tree_sitter_solidity() -> ts::Language;
fn tree_sitter_sql() -> ts::Language;
fn tree_sitter_swift() -> ts::Language;
fn tree_sitter_toml() -> ts::Language;
@ -866,6 +867,24 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
sub_languages: vec![],
}
}
Solidity => {
let language = unsafe { tree_sitter_solidity() };
TreeSitterConfig {
language,
atom_nodes: vec!["string"].into_iter().collect(),
delimiter_tokens: vec![
("[", "]"),
("(", ")"),
("{", "}"),
],
highlight_query: ts::Query::new(
language,
include_str!("../../vendored_parsers/highlights/solidity.scm")
).unwrap(),
sub_languages: vec![]
}
}
Sql => {
let language = unsafe { tree_sitter_sql() };
TreeSitterConfig {

@ -0,0 +1 @@
../tree-sitter-solidity/queries/highlights.scm

@ -0,0 +1 @@
tree-sitter-solidity/src