mirror of
https://github.com/zed-industries/zed.git
synced 2024-09-18 18:08:07 +03:00
Add regex syntax highlighting for JS and TS (#7851)
<img width="544" alt="SCR-20240215-pvzy" src="https://github.com/zed-industries/zed/assets/67913738/e4d463a6-1795-4728-ac24-6c8e03e7ea5b"> Release Notes: - Added support for regex syntax highlighting in `JS` and `TS`.
This commit is contained in:
parent
9f96c43ff7
commit
ad97c357a5
11
Cargo.lock
generated
11
Cargo.lock
generated
@ -5328,6 +5328,7 @@ dependencies = [
|
||||
"tree-sitter-purescript",
|
||||
"tree-sitter-python",
|
||||
"tree-sitter-racket",
|
||||
"tree-sitter-regex",
|
||||
"tree-sitter-ruby",
|
||||
"tree-sitter-rust",
|
||||
"tree-sitter-scheme",
|
||||
@ -10665,6 +10666,16 @@ dependencies = [
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-regex"
|
||||
version = "0.20.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "efb5a53e9c990757895476216796b170fd81e4d173d08f8b082279c4e6ff8c5c"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-ruby"
|
||||
version = "0.20.0"
|
||||
|
@ -309,6 +309,7 @@ tree-sitter-proto = { git = "https://github.com/rewinfrey/tree-sitter-proto", re
|
||||
tree-sitter-purescript = { git = "https://github.com/postsolar/tree-sitter-purescript", rev = "v0.1.0" }
|
||||
tree-sitter-python = "0.20.2"
|
||||
tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a" }
|
||||
tree-sitter-regex = "0.20.0"
|
||||
tree-sitter-ruby = "0.20.0"
|
||||
tree-sitter-rust = "0.20.3"
|
||||
tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9" }
|
||||
|
@ -71,6 +71,7 @@ tree-sitter-proto.workspace = true
|
||||
tree-sitter-purescript.workspace = true
|
||||
tree-sitter-python.workspace = true
|
||||
tree-sitter-racket.workspace = true
|
||||
tree-sitter-regex.workspace = true
|
||||
tree-sitter-ruby.workspace = true
|
||||
tree-sitter-rust.workspace = true
|
||||
tree-sitter-scheme.workspace = true
|
||||
|
@ -1,2 +1,5 @@
|
||||
((comment) @content
|
||||
(#set! "language" "jsdoc"))
|
||||
|
||||
((regex) @content
|
||||
(#set! "language" "regex"))
|
@ -109,6 +109,7 @@ pub fn init(
|
||||
("purescript", tree_sitter_purescript::language()),
|
||||
("python", tree_sitter_python::language()),
|
||||
("racket", tree_sitter_racket::language()),
|
||||
("regex", tree_sitter_regex::language()),
|
||||
("ruby", tree_sitter_ruby::language()),
|
||||
("rust", tree_sitter_rust::language()),
|
||||
("scheme", tree_sitter_scheme::language()),
|
||||
@ -318,6 +319,7 @@ pub fn init(
|
||||
);
|
||||
language!("scheme");
|
||||
language!("racket");
|
||||
language!("regex");
|
||||
language!("lua", vec![Arc::new(lua::LuaLspAdapter)]);
|
||||
language!(
|
||||
"yaml",
|
||||
|
3
crates/languages/src/regex/brackets.scm
Normal file
3
crates/languages/src/regex/brackets.scm
Normal file
@ -0,0 +1,3 @@
|
||||
("(" @open ")" @close)
|
||||
("[" @open "]" @close)
|
||||
("{" @open "}" @close)
|
8
crates/languages/src/regex/config.toml
Normal file
8
crates/languages/src/regex/config.toml
Normal file
@ -0,0 +1,8 @@
|
||||
name = "Regex"
|
||||
grammar = "regex"
|
||||
autoclose_before = ")]}"
|
||||
brackets = [
|
||||
{ start = "(", end = ")", close = true, newline = false },
|
||||
{ start = "{", end = "}", close = true, newline = false },
|
||||
{ start = "[", end = "]", close = true, newline = false },
|
||||
]
|
50
crates/languages/src/regex/highlights.scm
Normal file
50
crates/languages/src/regex/highlights.scm
Normal file
@ -0,0 +1,50 @@
|
||||
[
|
||||
"("
|
||||
")"
|
||||
"(?"
|
||||
"(?:"
|
||||
"(?<"
|
||||
">"
|
||||
"["
|
||||
"]"
|
||||
"{"
|
||||
"}"
|
||||
] @punctuation.bracket
|
||||
|
||||
(group_name) @property
|
||||
|
||||
[
|
||||
(identity_escape)
|
||||
(control_letter_escape)
|
||||
(character_class_escape)
|
||||
(control_escape)
|
||||
(start_assertion)
|
||||
(end_assertion)
|
||||
(boundary_assertion)
|
||||
(non_boundary_assertion)
|
||||
] @escape
|
||||
|
||||
[
|
||||
"*"
|
||||
"+"
|
||||
"?"
|
||||
"|"
|
||||
"="
|
||||
"!"
|
||||
] @operator
|
||||
|
||||
(count_quantifier
|
||||
[
|
||||
(decimal_digits) @number
|
||||
"," @punctuation.delimiter
|
||||
])
|
||||
|
||||
(character_class
|
||||
[
|
||||
"^" @operator
|
||||
(class_range "-" @operator)
|
||||
])
|
||||
|
||||
(class_character) @constant.character
|
||||
|
||||
(pattern_character) @string
|
@ -1,2 +1,5 @@
|
||||
((comment) @content
|
||||
(#set! "language" "jsdoc"))
|
||||
|
||||
((regex) @content
|
||||
(#set! "language" "regex"))
|
@ -1,2 +1,5 @@
|
||||
((comment) @content
|
||||
(#set! "language" "jsdoc"))
|
||||
|
||||
((regex) @content
|
||||
(#set! "language" "regex"))
|
Loading…
Reference in New Issue
Block a user