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:
Robin Pfäffle 2024-03-18 16:49:01 +01:00 committed by GitHub
parent 9f96c43ff7
commit ad97c357a5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 85 additions and 0 deletions

View file

@ -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

View file

@ -1,2 +1,5 @@
((comment) @content
(#set! "language" "jsdoc"))
((regex) @content
(#set! "language" "regex"))

View file

@ -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",

View file

@ -0,0 +1,3 @@
("(" @open ")" @close)
("[" @open "]" @close)
("{" @open "}" @close)

View 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 },
]

View 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

View file

@ -1,2 +1,5 @@
((comment) @content
(#set! "language" "jsdoc"))
((regex) @content
(#set! "language" "regex"))

View file

@ -1,2 +1,5 @@
((comment) @content
(#set! "language" "jsdoc"))
((regex) @content
(#set! "language" "regex"))