diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-10-17 23:38:04 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-10-17 23:38:04 +0100 |
commit | 63956e509eea1aba1a303c58bf60d068863a61dd (patch) | |
tree | c696fba1395b93b357e543e0cd69bbe4977f3889 | |
parent | 783c6a333acc3c05839f8c4bfa3174665a32abc6 (diff) | |
parent | c2335d0cb2aee42ae70e94c005cdb5d2ae418cd1 (diff) |
Merge #6248
6248: Textmate grammar: prevent early termination of raw strings with hash (closes #6042) r=matklad a=dustypomerleau
Problematic sample code from #6042:
```rust
#[derive(Debug, Clone, Logos)]
enum Quoted<'source> {
#[regex(r#"[^\\"']+"#)]
Text(&'source str),
#[token("\\")]
StartEscape,
#[token("\'", |_| Quote::Single)]
#[token("\"", |_| Quote::Double)]
End(Quote),
#[error]
Error,
}
```
Before fix:
<img width="400" alt="Screen Shot 2020-10-16 at 10 45 59" src="https://user-images.githubusercontent.com/6304651/96198390-6a726d00-0fa0-11eb-8428-e76b2866836b.png">
After fix:
<img width="400" alt="Screen Shot 2020-10-16 at 10 45 33" src="https://user-images.githubusercontent.com/6304651/96198408-7a8a4c80-0fa0-11eb-9104-ca708009fe63.png">
Co-authored-by: Dusty Pomerleau <[email protected]>
-rw-r--r-- | editors/code/rust.tmGrammar.json | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/editors/code/rust.tmGrammar.json b/editors/code/rust.tmGrammar.json index 3ddd14f9c..66c8843f4 100644 --- a/editors/code/rust.tmGrammar.json +++ b/editors/code/rust.tmGrammar.json | |||
@@ -966,9 +966,28 @@ | |||
966 | ] | 966 | ] |
967 | }, | 967 | }, |
968 | { | 968 | { |
969 | "comment": "double-quoted raw strings and raw byte strings", | 969 | "comment": "double-quoted raw strings and raw byte strings (no hash)", |
970 | "name": "string.quoted.double.rust", | 970 | "name": "string.quoted.double.rust", |
971 | "begin": "(b?r)(#*)(\")", | 971 | "begin": "(b?r)(\")", |
972 | "beginCaptures": { | ||
973 | "1": { | ||
974 | "name": "string.quoted.byte.raw.rust" | ||
975 | }, | ||
976 | "2": { | ||
977 | "name": "punctuation.definition.string.rust" | ||
978 | } | ||
979 | }, | ||
980 | "end": "\"", | ||
981 | "endCaptures": { | ||
982 | "0": { | ||
983 | "name": "punctuation.definition.string.rust" | ||
984 | } | ||
985 | } | ||
986 | }, | ||
987 | { | ||
988 | "comment": "double-quoted raw strings and raw byte strings (with hash)", | ||
989 | "name": "string.quoted.double.rust", | ||
990 | "begin": "(b?r)(#+)(\")", | ||
972 | "beginCaptures": { | 991 | "beginCaptures": { |
973 | "1": { | 992 | "1": { |
974 | "name": "string.quoted.byte.raw.rust" | 993 | "name": "string.quoted.byte.raw.rust" |
@@ -980,7 +999,7 @@ | |||
980 | "name": "punctuation.definition.string.rust" | 999 | "name": "punctuation.definition.string.rust" |
981 | } | 1000 | } |
982 | }, | 1001 | }, |
983 | "end": "(\")(#*)", | 1002 | "end": "(\")(#+)", |
984 | "endCaptures": { | 1003 | "endCaptures": { |
985 | "1": { | 1004 | "1": { |
986 | "name": "punctuation.definition.string.rust" | 1005 | "name": "punctuation.definition.string.rust" |