mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-07 20:39:04 +03:00
Added experimental support for scheme, racket, and commonlisp
This commit is contained in:
parent
11c1254e71
commit
30872d3992
30
Cargo.lock
generated
30
Cargo.lock
generated
@ -6461,6 +6461,15 @@ dependencies = [
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-commonlisp"
|
||||
version = "0.3.0"
|
||||
source = "git+https://github.com/theHamsta/tree-sitter-commonlisp?rev=c7e814975ab0d0d04333d1f32391c41180c58919#c7e814975ab0d0d04333d1f32391c41180c58919"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-cpp"
|
||||
version = "0.20.0"
|
||||
@ -6566,6 +6575,15 @@ dependencies = [
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-racket"
|
||||
version = "0.0.1"
|
||||
source = "git+https://github.com/6cdh/tree-sitter-racket?rev=69ca563af3bcf9d67220532e0814786f2dc34db1#69ca563af3bcf9d67220532e0814786f2dc34db1"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-ruby"
|
||||
version = "0.20.0"
|
||||
@ -6586,6 +6604,15 @@ dependencies = [
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-scheme"
|
||||
version = "0.2.0"
|
||||
source = "git+https://github.com/6cdh/tree-sitter-scheme?rev=af0fd1fa452cb2562dc7b5c8a8c55551c39273b9#af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-toml"
|
||||
version = "0.5.1"
|
||||
@ -7796,6 +7823,7 @@ dependencies = [
|
||||
"toml",
|
||||
"tree-sitter",
|
||||
"tree-sitter-c",
|
||||
"tree-sitter-commonlisp",
|
||||
"tree-sitter-cpp",
|
||||
"tree-sitter-css",
|
||||
"tree-sitter-elixir",
|
||||
@ -7805,8 +7833,10 @@ dependencies = [
|
||||
"tree-sitter-json 0.20.0",
|
||||
"tree-sitter-markdown",
|
||||
"tree-sitter-python",
|
||||
"tree-sitter-racket",
|
||||
"tree-sitter-ruby",
|
||||
"tree-sitter-rust",
|
||||
"tree-sitter-scheme",
|
||||
"tree-sitter-toml",
|
||||
"tree-sitter-typescript",
|
||||
"unindent",
|
||||
|
@ -104,6 +104,9 @@ tree-sitter-toml = { git = "https://github.com/tree-sitter/tree-sitter-toml", re
|
||||
tree-sitter-typescript = "0.20.1"
|
||||
tree-sitter-ruby = "0.20.0"
|
||||
tree-sitter-html = "0.19.0"
|
||||
tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"}
|
||||
tree-sitter-racket = { git = "https://github.com/6cdh/tree-sitter-racket", rev = "69ca563af3bcf9d67220532e0814786f2dc34db1"}
|
||||
tree-sitter-commonlisp = { git = "https://github.com/theHamsta/tree-sitter-commonlisp", rev = "c7e814975ab0d0d04333d1f32391c41180c58919" }
|
||||
url = "2.2"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@ -14,6 +14,7 @@ mod language_plugin;
|
||||
mod python;
|
||||
mod ruby;
|
||||
mod rust;
|
||||
|
||||
mod typescript;
|
||||
|
||||
// 1. Add tree-sitter-{language} parser to zed crate
|
||||
@ -127,6 +128,9 @@ pub async fn init(languages: Arc<LanguageRegistry>, _executor: Arc<Background>)
|
||||
tree_sitter_embedded_template::language(),
|
||||
Some(CachedLspAdapter::new(ruby::RubyLanguageServer).await),
|
||||
),
|
||||
("scheme", tree_sitter_scheme::language(), None),
|
||||
// ("racket", tree_sitter_racket::language(), None),
|
||||
("commonlisp", tree_sitter_commonlisp::language(), None),
|
||||
] {
|
||||
languages.add(language(name, grammar, lsp_adapter));
|
||||
}
|
||||
|
9
crates/zed/src/languages/commonlisp/config.toml
Normal file
9
crates/zed/src/languages/commonlisp/config.toml
Normal file
@ -0,0 +1,9 @@
|
||||
name = "Racket"
|
||||
path_suffixes = ["lisp", "lsp", "l", "cl"]
|
||||
line_comment = "; "
|
||||
autoclose_before = "])"
|
||||
brackets = [
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "'", end = "'", close = false, newline = false },
|
||||
]
|
3
crates/zed/src/languages/commonlisp/folds.scm
Normal file
3
crates/zed/src/languages/commonlisp/folds.scm
Normal file
@ -0,0 +1,3 @@
|
||||
;; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/commonlisp/folds.scm
|
||||
|
||||
(source (list_lit) @fold)
|
189
crates/zed/src/languages/commonlisp/highlights.scm
Normal file
189
crates/zed/src/languages/commonlisp/highlights.scm
Normal file
@ -0,0 +1,189 @@
|
||||
;; Copied from nvim: https://raw.githubusercontent.com/nvim-treesitter/nvim-treesitter/master/queries/commonlisp/highlights.scm
|
||||
|
||||
(sym_lit) @variable
|
||||
|
||||
;; A highlighting for functions/macros in th cl namespace is available in theHamsta/nvim-treesitter-commonlisp
|
||||
;(list_lit . (sym_lit) @function.builtin (#cl-standard-function? @function.builtin))
|
||||
;(list_lit . (sym_lit) @function.builtin (#cl-standard-macro? @function.macro))
|
||||
|
||||
(dis_expr) @comment
|
||||
|
||||
(defun_keyword) @function.macro
|
||||
(defun_header
|
||||
function_name: (_) @function)
|
||||
(defun_header
|
||||
lambda_list: (list_lit (sym_lit) @parameter))
|
||||
(defun_header
|
||||
keyword: (defun_keyword "defmethod")
|
||||
lambda_list: (list_lit (list_lit . (sym_lit) . (sym_lit) @symbol)))
|
||||
(defun_header
|
||||
lambda_list: (list_lit (list_lit . (sym_lit) @parameter . (_))))
|
||||
(defun_header
|
||||
specifier: (sym_lit) @symbol)
|
||||
|
||||
[":" "::" "."] @punctuation.special
|
||||
|
||||
[
|
||||
(accumulation_verb)
|
||||
(for_clause_word)
|
||||
"for"
|
||||
"and"
|
||||
"finally"
|
||||
"thereis"
|
||||
"always"
|
||||
"when"
|
||||
"if"
|
||||
"unless"
|
||||
"else"
|
||||
"do"
|
||||
"loop"
|
||||
"below"
|
||||
"in"
|
||||
"from"
|
||||
"across"
|
||||
"repeat"
|
||||
"being"
|
||||
"into"
|
||||
"with"
|
||||
"as"
|
||||
"while"
|
||||
"until"
|
||||
"return"
|
||||
"initially"
|
||||
] @function.macro
|
||||
"=" @operator
|
||||
|
||||
(include_reader_macro) @symbol
|
||||
["#C" "#c"] @number
|
||||
|
||||
[(kwd_lit) (self_referential_reader_macro)] @symbol
|
||||
|
||||
(package_lit
|
||||
package: (_) @namespace)
|
||||
"cl" @namespace
|
||||
|
||||
(str_lit) @string
|
||||
|
||||
(num_lit) @number
|
||||
|
||||
((sym_lit) @boolean (#match? @boolean "^(t|T)$"))
|
||||
|
||||
(nil_lit) @constant.builtin
|
||||
|
||||
(comment) @comment
|
||||
|
||||
;; dynamic variables
|
||||
((sym_lit) @variable.builtin
|
||||
(#match? @variable.builtin "^[*].+[*]$"))
|
||||
|
||||
;; quote
|
||||
"'" @string.escape
|
||||
(format_specifier) @string.escape
|
||||
(quoting_lit) @string.escape
|
||||
|
||||
;; syntax quote
|
||||
"`" @string.escape
|
||||
"," @string.escape
|
||||
",@" @string.escape
|
||||
(syn_quoting_lit) @string.escape
|
||||
(unquoting_lit) @none
|
||||
(unquote_splicing_lit) @none
|
||||
|
||||
|
||||
["(" ")"] @punctuation.bracket
|
||||
|
||||
(block_comment) @comment
|
||||
|
||||
|
||||
(with_clause
|
||||
type: (_) @type)
|
||||
(for_clause
|
||||
type: (_) @type)
|
||||
|
||||
;; defun-like things
|
||||
(list_lit
|
||||
.
|
||||
(sym_lit) @function.macro
|
||||
.
|
||||
(sym_lit) @function
|
||||
(#eq? @function.macro "deftest"))
|
||||
|
||||
;;; Macros and Special Operators
|
||||
(list_lit
|
||||
.
|
||||
(sym_lit) @function.macro
|
||||
;; For a complete and more efficient version install theHamsta/nvim-treesitter-commonlisp
|
||||
(#any-of? @function.macro
|
||||
"let"
|
||||
"function"
|
||||
"the"
|
||||
"unwind-protect"
|
||||
"labels"
|
||||
"flet"
|
||||
"tagbody"
|
||||
"go"
|
||||
"symbol-macrolet"
|
||||
"symbol-macrolet"
|
||||
"progn"
|
||||
"prog1"
|
||||
"error"
|
||||
"or"
|
||||
"and"
|
||||
"defvar"
|
||||
"defparameter"
|
||||
"in-package"
|
||||
"defpackage"
|
||||
"case"
|
||||
"ecase"
|
||||
"typecase"
|
||||
"etypecase"
|
||||
"defstruct"
|
||||
"defclass"
|
||||
"if"
|
||||
"when"
|
||||
"unless"
|
||||
"cond"
|
||||
"switch"
|
||||
"declaim"
|
||||
"optimize"))
|
||||
|
||||
;; constant
|
||||
((sym_lit) @constant
|
||||
(#match? @constant "^[+].+[+]$"))
|
||||
|
||||
(var_quoting_lit
|
||||
marker: "#'" @symbol
|
||||
value: (_) @symbol)
|
||||
|
||||
["#" "#p" "#P"] @symbol
|
||||
|
||||
(list_lit
|
||||
.
|
||||
(sym_lit) @function.builtin
|
||||
;; For a complete and more efficient version install theHamsta/nvim-treesitter-commonlisp
|
||||
(#any-of? @function.builtin
|
||||
"mapcar"
|
||||
"reduce"
|
||||
"remove-if-not"
|
||||
"cons"
|
||||
"car"
|
||||
"last"
|
||||
"nth"
|
||||
"equal"
|
||||
"cdr"
|
||||
"first"
|
||||
"rest"
|
||||
"format"))
|
||||
|
||||
(list_lit
|
||||
.
|
||||
(sym_lit) @operator
|
||||
(#match? @operator "^([+*-+=<>]|<=|>=|/=)$"))
|
||||
|
||||
|
||||
((sym_lit) @symbol
|
||||
(#match? @symbol "^[&]"))
|
||||
|
||||
[(array_dimension) "#0A" "#0a"] @number
|
||||
|
||||
(char_lit) @character
|
@ -35,6 +35,18 @@ pub(crate) struct GithubReleaseAsset {
|
||||
pub browser_download_url: String,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub(crate) struct CodebergReleaseAsset {
|
||||
pub name: String,
|
||||
pub assets: Vec<GithubReleaseAsset>,
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub(crate) struct CodebergRelease {
|
||||
pub name: String,
|
||||
pub browser_download_url: String,
|
||||
}
|
||||
|
||||
pub async fn npm_package_latest_version(name: &str) -> Result<String> {
|
||||
let output = smol::process::Command::new("npm")
|
||||
.args(["info", name, "--json"])
|
||||
@ -103,3 +115,12 @@ pub(crate) async fn latest_github_release(
|
||||
serde_json::from_slice(body.as_slice()).context("error deserializing latest release")?;
|
||||
Ok(release)
|
||||
}
|
||||
|
||||
// pub(crate) async fn latest_codeberg_release(
|
||||
// repo_name_with_owner: &str,
|
||||
// http: Arc<dyn HttpClient>,
|
||||
// ) -> anyhow::Result<CodebergRelease> {
|
||||
// let mut response = http.get(uri, body, follow_redirects);
|
||||
|
||||
// bail!("unimplemented :(");
|
||||
// }
|
||||
|
9
crates/zed/src/languages/racket/config.toml
Normal file
9
crates/zed/src/languages/racket/config.toml
Normal file
@ -0,0 +1,9 @@
|
||||
name = "Racket"
|
||||
path_suffixes = ["rkt"]
|
||||
line_comment = "; "
|
||||
autoclose_before = "])"
|
||||
brackets = [
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "'", end = "'", close = false, newline = false },
|
||||
]
|
3
crates/zed/src/languages/racket/folds.scm
Normal file
3
crates/zed/src/languages/racket/folds.scm
Normal file
@ -0,0 +1,3 @@
|
||||
; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/racket/folds.scm
|
||||
|
||||
(program (list) @fold)
|
140
crates/zed/src/languages/racket/highlights.scm
Normal file
140
crates/zed/src/languages/racket/highlights.scm
Normal file
File diff suppressed because one or more lines are too long
4
crates/zed/src/languages/racket/injections.scm
Normal file
4
crates/zed/src/languages/racket/injections.scm
Normal file
@ -0,0 +1,4 @@
|
||||
; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/racket/injections.scm
|
||||
|
||||
[(comment)
|
||||
(block_comment)] @comment
|
@ -1,14 +0,0 @@
|
||||
("[" @open "]" @close)
|
||||
("{" @open "}" @close)
|
||||
("\"" @open "\"" @close)
|
||||
("do" @open "end" @close)
|
||||
|
||||
(block_parameters "|" @open "|" @close)
|
||||
(interpolation "#{" @open "}" @close)
|
||||
|
||||
(if "if" @open "end" @close)
|
||||
(unless "unless" @open "end" @close)
|
||||
(begin "begin" @open "end" @close)
|
||||
(module "module" @open "end" @close)
|
||||
(_ . "def" @open "end" @close)
|
||||
(_ . "class" @open "end" @close)
|
9
crates/zed/src/languages/scheme/config.toml
Normal file
9
crates/zed/src/languages/scheme/config.toml
Normal file
@ -0,0 +1,9 @@
|
||||
name = "Scheme"
|
||||
path_suffixes = ["scm", "ss", "mjs"]
|
||||
line_comment = "; "
|
||||
autoclose_before = "])"
|
||||
brackets = [
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "'", end = "'", close = false, newline = false },
|
||||
]
|
3
crates/zed/src/languages/scheme/folds.scm
Normal file
3
crates/zed/src/languages/scheme/folds.scm
Normal file
@ -0,0 +1,3 @@
|
||||
; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/scheme/folds.scm
|
||||
|
||||
(program (list) @fold)
|
183
crates/zed/src/languages/scheme/highlights.scm
Normal file
183
crates/zed/src/languages/scheme/highlights.scm
Normal file
@ -0,0 +1,183 @@
|
||||
;; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/scheme/highlights.scm
|
||||
|
||||
;; A highlight query can override the highlights queries before it.
|
||||
;; So the order is important.
|
||||
;; We should highlight general rules, then highlight special forms.
|
||||
|
||||
(number) @number
|
||||
(character) @character
|
||||
(boolean) @boolean
|
||||
(string) @string
|
||||
[(comment)
|
||||
(block_comment)] @comment
|
||||
|
||||
;; highlight for datum comment
|
||||
;; copied from ../clojure/highlights.scm
|
||||
([(comment) (directive)] @comment
|
||||
(#set! "priority" 105))
|
||||
|
||||
(escape_sequence) @string.escape
|
||||
|
||||
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
|
||||
|
||||
;; variables
|
||||
|
||||
(symbol) @variable
|
||||
((symbol) @variable.builtin
|
||||
(#any-of? @variable.builtin "..." "."))
|
||||
|
||||
;; procedure
|
||||
|
||||
(list
|
||||
.
|
||||
(symbol) @function)
|
||||
|
||||
;; special forms
|
||||
|
||||
(list
|
||||
"["
|
||||
(symbol)+ @variable
|
||||
"]")
|
||||
|
||||
(list
|
||||
.
|
||||
(symbol) @_f
|
||||
.
|
||||
(list
|
||||
(symbol) @variable)
|
||||
(#any-of? @_f "lambda" "λ"))
|
||||
|
||||
(list
|
||||
.
|
||||
(symbol) @_f
|
||||
.
|
||||
(list
|
||||
(list
|
||||
(symbol) @variable))
|
||||
(#any-of? @_f
|
||||
"let" "let*" "let-syntax" "let-values" "let*-values" "letrec" "letrec*" "letrec-syntax"))
|
||||
|
||||
;; operators
|
||||
|
||||
((symbol) @operator
|
||||
(#any-of? @operator
|
||||
"+" "-" "*" "/" "=" "<=" ">=" "<" ">"))
|
||||
|
||||
;; keyword
|
||||
|
||||
((symbol) @keyword
|
||||
(#any-of? @keyword
|
||||
"define" "lambda" "λ" "begin" "do" "define-syntax"
|
||||
"and" "or"
|
||||
"if" "cond" "case" "when" "unless" "else" "=>"
|
||||
"let" "let*" "let-syntax" "let-values" "let*-values" "letrec" "letrec*" "letrec-syntax"
|
||||
"set!"
|
||||
"syntax-rules" "identifier-syntax"
|
||||
"quote" "unquote" "quote-splicing" "quasiquote" "unquote-splicing"
|
||||
"delay"
|
||||
"assert"
|
||||
"library" "export" "import" "rename" "only" "except" "prefix"))
|
||||
|
||||
((symbol) @conditional
|
||||
(#any-of? @conditional "if" "cond" "case" "when" "unless"))
|
||||
|
||||
;; quote
|
||||
|
||||
(abbreviation
|
||||
"'"
|
||||
(symbol)) @symbol
|
||||
|
||||
(list
|
||||
.
|
||||
(symbol) @_f
|
||||
(#eq? @_f "quote")) @symbol
|
||||
|
||||
;; library
|
||||
|
||||
(list
|
||||
.
|
||||
(symbol) @_lib
|
||||
.
|
||||
(symbol) @namespace
|
||||
|
||||
(#eq? @_lib "library"))
|
||||
|
||||
;; builtin procedures
|
||||
;; procedures in R5RS and R6RS but not in R6RS-lib
|
||||
|
||||
((symbol) @function.builtin
|
||||
(#any-of? @function.builtin
|
||||
;; eq
|
||||
"eqv?" "eq?" "equal?"
|
||||
;; number
|
||||
"number?" "complex?" "real?" "rational?" "integer?"
|
||||
"exact?" "inexact?"
|
||||
"zero?" "positive?" "negative?" "odd?" "even?" "finite?" "infinite?" "nan?"
|
||||
"max" "min"
|
||||
"abs" "quotient" "remainder" "modulo"
|
||||
"div" "div0" "mod" "mod0" "div-and-mod" "div0-and-mod0"
|
||||
"gcd" "lcm" "numerator" "denominator"
|
||||
"floor" "ceiling" "truncate" "round"
|
||||
"rationalize"
|
||||
"exp" "log" "sin" "cos" "tan" "asin" "acos" "atan"
|
||||
"sqrt" "expt"
|
||||
"exact-integer-sqrt"
|
||||
"make-rectangular" "make-polar" "real-part" "imag-part" "magnitude" "angle"
|
||||
"real-valued" "rational-valued?" "integer-valued?"
|
||||
"exact" "inexact" "exact->inexact" "inexact->exact"
|
||||
"number->string" "string->number"
|
||||
;; boolean
|
||||
"boolean?" "not" "boolean=?"
|
||||
;; pair
|
||||
"pair?" "cons"
|
||||
"car" "cdr"
|
||||
"caar" "cadr" "cdar" "cddr"
|
||||
"caaar" "caadr" "cadar" "caddr" "cdaar" "cdadr" "cddar" "cdddr"
|
||||
"caaaar" "caaadr" "caadar" "caaddr" "cadaar" "cadadr" "caddar" "cadddr"
|
||||
"cdaaar" "cdaadr" "cdadar" "cdaddr" "cddaar" "cddadr" "cdddar" "cddddr"
|
||||
"set-car!" "set-cdr!"
|
||||
;; list
|
||||
"null?" "list?"
|
||||
"list" "length" "append" "reverse" "list-tail" "list-ref"
|
||||
"map" "for-each"
|
||||
"memq" "memv" "member" "assq" "assv" "assoc"
|
||||
;; symbol
|
||||
"symbol?" "symbol->string" "string->symbol" "symbol=?"
|
||||
;; char
|
||||
"char?" "char=?" "char<?" "char>?" "char<=?" "char>=?"
|
||||
"char-ci=?" "char-ci<?" "char-ci>?" "char-ci<=?" "char-ci>=?"
|
||||
"char-alphabetic?" "char-numeric?" "char-whitespace?" "char-upper-case?" "char-lower-case?"
|
||||
"char->integer" "integer->char"
|
||||
"char-upcase" "char-downcase"
|
||||
;; string
|
||||
"string?" "make-string" "string" "string-length" "string-ref" "string-set!"
|
||||
"string=?" "string-ci=?" "string<?" "string>?" "string<=?" "string>=?"
|
||||
"string-ci<?" "string-ci>?" "string-ci<=?" "string-ci>=?"
|
||||
"substring" "string-append" "string->list" "list->string"
|
||||
"string-for-each"
|
||||
"string-copy" "string-fill!"
|
||||
"string-upcase" "string-downcase"
|
||||
;; vector
|
||||
"vector?" "make-vector" "vector" "vector-length" "vector-ref" "vector-set!"
|
||||
"vector->list" "list->vector" "vector-fill!" "vector-map" "vector-for-each"
|
||||
;; bytevector
|
||||
"bytevector?" "native-endianness"
|
||||
"make-bytevector" "bytevector-length" "bytevector=?" "bytevector-fill!"
|
||||
"bytevector-copy!" "bytevector-copy"
|
||||
;; error
|
||||
"error" "assertion-violation"
|
||||
;; control
|
||||
"procedure?" "apply" "force"
|
||||
"call-with-current-continuation" "call/cc"
|
||||
"values" "call-with-values" "dynamic-wind"
|
||||
"eval" "scheme-report-environment" "null-environment" "interaction-environment"
|
||||
;; IO
|
||||
"call-with-input-file" "call-with-output-file" "input-port?" "output-port?"
|
||||
"current-input-port" "current-output-port" "with-input-from-file" "with-output-to-file"
|
||||
"open-input-file" "open-output-file" "close-input-port" "close-output-port"
|
||||
;; input
|
||||
"read" "read-char" "peek-char" "eof-object?" "char-ready?"
|
||||
;; output
|
||||
"write" "display" "newline" "write-char"
|
||||
;; system
|
||||
"load" "transcript-on" "transcript-off"))
|
3
crates/zed/src/languages/scheme/injections.scm
Normal file
3
crates/zed/src/languages/scheme/injections.scm
Normal file
@ -0,0 +1,3 @@
|
||||
; Copied from nvim: https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/scheme/injections.scm
|
||||
|
||||
(comment) @comment
|
Loading…
Reference in New Issue
Block a user