added Racket support

pull/483/head
6cdh 2023-02-12 13:39:58 +07:00
parent 62a5f20bf6
commit fe756905bf
7 changed files with 57 additions and 0 deletions

@ -280,6 +280,11 @@ fn main() {
src_dir: "vendored_parsers/tree-sitter-r-src",
extra_files: vec!["scanner.cc"],
},
TreeSitterParser {
name: "tree-sitter-racket",
src_dir: "vendored_parsers/tree-sitter-racket-src",
extra_files: vec!["scanner.cc"],
},
TreeSitterParser {
name: "tree-sitter-ruby",
src_dir: "vendored_parsers/tree-sitter-ruby-src",

@ -154,6 +154,9 @@ sample_files/preprocesor_before.h sample_files/preprocesor_after.h
sample_files/qml_before.qml sample_files/qml_after.qml
622951bb34dbae3e35acd72d712bf127 -
sample_files/racket_before.rkt sample_files/racket_after.rkt
2ee5a8270c7234eeb1430480006cc601 -
sample_files/r_before.R sample_files/r_after.R
7a9bc4e3ba87b6f2139a6cdadcc7ee5f -

@ -0,0 +1,17 @@
#lang racket
(define (append lst1 lst2)
(if (null? lst1)
lst2
(cons (car lst1)
(append (cdr lst1) lst2))))
(append '(a b c) '(d e f))
"Hello, world!\n"
#(0 1 2 3 4)
#\space
#<<E
abc
E

@ -0,0 +1,16 @@
#lang racket/base
(define (append lst1 lst2)
(cond [(null? lst1) lst2]
[else (cons (car lst1)
(append (cdr lst1) lst2))]))
(append '(a b c) '(d e))
"Hello, world!"
#(1 2 3)
#\"
#<<END
abc
END

@ -57,6 +57,7 @@ pub enum Language {
Python,
Qml,
R,
Racket,
Ruby,
Rust,
Scala,
@ -111,6 +112,7 @@ pub fn language_name(language: Language) -> &'static str {
Python => "Python",
Qml => "QML",
R => "R",
Racket => "Racket",
Ruby => "Ruby",
Rust => "Rust",
Scala => "Scala",
@ -204,6 +206,7 @@ pub const LANG_EXTENSIONS: &[(Language, &[&str])] = &[
(Python, &["py", "py3", "pyi", "bzl"]),
(Qml, &["qml"]),
(R, &["R", "r", "rd", "rsx"]),
(Racket, &["rkt"]),
(Ruby, &["rb", "builder", "spec", "rake"]),
(Rust, &["rs"]),
(Scala, &["scala", "sbt", "sc"]),
@ -364,6 +367,7 @@ fn from_emacs_mode_header(src: &str) -> Option<Language> {
"lisp" => Some(CommonLisp),
"perl" => Some(Perl),
"python" => Some(Python),
"racket" => Some(Racket),
"rjsx" => Some(Jsx),
"ruby" => Some(Ruby),
"rust" => Some(Rust),

@ -100,6 +100,7 @@ extern "C" {
fn tree_sitter_python() -> ts::Language;
fn tree_sitter_qmljs() -> ts::Language;
fn tree_sitter_r() -> ts::Language;
fn tree_sitter_racket() -> ts::Language;
fn tree_sitter_ruby() -> ts::Language;
fn tree_sitter_rust() -> ts::Language;
fn tree_sitter_scala() -> ts::Language;
@ -764,6 +765,16 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
sub_languages: vec![],
}
}
Racket => {
let language = unsafe { tree_sitter_racket() };
TreeSitterConfig {
language,
atom_nodes: vec!["string", "byte_string", "regex"].into_iter().collect(),
delimiter_tokens: vec![("{", "}"), ("(", ")"), ("[", "]")],
highlight_query: ts::Query::new(language, "").unwrap(),
sub_languages: vec![],
}
}
Ruby => {
let language = unsafe { tree_sitter_ruby() };
TreeSitterConfig {

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