diff --git a/TypeScript.YAML-tmLanguage b/TypeScript.YAML-tmLanguage index d004a441..68b2fec3 100644 --- a/TypeScript.YAML-tmLanguage +++ b/TypeScript.YAML-tmLanguage @@ -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: @@ -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 } @@ -2724,7 +2724,7 @@ repository: begin: (?|&&|\|\||\*\/)\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} @@ -2735,7 +2735,7 @@ repository: begin: ((?name string.regexp.ts begin - (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 0 @@ -4178,7 +4178,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 @@ -8227,7 +8227,7 @@ name string.regexp.ts begin - (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 1 @@ -8237,7 +8237,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 @@ -8263,7 +8263,7 @@ name string.regexp.ts begin - ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 0 @@ -8273,7 +8273,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 diff --git a/TypeScriptReact.tmLanguage b/TypeScriptReact.tmLanguage index ed7d8a16..199c13db 100644 --- a/TypeScriptReact.tmLanguage +++ b/TypeScriptReact.tmLanguage @@ -4190,7 +4190,7 @@ name string.regexp.tsx begin - (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + (?<=\))\s*\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 0 @@ -4200,7 +4200,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 @@ -8175,7 +8175,7 @@ name string.regexp.tsx begin - (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + (?<!\+\+|--|})(?<=[=(:,\[?+!]|^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case|=>|&&|\|\||\*\/)\s*(\/)(?![\/*])(?=(?:[^\/\\\[\()]|\\.|\[([^\]\\]|\\.)+\]|\(([^\)\\]|\\.)+\))+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 1 @@ -8185,7 +8185,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 @@ -8211,7 +8211,7 @@ name string.regexp.tsx begin - ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([gimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) + ((?<![_$[:alnum:])\]]|\+\+|--|}|\*\/)|((?<=^return|[^\._$[:alnum:]]return|^case|[^\._$[:alnum:]]case))\s*)\/(?![\/*])(?=(?:[^\/\\\[]|\\.|\[([^\]\\]|\\.)*\])+\/([dgimsuy]+|(?![\/\*])|(?=\/\*))(?!\s*[a-zA-Z0-9_$])) beginCaptures 0 @@ -8221,7 +8221,7 @@ end - (/)([gimsuy]*) + (/)([dgimsuy]*) endCaptures 1 diff --git a/tests/baselines/regexp.baseline.txt b/tests/baselines/regexp.baseline.txt index 6c2406f5..40b3030a 100644 --- a/tests/baselines/regexp.baseline.txt +++ b/tests/baselines/regexp.baseline.txt @@ -2,6 +2,7 @@ original file ----------------------------------- var a = /(?:([a-zA-Z_$][\w$])*)/i; var x = /\s*\b(async\s+)?function\b/g; +var d = /\s*\b(async\s+)?function\b/d; ----------------------------------- Grammar: TypeScript.tmLanguage @@ -58,6 +59,49 @@ Grammar: TypeScript.tmLanguage ^ source.ts punctuation.terminator.statement.ts >var x = /\s*\b(async\s+)?function\b/g; + ^^^ + source.ts meta.var.expr.ts storage.type.ts + ^ + source.ts meta.var.expr.ts + ^ + source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts + ^ + source.ts meta.var.expr.ts meta.var-single-variable.expr.ts + ^ + source.ts meta.var.expr.ts keyword.operator.assignment.ts + ^ + source.ts meta.var.expr.ts string.regexp.ts + ^ + source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.begin.ts + ^^ + source.ts meta.var.expr.ts string.regexp.ts constant.other.character-class.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp + ^^ + source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp + ^^^^^ + source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp + ^^ + source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp constant.other.character-class.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp keyword.operator.quantifier.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts meta.group.regexp punctuation.definition.group.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts keyword.operator.quantifier.regexp + ^^^^^^^^ + source.ts meta.var.expr.ts string.regexp.ts + ^^ + source.ts meta.var.expr.ts string.regexp.ts keyword.control.anchor.regexp + ^ + source.ts meta.var.expr.ts string.regexp.ts punctuation.definition.string.end.ts + ^ + source.ts meta.var.expr.ts string.regexp.ts keyword.other.ts + ^ + source.ts punctuation.terminator.statement.ts +>var d = /\s*\b(async\s+)?function\b/d; ^^^ source.ts meta.var.expr.ts storage.type.ts ^ diff --git a/tests/cases/regexp.ts b/tests/cases/regexp.ts index abbccf97..1c56b0c1 100644 --- a/tests/cases/regexp.ts +++ b/tests/cases/regexp.ts @@ -1,2 +1,3 @@ var a = /(?:([a-zA-Z_$][\w$])*)/i; -var x = /\s*\b(async\s+)?function\b/g; \ No newline at end of file +var x = /\s*\b(async\s+)?function\b/g; +var d = /\s*\b(async\s+)?function\b/d; \ No newline at end of file