add support for SCSS

pull/573/head
Breno Reis 2023-09-20 14:26:43 +07:00
parent 4b43221b9a
commit 1bffcf4e2b
No known key found for this signature in database
GPG Key ID: 62F76B9E8882B44C
5 changed files with 28 additions and 0 deletions

@ -311,6 +311,11 @@ fn main() {
src_dir: "vendored_parsers/tree-sitter-scala-src",
extra_files: vec!["scanner.c"],
},
TreeSitterParser {
name: "tree-sitter-scss",
src_dir: "vendored_parsers/tree-sitter-scss-src",
extra_files: vec!["scanner.c"],
},
TreeSitterParser {
name: "tree-sitter-sql",
src_dir: "vendored_parsers/tree-sitter-sql-src",

@ -64,6 +64,7 @@ pub enum Language {
Ruby,
Rust,
Scala,
Scss,
Solidity,
Sql,
Swift,
@ -149,6 +150,7 @@ pub fn language_name(language: Language) -> &'static str {
Ruby => "Ruby",
Rust => "Rust",
Scala => "Scala",
Scss => "Scss",
Solidity => "Solidity",
Sql => "SQL",
Swift => "Swift",
@ -331,6 +333,7 @@ pub fn language_globs(language: Language) -> Vec<glob::Pattern> {
],
Rust => &["*.rs"],
Scala => &["*.scala", "*.sbt", "*.sc"],
Scss => &["*.scss"],
Solidity => &["*.sol"],
Sql => &["*.sql", "*.pgsql"],
Swift => &["*.swift"],
@ -468,6 +471,7 @@ fn from_emacs_mode_header(src: &str) -> Option<Language> {
"ruby" => Some(Ruby),
"rust" => Some(Rust),
"scala" => Some(Scala),
"scss" => Some(Scss),
"sh" => Some(Bash),
"solidity" => Some(Solidity),
"sql" => Some(Sql),

@ -105,6 +105,7 @@ extern "C" {
fn tree_sitter_ruby() -> ts::Language;
fn tree_sitter_rust() -> ts::Language;
fn tree_sitter_scala() -> ts::Language;
fn tree_sitter_scss() -> ts::Language;
fn tree_sitter_solidity() -> ts::Language;
fn tree_sitter_sql() -> ts::Language;
fn tree_sitter_swift() -> ts::Language;
@ -906,6 +907,22 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
sub_languages: vec![],
}
}
Scss => {
let language = unsafe { tree_sitter_scss() };
TreeSitterConfig {
language,
atom_nodes: vec!["integer_value", "float_value", "color_value"]
.into_iter()
.collect(),
delimiter_tokens: vec![("{", "}"), ("(", ")")],
highlight_query: ts::Query::new(
language,
include_str!("../../vendored_parsers/highlights/scss.scm"),
)
.unwrap(),
sub_languages: vec![],
}
}
Solidity => {
let language = unsafe { tree_sitter_solidity() };
TreeSitterConfig {

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

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