Skip to content

Commit

Permalink
Add 'd' flag from the RegExp Match Indices proposal
Browse files Browse the repository at this point in the history
  • Loading branch information
rbuckton committed Mar 9, 2021
1 parent d3c203d commit 5f916dd
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 17 deletions.
8 changes: 4 additions & 4 deletions TypeScript.YAML-tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ variables:
{{functionLikeType}} |
(:\s*(=>|{{matchingParenthesis}}|(<[^<>]*>)|[^<>(),=])+={{functionOrArrowLookup}})
arrowFunctionEnd: (?==>|\{|(^\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\s+))
regexpTail: ([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])
regexpTail: ([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])
completeRegexp: \/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/{{regexpTail}})

patterns:
Expand Down Expand Up @@ -1306,7 +1306,7 @@ repository:
begin: (?<=\))\s*{{completeRegexp}}
beginCaptures:
'0': { name: punctuation.definition.string.begin.ts }
end: (/)([gimsuy]*)
end: (/)([dgimsuy]*)
endCaptures:
'1': { name: punctuation.definition.string.end.ts }
'2': { name: keyword.other.ts }
Expand Down Expand Up @@ -2724,7 +2724,7 @@ repository:
begin: (?<!\+\+|--|})(?<=[=(:,\[?+!]|{{lookBehindReturn}}|{{lookBehindCase}}|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/{{regexpTail}})
beginCaptures:
'1': { name: punctuation.definition.string.begin.ts }
end: (/)([gimsuy]*)
end: (/)([dgimsuy]*)
endCaptures:
'1': { name: punctuation.definition.string.end.ts }
'2': { name: keyword.other.ts}
Expand All @@ -2735,7 +2735,7 @@ repository:
begin: ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<={{lookBehindReturn}}|{{lookBehindCase}}))\s*){{completeRegexp}}
beginCaptures:
'0': { name: punctuation.definition.string.begin.ts }
end: (/)([gimsuy]*)
end: (/)([dgimsuy]*)
endCaptures:
'1': { name: punctuation.definition.string.end.ts }
'2': { name: keyword.other.ts }
Expand Down
12 changes: 6 additions & 6 deletions TypeScript.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -4168,7 +4168,7 @@
<key>name</key>
<string>string.regexp.ts</string>
<key>begin</key>
<string>(?&lt;=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>(?&lt;=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
Expand All @@ -4178,7 +4178,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand Down Expand Up @@ -8227,7 +8227,7 @@
<key>name</key>
<string>string.regexp.ts</string>
<key>begin</key>
<string>(?&lt;!\+\+|--|})(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>(?&lt;!\+\+|--|})(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -8237,7 +8237,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand All @@ -8263,7 +8263,7 @@
<key>name</key>
<string>string.regexp.ts</string>
<key>begin</key>
<string>((?&lt;![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?&lt;=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>((?&lt;![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?&lt;=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
Expand All @@ -8273,7 +8273,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand Down
12 changes: 6 additions & 6 deletions TypeScriptReact.tmLanguage
Original file line number Diff line number Diff line change
Expand Up @@ -4190,7 +4190,7 @@
<key>name</key>
<string>string.regexp.tsx</string>
<key>begin</key>
<string>(?&lt;=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>(?&lt;=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
Expand All @@ -4200,7 +4200,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand Down Expand Up @@ -8175,7 +8175,7 @@
<key>name</key>
<string>string.regexp.tsx</string>
<key>begin</key>
<string>(?&lt;!\+\+|--|})(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>(?&lt;!\+\+|--|})(?&lt;=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=&gt;|&amp;&amp;|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
Expand All @@ -8185,7 +8185,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand All @@ -8211,7 +8211,7 @@
<key>name</key>
<string>string.regexp.tsx</string>
<key>begin</key>
<string>((?&lt;![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?&lt;=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<string>((?&lt;![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?&lt;=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$]))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
Expand All @@ -8221,7 +8221,7 @@
</dict>
</dict>
<key>end</key>
<string>(/)([gimsuy]*)</string>
<string>(/)([dgimsuy]*)</string>
<key>endCaptures</key>
<dict>
<key>1</key>
Expand Down
3 changes: 2 additions & 1 deletion tests/cases/regexp.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
var a = /(?:([a-zA-Z_$][\w$])*)/i;
var x = /\s*\b(async\s+)?function\b/g;
var x = /\s*\b(async\s+)?function\b/g;
var d = /\s*\b(async\s+)?function\b/d;

0 comments on commit 5f916dd

Please sign in to comment.