ZIm/crates/languages/src/regex/highlights.scm
chbk f97546b6ef
Improve Regex highlighting (#28183)
| Zed 0.180.2 | With this PR |
| --- | --- |
|
![Image](https://github.com/user-attachments/assets/e840bd81-25ff-4c7a-af03-bac6db11f910)
|
![Image](https://github.com/user-attachments/assets/3fd58164-8992-44e1-be01-8c6d70f9587d)
|

```js
match = "424242"
regex = /(42)+?\d{2}\1/g
```

- `/`: `operator` -> `string.regex` (like `"` for regex strings)
- `+?`: `operator.regex`
- `\d`: `string.escape` -> `string.escape.regex`
- `\1`: `keyword.operator.regex` (backreference)
- `/g`: `keyword.regex` -> `keyword.operator.regex`
- `{2}`: `number` -> `number.quantifier.regex`

Release Notes:

  - Improved Regex highlighting
2025-04-18 12:44:13 -04:00

55 lines
701 B
Scheme

[
"("
")"
"(?"
"(?:"
"(?<"
"(?P="
"<"
">"
"["
"]"
"{"
"}"
] @punctuation.bracket.regex
(group_name) @label.regex
[
(identity_escape)
(control_letter_escape)
(character_class_escape)
(control_escape)
] @string.escape.regex
[
"*"
"+"
"?"
"|"
"="
"!"
(start_assertion)
(end_assertion)
(any_character)
(lazy)
] @operator.regex
[
(boundary_assertion)
(non_boundary_assertion)
(backreference_escape)
(decimal_escape)
] @keyword.operator.regex
(count_quantifier
[
(decimal_digits) @number.quantifier.regex
"," @punctuation.delimiter.regex
])
(character_class
[
"^" @operator.regex
(class_range "-" @operator.regex)
])