Skip to content

Commit e860bbf

Browse files
committed
Minor update to language-renpy.
This adds support for Python 3 f-strings, operators, and keywords, and tries to match Ren'Py 8.0 as much as possible. (The goal is to have a minimal update that still gives Python 3 and Ren'Py 8 functionality.)
1 parent d6c861a commit e860bbf

File tree

3 files changed

+45
-45
lines changed

3 files changed

+45
-45
lines changed

grammars/renpy.cson

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
'1':
104104
'name': 'keyword.other.python.renpy'
105105
'comment': 'keywords that haven\'t fit into other groups (yet).'
106-
'match': '\\b(assert|del|exec|print)\\b'
106+
'match': '\\b(assert|del|exec|print|match|case)\\b'
107107
}
108108
{
109109
'match': '<>'
@@ -118,11 +118,11 @@
118118
'name': 'keyword.operator.assignment.augmented.python.renpy'
119119
}
120120
{
121-
'match': '\\+|\\-|\\*|\\*\\*|/|//|%|<<|>>|&|\\||\\^|~'
121+
'match': '\\+|\\-|\\*|\\*\\*|/|//|%|@|<<|>>|&|\\||\\^|~'
122122
'name': 'keyword.operator.arithmetic.python.renpy'
123123
}
124124
{
125-
'match': '\\='
125+
'match': '\\=|\\:\\='
126126
'name': 'keyword.operator.assignment.python.renpy'
127127
}
128128
{
@@ -400,17 +400,17 @@
400400
'name' : 'keyword.python.renpy'
401401
}
402402
{
403-
'match' : '\\b(\\$|add|always|and|animation|as|assert|at|attribute|auto|bar|behind|block|break|button|call|camera|choice|circles|class|clear|clockwise|contains|continue|counterclockwise|def|default|define|del|drag|draggroup|elif|else|event|except|exec|expression|finally|fixed|for|frame|from|function|global|grid|group|has|hbox|hide|hotbar|hotspot|if|image|imagebutton|imagemap|import|in|index|init|input|is|jump|key|knot|label|lambda|layeredimage|menu|monologue|mousearea|music|new|nointeract|not|null|nvl|offset|old|on|onlayer|or|parallel|pass|pause|play|print|python|queue|raise|repeat|return|rpy|scene|screen|show|showif|side|sound|stop|strings|style|sustain|tag|take|testcase|text|textbutton|time|timer|transclude|transform|translate|try|use|vbar|vbox|viewport|voice|vpgrid|while|window|with|yield|zorder)\\b'
403+
'match' : '\\b(\\$|add|always|and|animation|as|assert|at|attribute|auto|bar|behind|block|break|button|call|camera|choice|circles|class|clear|clockwise|contains|continue|counterclockwise|def|default|define|del|dismiss|drag|draggroup|elif|else|event|except|exec|expression|finally|fixed|for|frame|from|function|global|grid|group|has|hbox|hide|hotbar|hotspot|if|image|imagebutton|imagemap|import|in|index|init|input|is|jump|key|knot|label|lambda|layeredimage|menu|monologue|mousearea|music|nearrect|new|nointeract|not|null|nvl|offset|old|on|onlayer|or|parallel|pass|pause|play|print|python|queue|raise|repeat|return|rpy|scene|screen|show|showif|side|sound|stop|strings|style|sustain|tag|take|testcase|text|textbutton|time|timer|transclude|transform|translate|try|use|vbar|vbox|viewport|voice|vpgrid|while|window|with|yield|zorder)\\b'
404404
'name' : 'keyword.python.renpy'
405405
}
406406

407407
{
408-
'match' : '\\b((?:action|activate_sound|activated|adjustment|allow|allow_underfull|alpha|alternate|alternate_keysym|arguments|arrowkeys|at|auto|cache|caption|changed|child_size|clicked|cols|copypaste|default|default_focus|drag_handle|drag_joined|drag_name|drag_offscreen|drag_raise|draggable|dragged|drop_allowable|droppable|dropped|edgescroll|exclude|focus|focus_mask|ground|height|hover|hovered|icon_tooltip|id|idle|image_style|insensitive|keysym|layer|length|mask|min_overlap|modal|mouse_drop|mousewheel|pagekeys|pixel_width|predict|prefix|properties|range|repeat|rows|scope|scrollbars|selected|selected_hover|selected_idle|selected_insensitive|sensitive|slow|slow_done|spacing|style|style_group|style_prefix|style_suffix|substitute|suffix|text_style|text_tooltip|tooltip|transpose|unhovered|value|variant|width|xadjustment|xinitial|yadjustment|yinitial|zorder))\\b'
408+
'match' : '\\b((?:action|activate_sound|activated|adjustment|allow|allow_underfull|alpha|alt|alternate|alternate_keysym|arguments|arrowkeys|at|auto|cache|caption|capture|caret_blink|changed|child_size|clicked|cols|copypaste|default|default_focus|drag_handle|drag_joined|drag_name|drag_offscreen|drag_raise|draggable|dragged|dragging|drop_allowable|droppable|dropped|edgescroll|exclude|focus|focus_mask|ground|height|hover|hovered|icon_tooltip|id|idle|image_style|insensitive|keysym|layer|length|mask|min_overlap|modal|mouse_drop|mousewheel|pagekeys|pixel_width|predict|prefer_top|prefix|properties|range|rect|released|repeat|roll_forward|rows|scope|scrollbars|selected|selected_hover|selected_idle|selected_insensitive|sensitive|slow|slow_done|spacing|style|style_group|style_prefix|style_suffix|substitute|suffix|text_style|text_tooltip|tooltip|transpose|unhovered|value|variant|width|xadjustment|xinitial|yadjustment|yinitial|zorder))\\b'
409409
'name' : 'entity.other.attribute-name.python.renpy'
410410
}
411411

412412
{
413-
'match' : '\\b((?:|activate_|hover_|idle_|insensitive_|selected_|selected_activate_|selected_hover_|selected_idle_|selected_insensitive_)(?:additive|adjust_spacing|align|alignaround|alpha|alt|anchor|angle|antialias|area|around|background|bar_invert|bar_resizing|bar_vertical|base_bar|black_color|blend|blur|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_layout|box_reverse|box_wrap|box_wrap_spacing|caret|child|clipping|color|corner1|corner2|crop|crop_relative|debug|delay|drop_shadow|drop_shadow_color|events|first_indent|first_spacing|fit|fit_first|focus_mask|font|foreground|gl_anisostropic|gl_blend_func|gl_color_mask|gl_depth|gl_mipmap|gl_pixel_perfect|gl_texture_wrap|hinting|hyperlink_functions|italic|justify|kerning|key_events|keyboard_focus|language|layout|left_bar|left_gutter|left_margin|left_padding|line_leading|line_spacing|margin|matrixanchor|matrixcolor|matrixtransform|maximum|maxsize|mesh|mesh_pad|min_width|minimum|minwidth|mipmap|modal|mouse|nearest|newline_indent|offset|order_reverse|outline_scaling|outlines|padding|perspective|pos|radius|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|shader|size|size_group|slow_abortable|slow_cps|slow_cps_multiplier|sound|spacing|strikethrough|subpixel|text_align|text_y_fudge|thumb|thumb_offset|thumb_shadow|top_bar|top_gutter|top_margin|top_padding|transform_anchor|underline|unscrollable|vertical|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xfit|xmargin|xmaximum|xminimum|xoffset|xpadding|xpan|xpos|xsize|xspacing|xtile|xysize|xzoom|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yfit|ymargin|ymaximum|yminimum|yoffset|ypadding|ypan|ypos|ysize|yspacing|ytile|yzoom|zoom|zpos|zzoom))\\b'
413+
'match' : '\\b((?:|activate_|hover_|idle_|insensitive_|selected_|selected_activate_|selected_hover_|selected_idle_|selected_insensitive_)(?:additive|adjust_spacing|align|alignaround|alpha|alt|anchor|angle|antialias|area|around|background|bar_invert|bar_resizing|bar_vertical|base_bar|black_color|blend|blur|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_layout|box_reverse|box_wrap|box_wrap_spacing|caret|child|clipping|color|corner1|corner2|crop|crop_relative|debug|delay|drop_shadow|drop_shadow_color|events|first_indent|first_spacing|fit|fit_first|focus_mask|font|foreground|gl_anisotropic|gl_blend_func|gl_color_mask|gl_depth|gl_drawable_resolution|gl_mipmap|gl_pixel_perfect|gl_texture_scaling|gl_texture_wrap|hinting|hyperlink_functions|italic|justify|kerning|key_events|keyboard_focus|language|layout|left_bar|left_gutter|left_margin|left_padding|line_leading|line_spacing|margin|matrixanchor|matrixcolor|matrixtransform|maximum|maxsize|mesh|mesh_pad|min_width|minimum|minwidth|mipmap|modal|mouse|nearest|newline_indent|offset|order_reverse|outline_scaling|outlines|padding|perspective|pos|radius|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|shader|size|size_group|slow_abortable|slow_cps|slow_cps_multiplier|sound|spacing|strikethrough|subpixel|text_align|text_y_fudge|thumb|thumb_offset|thumb_shadow|top_bar|top_gutter|top_margin|top_padding|transform_anchor|underline|unscrollable|vertical|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xfit|xmargin|xmaximum|xminimum|xoffset|xpadding|xpan|xpos|xsize|xspacing|xtile|xycenter|xysize|xzoom|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yfit|ymargin|ymaximum|yminimum|yoffset|ypadding|ypan|ypos|ysize|yspacing|ytile|yzoom|zoom|zpos|zzoom))\\b'
414414
'name' : 'entity.other.attribute-name.python.renpy'
415415
}
416416

@@ -746,7 +746,7 @@
746746
'docstrings':
747747
'patterns': [
748748
{
749-
'begin': '^\\s*(?=[uU]?[rR]?""")'
749+
'begin': '^\\s*(?=[fuUb]?[rR]?""")'
750750
'end': '(?<=""")'
751751
'name': 'comment.block.python.renpy'
752752
'patterns': [
@@ -756,7 +756,7 @@
756756
]
757757
}
758758
{
759-
'begin': '^\\s*(?=[uU]?[rR]?\'\'\')'
759+
'begin': '^\\s*(?=[fuUb]?[rR]?\'\'\')'
760760
'end': '(?<=\'\'\')'
761761
'name': 'comment.block.python.renpy'
762762
'patterns': [
@@ -902,7 +902,7 @@
902902
'generic_names':
903903
'match': '[A-Za-z_][A-Za-z0-9_]*'
904904
'illegal_names':
905-
'match': '\\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|import|in|is|lambda|nonlocal|not|or|print|raise|try|while|with|yield)\\b'
905+
'match': '\\b(and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|import|in|is|lambda|nonlocal|not|or|print|raise|try|while|with|yield)\\b'
906906
'name': 'invalid.illegal.name.python.renpy'
907907
'keyword_arguments':
908908
'begin': '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)(?!=)'
@@ -932,7 +932,7 @@
932932
'match': '(\\\\)(.*)$\\n?'
933933
'magic_function_names':
934934
'comment': 'these methods have magic interpretation by python and are generally called indirectly through syntactic constructs'
935-
'match': '(?x)\\b(__(?:\n\t\t\t\t\t\tabs|add|and|cmp|coerce|complex|contains|del|delattr|\n\t\t\t\t\t\tdelete|delitem|delslice|div|divmod|enter|eq|exit|float|\n\t\t\t\t\t\tfloordiv|ge|get|getattr|getattribute|getitem|getslice|gt|\n\t\t\t\t\t\thash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|\n\t\t\t\t\t\tint|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|\n\t\t\t\t\t\tlong|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|\n\t\t\t\t\t\tradd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|\n\t\t\t\t\t\trpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|\n\t\t\t\t\t\tsetslice|str|sub|truediv|unicode|xor\n\t\t\t\t\t)__)\\b'
935+
'match': '(?x)\\b(__(?:abs|add|and|cmp|coerce|complex|contains|del|delattr|delete|delitem|delslice|div|divmod|enter|eq|exit|float|floordiv|ge|get|getattr|getattribute|getitem|getslice|gt|hash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|setslice|str|sub|truediv|unicode|xor)__)\\b'
936936
'name': 'support.function.magic.python.renpy'
937937
'magic_variable_names':
938938
'comment': 'magic variables which a class/module may have.'
@@ -949,7 +949,7 @@
949949
'string_quoted_double':
950950
'patterns': [
951951
{
952-
'begin': '([uU]r)(""")'
952+
'begin': '([fuUb]r)(""")'
953953
'beginCaptures':
954954
'1':
955955
'name': 'storage.type.string.python.renpy'
@@ -980,7 +980,7 @@
980980
]
981981
}
982982
{
983-
'begin': '([uU]R)(""")'
983+
'begin': '([fuUb]R)(""")'
984984
'beginCaptures':
985985
'1':
986986
'name': 'storage.type.string.python.renpy'
@@ -1061,7 +1061,7 @@
10611061
]
10621062
}
10631063
{
1064-
'begin': '([uU])(""")'
1064+
'begin': '([fuUb])(""")'
10651065
'beginCaptures':
10661066
'1':
10671067
'name': 'storage.type.string.python.renpy'
@@ -1105,11 +1105,11 @@
11051105
'4':
11061106
'name': 'punctuation.definition.string.end.python.renpy'
11071107
'comment': 'double-quoted raw string'
1108-
'match': '([uU]r)(")((?:[^"\\\\]|\\\\.)*)(")'
1108+
'match': '([fuUb]r)(")((?:[^"\\\\]|\\\\.)*)(")'
11091109
'name': 'string.quoted.double.single-line.unicode-raw-regex.python.renpy'
11101110
}
11111111
{
1112-
'begin': '([uU]R)(")'
1112+
'begin': '([fuUb]R)(")'
11131113
'beginCaptures':
11141114
'1':
11151115
'name': 'storage.type.string.python.renpy'
@@ -1185,7 +1185,7 @@
11851185
]
11861186
}
11871187
{
1188-
'begin': '([uU])(")'
1188+
'begin': '([fuUb])(")'
11891189
'beginCaptures':
11901190
'1':
11911191
'name': 'storage.type.string.python.renpy'
@@ -1277,7 +1277,7 @@
12771277
'name': 'string.quoted.single.single-line.python.renpy'
12781278
}
12791279
{
1280-
'begin': '([uU]r)(\'\'\')'
1280+
'begin': '([fuUb]r)(\'\'\')'
12811281
'beginCaptures':
12821282
'1':
12831283
'name': 'storage.type.string.python.renpy'
@@ -1308,7 +1308,7 @@
13081308
]
13091309
}
13101310
{
1311-
'begin': '([uU]R)(\'\'\')'
1311+
'begin': '([fuUb]R)(\'\'\')'
13121312
'beginCaptures':
13131313
'1':
13141314
'name': 'storage.type.string.python.renpy'
@@ -1389,7 +1389,7 @@
13891389
]
13901390
}
13911391
{
1392-
'begin': '([uU])(\'\'\')'
1392+
'begin': '([fuUb])(\'\'\')'
13931393
'beginCaptures':
13941394
'1':
13951395
'name': 'storage.type.string.python.renpy'
@@ -1433,11 +1433,11 @@
14331433
'4':
14341434
'name': 'punctuation.definition.string.end.python.renpy'
14351435
'comment': 'single quoted raw string'
1436-
'match': '([uU]r)(\')((?:[^\'\\\\]|\\\\.)*)(\')'
1436+
'match': '([fuUb]r)(\')((?:[^\'\\\\]|\\\\.)*)(\')'
14371437
'name': 'string.quoted.single.single-line.unicode-raw-regex.python.renpy'
14381438
}
14391439
{
1440-
'begin': '([uU]R)(\')'
1440+
'begin': '([fuUb]R)(\')'
14411441
'beginCaptures':
14421442
'1':
14431443
'name': 'storage.type.string.python.renpy'
@@ -1509,7 +1509,7 @@
15091509
]
15101510
}
15111511
{
1512-
'begin': '([uU])(\')'
1512+
'begin': '([fuUb])(\')'
15131513
'beginCaptures':
15141514
'1':
15151515
'name': 'storage.type.string.python.renpy'

keywords.py

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

source/renpy.tmpl.cson

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
'1':
104104
'name': 'keyword.other.python.renpy'
105105
'comment': 'keywords that haven\'t fit into other groups (yet).'
106-
'match': '\\b(assert|del|exec|print)\\b'
106+
'match': '\\b(assert|del|exec|print|match|case)\\b'
107107
}
108108
{
109109
'match': '<>'
@@ -118,11 +118,11 @@
118118
'name': 'keyword.operator.assignment.augmented.python.renpy'
119119
}
120120
{
121-
'match': '\\+|\\-|\\*|\\*\\*|/|//|%|<<|>>|&|\\||\\^|~'
121+
'match': '\\+|\\-|\\*|\\*\\*|/|//|%|@|<<|>>|&|\\||\\^|~'
122122
'name': 'keyword.operator.arithmetic.python.renpy'
123123
}
124124
{
125-
'match': '\\='
125+
'match': '\\=|\\:\\='
126126
'name': 'keyword.operator.assignment.python.renpy'
127127
}
128128
{
@@ -721,7 +721,7 @@
721721
'docstrings':
722722
'patterns': [
723723
{
724-
'begin': '^\\s*(?=[uU]?[rR]?""")'
724+
'begin': '^\\s*(?=[fuUb]?[rR]?""")'
725725
'end': '(?<=""")'
726726
'name': 'comment.block.python.renpy'
727727
'patterns': [
@@ -731,7 +731,7 @@
731731
]
732732
}
733733
{
734-
'begin': '^\\s*(?=[uU]?[rR]?\'\'\')'
734+
'begin': '^\\s*(?=[fuUb]?[rR]?\'\'\')'
735735
'end': '(?<=\'\'\')'
736736
'name': 'comment.block.python.renpy'
737737
'patterns': [
@@ -877,7 +877,7 @@
877877
'generic_names':
878878
'match': '[A-Za-z_][A-Za-z0-9_]*'
879879
'illegal_names':
880-
'match': '\\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|import|in|is|lambda|nonlocal|not|or|print|raise|try|while|with|yield)\\b'
880+
'match': '\\b(and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|global|if|import|in|is|lambda|nonlocal|not|or|print|raise|try|while|with|yield)\\b'
881881
'name': 'invalid.illegal.name.python.renpy'
882882
'keyword_arguments':
883883
'begin': '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)(?!=)'
@@ -907,7 +907,7 @@
907907
'match': '(\\\\)(.*)$\\n?'
908908
'magic_function_names':
909909
'comment': 'these methods have magic interpretation by python and are generally called indirectly through syntactic constructs'
910-
'match': '(?x)\\b(__(?:\n\t\t\t\t\t\tabs|add|and|cmp|coerce|complex|contains|del|delattr|\n\t\t\t\t\t\tdelete|delitem|delslice|div|divmod|enter|eq|exit|float|\n\t\t\t\t\t\tfloordiv|ge|get|getattr|getattribute|getitem|getslice|gt|\n\t\t\t\t\t\thash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|\n\t\t\t\t\t\tint|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|\n\t\t\t\t\t\tlong|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|\n\t\t\t\t\t\tradd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|\n\t\t\t\t\t\trpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|\n\t\t\t\t\t\tsetslice|str|sub|truediv|unicode|xor\n\t\t\t\t\t)__)\\b'
910+
'match': '(?x)\\b(__(?:abs|add|and|cmp|coerce|complex|contains|del|delattr|delete|delitem|delslice|div|divmod|enter|eq|exit|float|floordiv|ge|get|getattr|getattribute|getitem|getslice|gt|hash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|long|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|radd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|setslice|str|sub|truediv|unicode|xor)__)\\b'
911911
'name': 'support.function.magic.python.renpy'
912912
'magic_variable_names':
913913
'comment': 'magic variables which a class/module may have.'
@@ -924,7 +924,7 @@
924924
'string_quoted_double':
925925
'patterns': [
926926
{
927-
'begin': '([uU]r)(""")'
927+
'begin': '([fuUb]r)(""")'
928928
'beginCaptures':
929929
'1':
930930
'name': 'storage.type.string.python.renpy'
@@ -955,7 +955,7 @@
955955
]
956956
}
957957
{
958-
'begin': '([uU]R)(""")'
958+
'begin': '([fuUb]R)(""")'
959959
'beginCaptures':
960960
'1':
961961
'name': 'storage.type.string.python.renpy'
@@ -1036,7 +1036,7 @@
10361036
]
10371037
}
10381038
{
1039-
'begin': '([uU])(""")'
1039+
'begin': '([fuUb])(""")'
10401040
'beginCaptures':
10411041
'1':
10421042
'name': 'storage.type.string.python.renpy'
@@ -1080,11 +1080,11 @@
10801080
'4':
10811081
'name': 'punctuation.definition.string.end.python.renpy'
10821082
'comment': 'double-quoted raw string'
1083-
'match': '([uU]r)(")((?:[^"\\\\]|\\\\.)*)(")'
1083+
'match': '([fuUb]r)(")((?:[^"\\\\]|\\\\.)*)(")'
10841084
'name': 'string.quoted.double.single-line.unicode-raw-regex.python.renpy'
10851085
}
10861086
{
1087-
'begin': '([uU]R)(")'
1087+
'begin': '([fuUb]R)(")'
10881088
'beginCaptures':
10891089
'1':
10901090
'name': 'storage.type.string.python.renpy'
@@ -1160,7 +1160,7 @@
11601160
]
11611161
}
11621162
{
1163-
'begin': '([uU])(")'
1163+
'begin': '([fuUb])(")'
11641164
'beginCaptures':
11651165
'1':
11661166
'name': 'storage.type.string.python.renpy'
@@ -1252,7 +1252,7 @@
12521252
'name': 'string.quoted.single.single-line.python.renpy'
12531253
}
12541254
{
1255-
'begin': '([uU]r)(\'\'\')'
1255+
'begin': '([fuUb]r)(\'\'\')'
12561256
'beginCaptures':
12571257
'1':
12581258
'name': 'storage.type.string.python.renpy'
@@ -1283,7 +1283,7 @@
12831283
]
12841284
}
12851285
{
1286-
'begin': '([uU]R)(\'\'\')'
1286+
'begin': '([fuUb]R)(\'\'\')'
12871287
'beginCaptures':
12881288
'1':
12891289
'name': 'storage.type.string.python.renpy'
@@ -1364,7 +1364,7 @@
13641364
]
13651365
}
13661366
{
1367-
'begin': '([uU])(\'\'\')'
1367+
'begin': '([fuUb])(\'\'\')'
13681368
'beginCaptures':
13691369
'1':
13701370
'name': 'storage.type.string.python.renpy'
@@ -1408,11 +1408,11 @@
14081408
'4':
14091409
'name': 'punctuation.definition.string.end.python.renpy'
14101410
'comment': 'single quoted raw string'
1411-
'match': '([uU]r)(\')((?:[^\'\\\\]|\\\\.)*)(\')'
1411+
'match': '([fuUb]r)(\')((?:[^\'\\\\]|\\\\.)*)(\')'
14121412
'name': 'string.quoted.single.single-line.unicode-raw-regex.python.renpy'
14131413
}
14141414
{
1415-
'begin': '([uU]R)(\')'
1415+
'begin': '([fuUb]R)(\')'
14161416
'beginCaptures':
14171417
'1':
14181418
'name': 'storage.type.string.python.renpy'
@@ -1484,7 +1484,7 @@
14841484
]
14851485
}
14861486
{
1487-
'begin': '([uU])(\')'
1487+
'begin': '([fuUb])(\')'
14881488
'beginCaptures':
14891489
'1':
14901490
'name': 'storage.type.string.python.renpy'

0 commit comments

Comments
 (0)