From e15f48539a8ba104ded23015ad7dd3a798452b25 Mon Sep 17 00:00:00 2001 From: Mestery <48163546+Mesteery@users.noreply.github.com> Date: Sat, 26 Dec 2020 00:52:16 +0100 Subject: [PATCH 1/2] Fix regexs to support somes flags Resolves #1646 --- pygments/lexers/javascript.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py index 52eeb0c8d4..4e9a5dd48a 100644 --- a/pygments/lexers/javascript.py +++ b/pygments/lexers/javascript.py @@ -53,7 +53,7 @@ class JavascriptLexer(RegexLexer): 'slashstartsregex': [ include('commentsandwhitespace'), (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gimuy]+\b|\B)', String.Regex, '#pop'), + r'([gimuys]+\b|\B)', String.Regex, '#pop'), (r'(?=/)', Text, ('#pop', 'badregex')), default('#pop') ], @@ -160,7 +160,7 @@ class KalLexer(RegexLexer): 'root': [ include('commentsandwhitespace'), (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gim]+\b|\B)', String.Regex), + r'([gimuys]+\b|\B)', String.Regex), (r'\?|:|_(?=\n)|==?|!=|-(?!>)|[<>+*/-]=?', Operator), (r'\b(and|or|isnt|is|not|but|bitwise|mod|\^|xor|exists|' @@ -474,7 +474,7 @@ class TypeScriptLexer(RegexLexer): 'slashstartsregex': [ include('commentsandwhitespace'), (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gim]+\b|\B)', String.Regex, '#pop'), + r'([gimuys]+\b|\B)', String.Regex, '#pop'), (r'(?=/)', Text, ('#pop', 'badregex')), default('#pop') ], @@ -1496,7 +1496,7 @@ class JuttleLexer(RegexLexer): 'slashstartsregex': [ include('commentsandwhitespace'), (r'/(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gim]+\b|\B)', String.Regex, '#pop'), + r'([gimuys]+\b|\B)', String.Regex, '#pop'), (r'(?=/)', Text, ('#pop', 'badregex')), default('#pop') ], From 7a5fb96235b2b64c7f3b5ba7aead938c9d4ed4ba Mon Sep 17 00:00:00 2001 From: Mestery <48163546+Mesteery@users.noreply.github.com> Date: Sat, 26 Dec 2020 01:17:28 +0100 Subject: [PATCH 2/2] add support for LiveScript and CoffeeScript --- pygments/lexers/javascript.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pygments/lexers/javascript.py b/pygments/lexers/javascript.py index 4e9a5dd48a..92d6052ea5 100644 --- a/pygments/lexers/javascript.py +++ b/pygments/lexers/javascript.py @@ -255,7 +255,7 @@ class LiveScriptLexer(RegexLexer): ], 'multilineregex': [ include('commentsandwhitespace'), - (r'//([gim]+\b|\B)', String.Regex, '#pop'), + (r'//([gimuys]+\b|\B)', String.Regex, '#pop'), (r'/', String.Regex), (r'[^/#]+', String.Regex) ], @@ -263,7 +263,7 @@ class LiveScriptLexer(RegexLexer): include('commentsandwhitespace'), (r'//', String.Regex, ('#pop', 'multilineregex')), (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gim]+\b|\B)', String.Regex, '#pop'), + r'([gimuys]+\b|\B)', String.Regex, '#pop'), (r'/', Operator, '#pop'), default('#pop'), ], @@ -1054,7 +1054,7 @@ class CoffeeScriptLexer(RegexLexer): ], 'multilineregex': [ (r'[^/#]+', String.Regex), - (r'///([gim]+\b|\B)', String.Regex, '#pop'), + (r'///([gimuys]+\b|\B)', String.Regex, '#pop'), (r'#\{', String.Interpol, 'interpoling_string'), (r'[/#]', String.Regex), ], @@ -1062,7 +1062,7 @@ class CoffeeScriptLexer(RegexLexer): include('commentsandwhitespace'), (r'///', String.Regex, ('#pop', 'multilineregex')), (r'/(?! )(\\.|[^[/\\\n]|\[(\\.|[^\]\\\n])*])+/' - r'([gim]+\b|\B)', String.Regex, '#pop'), + r'([gimuys]+\b|\B)', String.Regex, '#pop'), # This isn't really guarding against mishighlighting well-formed # code, just the ability to infinite-loop between root and # slashstartsregex.