diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c30070..1cf930c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,5 @@ ## 1.5.9 * Total code clear; -* Remove unnecessary quotes in grammars; * Optimize transitions and music/audio functions; * Minor fixes; diff --git a/grammars/renpy.cson b/grammars/renpy.cson index 94fd316..908548f 100644 --- a/grammars/renpy.cson +++ b/grammars/renpy.cson @@ -1,374 +1,374 @@ -scopeName: 'source.renpy' -name: 'Ren\'Py' -fileTypes: [ +'scopeName': 'source.renpy' +'name': 'Ren\'Py' +'fileTypes': [ 'rpy' 'rpym' ] -firstLineMatch: '^#!/.*\\brenpy\\b' -patterns: [ +'firstLineMatch': '^#!/.*\\brenpy\\b' +'patterns': [ { - begin: '(^[ \\t]+)?(?=#)' - beginCaptures: + 'begin': '(^[ \\t]+)?(?=#)' + 'beginCaptures': '1': - name: 'punctuation.whitespace.comment.leading.python' - end: '(?!\\G)' - patterns: [ + 'name': 'punctuation.whitespace.comment.leading.python' + 'end': '(?!\\G)' + 'patterns': [ { - begin: '#' - beginCaptures: + 'begin': '#' + 'beginCaptures': '0': - name: 'punctuation.definition.comment.python' - end: '\\n' - name: 'comment.line.number-sign.python' + 'name': 'punctuation.definition.comment.python' + 'end': '\\n' + 'name': 'comment.line.number-sign.python' } ] } { - match: '\\b(?i:(0x\\h*)L)' - name: 'constant.numeric.integer.long.hexadecimal.python' + 'match': '\\b(?i:(0x\\h*)L)' + 'name': 'constant.numeric.integer.long.hexadecimal.python' } { - match: '\\b(?i:(0x\\h*))' - name: 'constant.numeric.integer.hexadecimal.python' + 'match': '\\b(?i:(0x\\h*))' + 'name': 'constant.numeric.integer.hexadecimal.python' } { - match: '\\b(?i:(0[0-7]+)L)' - name: 'constant.numeric.integer.long.octal.python' + 'match': '\\b(?i:(0[0-7]+)L)' + 'name': 'constant.numeric.integer.long.octal.python' } { - match: '\\b(0[0-7]+)' - name: 'constant.numeric.integer.octal.python' + 'match': '\\b(0[0-7]+)' + 'name': 'constant.numeric.integer.octal.python' } { - match: '\\b(?i:(((\\d+(\\.(?=[^a-zA-Z_])\\d*)?|(?<=[^0-9a-zA-Z_])\\.\\d+)(e[\\-\\+]?\\d+)?))J)' - name: 'constant.numeric.complex.python' + 'match': '\\b(?i:(((\\d+(\\.(?=[^a-zA-Z_])\\d*)?|(?<=[^0-9a-zA-Z_])\\.\\d+)(e[\\-\\+]?\\d+)?))J)' + 'name': 'constant.numeric.complex.python' } { - match: '\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])' - name: 'constant.numeric.float.python' + 'match': '\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])' + 'name': 'constant.numeric.float.python' } { - match: '(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))' - name: 'constant.numeric.float.python' + 'match': '(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))' + 'name': 'constant.numeric.float.python' } { - match: '\\b(?i:(\\d+e[\\-\\+]?\\d+))' - name: 'constant.numeric.float.python' + 'match': '\\b(?i:(\\d+e[\\-\\+]?\\d+))' + 'name': 'constant.numeric.float.python' } { - match: '\\b(?i:([1-9]+[0-9]*|0)L)' - name: 'constant.numeric.integer.long.decimal.python' + 'match': '\\b(?i:([1-9]+[0-9]*|0)L)' + 'name': 'constant.numeric.integer.long.decimal.python' } { - match: '\\b([1-9]+[0-9]*|0)' - name: 'constant.numeric.integer.decimal.python' + 'match': '\\b([1-9]+[0-9]*|0)' + 'name': 'constant.numeric.integer.decimal.python' } { - captures: + 'captures': '1': - name: 'storage.modifier.global.python' - match: '\\b(global)\\b' + 'name': 'storage.modifier.global.python' + 'match': '\\b(global)\\b' } { - captures: + 'captures': '1': - name: 'storage.modifier.nonlocal.python' - match: '\\b(nonlocal)\\b' + 'name': 'storage.modifier.nonlocal.python' + 'match': '\\b(nonlocal)\\b' } { - captures: + 'captures': '1': - name: 'keyword.control.import.python' + 'name': 'keyword.control.import.python' '2': - name: 'keyword.control.import.from.python' - match: '\\b(?:(import)|(from))\\b' + 'name': 'keyword.control.import.from.python' + 'match': '\\b(?:(import)|(from))\\b' } { - comment: 'keywords that delimit flow conditionals' - name: 'keyword.control.conditional.python' - match: '\\b(if|elif|else)\\b' + 'comment': 'keywords that delimit flow conditionals' + 'name': 'keyword.control.conditional.python' + 'match': '\\b(if|elif|else)\\b' } { - comment: 'keywords that delimit an exception' - name: 'keyword.control.exception.python' - match: '\\b(except|finally|try|raise)\\b' + 'comment': 'keywords that delimit an exception' + 'name': 'keyword.control.exception.python' + 'match': '\\b(except|finally|try|raise)\\b' } { - comment: 'keywords that delimit loops' - name: 'keyword.control.repeat.python' - match: '\\b(for|while)\\b' + 'comment': 'keywords that delimit loops' + 'name': 'keyword.control.repeat.python' + 'match': '\\b(for|while)\\b' } { - comment: 'keywords that alter flow from within a block' - name: 'keyword.control.statement.python' - match: '\\b(function|nvl|block|choice|parallel|contains|on|voice|imagemap|hotspot|text|frame|textbutton|grid|add|key|use|bar|with|is|button|window|hbox|vbox|mousearea|imagebutton)\\b' + 'comment': 'keywords that alter flow from within a block' + 'name': 'keyword.control.statement.python' + 'match': '\\b(function|nvl|block|choice|parallel|contains|on|voice|imagemap|hotspot|text|frame|textbutton|grid|add|key|use|bar|with|is|button|window|hbox|vbox|mousearea|imagebutton)\\b' } { - comment: 'renpy screen statement keywords' - name: 'support.type.screen.renpy' - match: '\\b(kind|color|action|area|hovered|unhovered|clicked|modal|text_style|default|has|who|what|tag|value|theme)\\b' + 'comment': 'renpy screen statement keywords' + 'name': 'support.type.screen.renpy' + 'match': '\\b(kind|color|action|area|hovered|unhovered|clicked|modal|text_style|default|has|who|what|tag|value|theme)\\b' } { - comment: 'renpy transform keywords' - name: 'support.type.transform.renpy' - match: '\\b(repeat|transform|fadein|fadeout|position|Position|easein|easeout|time|ui)\\b' + 'comment': 'renpy transform keywords' + 'name': 'support.type.transform.renpy' + 'match': '\\b(repeat|transform|fadein|fadeout|position|Position|easein|easeout|time|ui)\\b' } { - comment: 'other renpy keywords' - name: 'support.type.other.renpy' - match: '\\b(MultiPersistent|Character|DynamicCharacter|music|sound|movie|pause|Transform|clear)\\b' + 'comment': 'other renpy keywords' + 'name': 'support.type.other.renpy' + 'match': '\\b(MultiPersistent|Character|DynamicCharacter|music|sound|movie|pause|Transform|clear)\\b' } # Python statements Ren'Py Keywords. View(http://www.renpy.org/doc/html/python.html) { - comment: 'python one-line renpy keyword' - name: 'invalid.deprecated.operator.renpy' - match: '\\$' + 'comment': 'python one-line renpy keyword' + 'name': 'invalid.deprecated.operator.renpy' + 'match': '\\$' } { - comment: 'python control statements' - name: 'keyword.control.statement.python' - match: '\\b(return|pass|break|continue|yield)\\b' + 'comment': 'python control statements' + 'name': 'keyword.control.statement.python' + 'match': '\\b(return|pass|break|continue|yield)\\b' } { - comment: 'python statements renpy keywords' - name: 'support.type.objects.renpy' - match: '\\b(renpy|store|persistent|config)\\b' + 'comment': 'python statements renpy keywords' + 'name': 'support.type.objects.renpy' + 'match': '\\b(renpy|store|persistent|config)\\b' } { - comment: 'python statements renpy keywords' - name: 'support.type.python.renpy' - match: '\\b(python)\\b' + 'comment': 'python statements renpy keywords' + 'name': 'support.type.python.renpy' + 'match': '\\b(python)\\b' } { - comment: 'init statements renpy keywords' - name: 'keyword.control.statement.init.renpy' - match: '\\b(init)\\b' + 'comment': 'init statements renpy keywords' + 'name': 'keyword.control.statement.init.renpy' + 'match': '\\b(init)\\b' } # Transitions Ren'Py Keywords. View(http://www.renpy.org/doc/html/transitions.html) { - comment: 'transition class renpy keywords' - name: 'support.type.transition.renpy' - match: '\\b(Solid|AlphaDissolve|ComposeTransition|CropMove|Dissolve|Fade|ImageDissolve|MoveTransition|MultipleTransition|Pause|Pixellate|move_transitions)\\b' + 'comment': 'transition class renpy keywords' + 'name': 'support.type.transition.renpy' + 'match': '\\b(Solid|AlphaDissolve|ComposeTransition|CropMove|Dissolve|Fade|ImageDissolve|MoveTransition|MultipleTransition|Pause|Pixellate|move_transitions)\\b' } { - captures: + 'captures': '1': - name: 'keyword.control.statement.with.renpy' + 'name': 'keyword.control.statement.with.renpy' '2': - name: 'support.type.transition.renpy' - comment: 'transitions renpy keywords' - match: '\\s+(with)\\s+\\b(fade|dissolve|pixellate|move|moveinright|moveinleft|moveintop|moveinbottom|moveoutright|moveoutleft|moveouttop|moveoutbottom|ease|easeinright|easeinleft|easeintop|easeinbottom|easeoutright|easeoutleft|easeouttop|easeoutbottom|zoomin|zoomout|zoominout|vpunch|hpunch|blinds|squares|wipeleft|wiperight|wipeup|wipedown|slideleft|slideright|slideup|slidedown|slideawayleft|slideawayright|slideawayup|slideawaydown|irisin|irisout)\\b' + 'name': 'support.type.transition.renpy' + 'comment': 'transitions renpy keywords' + 'match': '\\s+(with)\\s+\\b(fade|dissolve|pixellate|move|moveinright|moveinleft|moveintop|moveinbottom|moveoutright|moveoutleft|moveouttop|moveoutbottom|ease|easeinright|easeinleft|easeintop|easeinbottom|easeoutright|easeoutleft|easeouttop|easeoutbottom|zoomin|zoomout|zoominout|vpunch|hpunch|blinds|squares|wipeleft|wiperight|wipeup|wipedown|slideleft|slideright|slideup|slidedown|slideawayleft|slideawayright|slideawayup|slideawaydown|irisin|irisout)\\b' } # Transform Properties Ren'Py Keywords. View(http://www.renpy.org/doc/html/atl.html#transform-properties) { - comment: 'transform properties renpy keywords' - name: 'variable.parameter.function.python' - match: '\\b(linear|top_margin|ymargin|xsize|ysize|yminimum|xminimum|ymaximum|xmaximum|transpose|insensitive|selected_idle|selected_hover|ground|idle|hover|focus_mask|hover_sound|activate_sound|style|spacing|text_align|size_group|layout|style_group|background|ypadding|xpadding|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|xfill|xmargin|pos|xpos|ypos|anchor|xanchor|yanchor|align|xalign|yalign|xoffset|yoffset|xcenter|ycenter|rotate|rotate_pad|transform_anchor|zoom|xzoom|yzoom|nearest|alpha|additive|around|alignaround|angle|radius|crop|crop_relative|corner1|corner2|size|subpixel|delay|events)\\b' + 'comment': 'transform properties renpy keywords' + 'name': 'variable.parameter.function.python' + 'match': '\\b(linear|top_margin|ymargin|xsize|ysize|yminimum|xminimum|ymaximum|xmaximum|transpose|insensitive|selected_idle|selected_hover|ground|idle|hover|focus_mask|hover_sound|activate_sound|style|spacing|text_align|size_group|layout|style_group|background|ypadding|xpadding|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|xfill|xmargin|pos|xpos|ypos|anchor|xanchor|yanchor|align|xalign|yalign|xoffset|yoffset|xcenter|ycenter|rotate|rotate_pad|transform_anchor|zoom|xzoom|yzoom|nearest|alpha|additive|around|alignaround|angle|radius|crop|crop_relative|corner1|corner2|size|subpixel|delay|events)\\b' } # Movie Ren'Py Keywords. View(http://www.renpy.org/doc/html/movie.html) { - comment: 'Movie renpy keywords' - name: 'support.type.python' - match: '\\b(Movie|movie_cutscene)\\b' + 'comment': 'Movie renpy keywords' + 'name': 'support.type.python' + 'match': '\\b(Movie|movie_cutscene)\\b' } # Audio/Movie functions Ren'Py Keywords. View(http://www.renpy.org/doc/html/audio.html) { - comment: 'Audio/Movie statements renpy keywords' - name: 'keyword.control.statement.python' - match: '\\b(play|queue|stop)\\b' + 'comment': 'Audio/Movie statements renpy keywords' + 'name': 'keyword.control.statement.python' + 'match': '\\b(play|queue|stop)\\b' } { - captures: + 'captures': '2': - name: 'support.type.music.renpy' + 'name': 'support.type.music.renpy' '3': - name: 'entity.name.function.images.renpy' - comment: 'Audio functions renpy keywords' - match: '(\\s*\\.\\s*)(music|sound)\\s*\\.\\s*(play|seen_audio|get_duration|get_pause|get_playing|get_pos|is_playing|queue|register_channel|set_pan|set_pause|set_queue_empty_callback|set_volume|stop|loop|noloop)\\b' + 'name': 'entity.name.function.images.renpy' + 'comment': 'Audio functions renpy keywords' + 'match': '(\\s*\\.\\s*)(music|sound)\\s*\\.\\s*(play|seen_audio|get_duration|get_pause|get_playing|get_pos|is_playing|queue|register_channel|set_pan|set_pause|set_queue_empty_callback|set_volume|stop|loop|noloop)\\b' } { - captures: + 'captures': '2': - name: 'entity.name.function.images.renpy' - comment: 'Audio functions renpy keywords' - match: '(\\s*\\.\\s*)(play|seen_audio)\\b' + 'name': 'entity.name.function.images.renpy' + 'comment': 'Audio functions renpy keywords' + 'match': '(\\s*\\.\\s*)(play|seen_audio)\\b' } # Image displaying functions Ren'Py Keywords. View(http://www.renpy.org/doc/html/displaying_images.html) { - comment: 'show statements renpy keywords' - name: 'support.type.show.renpy' - match: '\\b(as|at|behind|onlayer|zorder|expression)\\b' + 'comment': 'show statements renpy keywords' + 'name': 'support.type.show.renpy' + 'match': '\\b(as|at|behind|onlayer|zorder|expression)\\b' } { - captures: + 'captures': '2': - name: 'entity.name.function.images.renpy' - comment: 'image functions renpy keywords' - match: '(\\s*\\.\\s*)(can_show|copy_images|get_available_image_attributes|get_available_image_tags|get_image_bounds|get_placement|get_showing_tags|has_image|image_exists|seen_image|showing|start_predict|stop_predict)\\b' + 'name': 'entity.name.function.images.renpy' + 'comment': 'image functions renpy keywords' + 'match': '(\\s*\\.\\s*)(can_show|copy_images|get_available_image_attributes|get_available_image_tags|get_image_bounds|get_placement|get_showing_tags|has_image|image_exists|seen_image|showing|start_predict|stop_predict)\\b' } # Action Ren'Py Keywords. View(http://www.renpy.org/doc/html/screen_actions.html) { - comment: 'action renpy keywords' - name: 'support.type.action.renpy' - match: '\\b(Hide|Jump|NullAction|Return|Show|ShowTransient)\\b' + 'comment': 'action renpy keywords' + 'name': 'support.type.action.renpy' + 'match': '\\b(Hide|Jump|NullAction|Return|Show|ShowTransient)\\b' } { - comment: 'Data Action renpy keywords' - name: 'support.type.action.renpy' - match: '\\b(SetDict|SetField|SetScreenVariable|SetVariable|ToggleDict|ToggleField|ToggleScreenVariable|ToggleVariable)\\b' + 'comment': 'Data Action renpy keywords' + 'name': 'support.type.action.renpy' + 'match': '\\b(SetDict|SetField|SetScreenVariable|SetVariable|ToggleDict|ToggleField|ToggleScreenVariable|ToggleVariable)\\b' } { - comment: 'Menu Action renpy keywords' - name: 'support.type.action.renpy' - match: '\\b(MainMenu|Quit|ShowMenu|Start)\\b' + 'comment': 'Menu Action renpy keywords' + 'name': 'support.type.action.renpy' + 'match': '\\b(MainMenu|Quit|ShowMenu|Start)\\b' } { - comment: 'File Action renpy keywords' - name: 'support.type.action.renpy' - match: '\\b(FileAction|FileDelete|FileLoad|FilePage|FilePageNext|FilePagePrevious|FileSave|FileTakeScreenShot|QuickLoad|QuickSave)\\b' + 'comment': 'File Action renpy keywords' + 'name': 'support.type.action.renpy' + 'match': '\\b(FileAction|FileDelete|FileLoad|FilePage|FilePageNext|FilePagePrevious|FileSave|FileTakeScreenShot|QuickLoad|QuickSave)\\b' } { - comment: 'Audio Action renpy keywords' - name: 'support.type.action.renpy' - match: '\\b(Play|Queue|SetMixer|Stop)\\b' + 'comment': 'Audio Action renpy keywords' + 'name': 'support.type.action.renpy' + 'match': '\\b(Play|Queue|SetMixer|Stop)\\b' } { - comment: 'Other Action renpy keywords' - name: 'support.type.other.renpy' - match: '\\b(Preference|Function|Help|HideInterface|If|InvertSelected|MouseMove|Notify|OpenURL|RollForward|Rollback|ScreenShot|SelectedIf|Skip|With)\\b' + 'comment': 'Other Action renpy keywords' + 'name': 'support.type.other.renpy' + 'match': '\\b(Preference|Function|Help|HideInterface|If|InvertSelected|MouseMove|Notify|OpenURL|RollForward|Rollback|ScreenShot|SelectedIf|Skip|With)\\b' } # End of Action Ren'Py Keywords. # Ren'Py translation statements' { - comment: 'Translation key "new"' - name: 'entity.name.function.translation.renpy' - match: '(?:\\s+)\\b(new)\\b' + 'comment': 'Translation key "new"' + 'name': 'entity.name.function.translation.renpy' + 'match': '(?:\\s+)\\b(new)\\b' } { - comment: 'Translation key "old"' - name: 'keyword.operator.logical.translation.renpy' - match: '(?:\\s+)\\b(old)\\b' + 'comment': 'Translation key "old"' + 'name': 'keyword.operator.logical.translation.renpy' + 'match': '(?:\\s+)\\b(old)\\b' } { - captures: + 'captures': '1': - name: 'keyword.operator.logical.translation.renpy' + 'name': 'keyword.operator.logical.translation.renpy' '2': - name: 'entity.name.function.translation.renpy' + 'name': 'entity.name.function.translation.renpy' '3': - name: 'support.type.translation.renpy' - comment: 'python statements renpy keywords' - match: '^\\b(translate)\\b\\s\\b([a-zA-z0-9_]+)\\b\\s\\b(strings)\\b' + 'name': 'support.type.translation.renpy' + 'comment': 'python statements renpy keywords' + 'match': '^\\b(translate)\\b\\s\\b([a-zA-z0-9_]+)\\b\\s\\b(strings)\\b' } { - comment: 'keyword operators that evaluate to True or False' - match: '\\b(and|in|is|not|or)\\b' - name: 'keyword.operator.logical.python' + 'comment': 'keyword operators that evaluate to True or False' + 'match': '\\b(and|in|is|not|or)\\b' + 'name': 'keyword.operator.logical.python' } { - captures: + 'captures': '1': - name: 'keyword.other.python' - comment: 'keywords that haven\'t fit into other groups (yet).' - match: '\\b(assert|del|exec|print)\\b' + 'name': 'keyword.other.python' + 'comment': 'keywords that haven\'t fit into other groups (yet).' + 'match': '\\b(assert|del|exec|print)\\b' } { - match: '<>' - name: 'invalid.deprecated.operator.python' + 'match': '<>' + 'name': 'invalid.deprecated.operator.python' } { - match: '<\\=|>\\=|\\=\\=|<|>|\\!\\=' - name: 'keyword.operator.comparison.python' + 'match': '<\\=|>\\=|\\=\\=|<|>|\\!\\=' + 'name': 'keyword.operator.comparison.python' } { - match: '\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|&\\=|\\|\\=|\\^\\=|>>\\=|<<\\=|\\*\\*\\=' - name: 'keyword.operator.assignment.augmented.python' + 'match': '\\+\\=|-\\=|\\*\\=|/\\=|//\\=|%\\=|&\\=|\\|\\=|\\^\\=|>>\\=|<<\\=|\\*\\*\\=' + 'name': 'keyword.operator.assignment.augmented.python' } { - match: '\\+|\\-|\\*|\\*\\*|/|//|%|<<|>>|&|\\||\\^|~' - name: 'keyword.operator.arithmetic.python' + 'match': '\\+|\\-|\\*|\\*\\*|/|//|%|<<|>>|&|\\||\\^|~' + 'name': 'keyword.operator.arithmetic.python' } { - match: '\\=' - name: 'keyword.operator.assignment.python' + 'match': '\\=' + 'name': 'keyword.operator.assignment.python' } { - begin: '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\:)' - beginCaptures: + 'begin': '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\:)' + 'beginCaptures': '1': - name: 'storage.type.class.python' - contentName: 'entity.name.type.class.python' - end: '\\s*(:)' - endCaptures: + 'name': 'storage.type.class.python' + 'contentName': 'entity.name.type.class.python' + 'end': '\\s*(:)' + 'endCaptures': '1': - name: 'punctuation.section.class.begin.python' - name: 'meta.class.old-style.python' - patterns: [ + 'name': 'punctuation.section.class.begin.python' + 'name': 'meta.class.old-style.python' + 'patterns': [ { - include: '#entity_name_class' + 'include': '#entity_name_class' } ] } { - begin: '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\()' - beginCaptures: + 'begin': '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*\\()' + 'beginCaptures': '1': - name: 'storage.type.class.python' - end: '(\\))\\s*(?:(\\:)|(.*$\\n?))' - endCaptures: + 'name': 'storage.type.class.python' + 'end': '(\\))\\s*(?:(\\:)|(.*$\\n?))' + 'endCaptures': '1': - name: 'punctuation.definition.inheritance.end.python' + 'name': 'punctuation.definition.inheritance.end.python' '2': - name: 'punctuation.section.class.begin.python' + 'name': 'punctuation.section.class.begin.python' '3': - name: 'invalid.illegal.missing-section-begin.python' - name: 'meta.class.python' - patterns: [ + 'name': 'invalid.illegal.missing-section-begin.python' + 'name': 'meta.class.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.type.class.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.type.class.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_class' + 'include': '#entity_name_class' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.inheritance.begin.python' - contentName: 'meta.class.inheritance.python' - end: '(?=\\)|:)' - patterns: [ + 'name': 'punctuation.definition.inheritance.begin.python' + 'contentName': 'meta.class.inheritance.python' + 'end': '(?=\\)|:)' + 'patterns': [ { - begin: '(?<=\\(|,)\\s*' - contentName: 'entity.other.inherited-class.python' - end: '\\s*(?:(,)|(?=\\)))' - endCaptures: + 'begin': '(?<=\\(|,)\\s*' + 'contentName': 'entity.other.inherited-class.python' + 'end': '\\s*(?:(,)|(?=\\)))' + 'endCaptures': '1': - name: 'punctuation.separator.inheritance.python' - patterns: [ + 'name': 'punctuation.separator.inheritance.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } @@ -377,48 +377,48 @@ patterns: [ ] } { - begin: '^\\s*((jump)|(call)|(screen)|(label)|(menu))\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*)' - beginCaptures: + 'begin': '^\\s*((jump)|(call)|(screen)|(label)|(menu))\\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*)' + 'beginCaptures': '1': - name: 'keyword.control.statement.renpy' - end: '(\\n|\\()|#' - endCaptures: + 'name': 'keyword.control.statement.renpy' + 'end': '(\\n|\\()|#' + 'endCaptures': '1': - name: 'punctuation.definition.inheritance.end.python' + 'name': 'punctuation.definition.inheritance.end.python' '2': - name: 'punctuation.section.class.begin.python' + 'name': 'punctuation.section.class.begin.python' '3': - name: 'invalid.illegal.missing-section-begin.python' - name: 'meta.class.python' - patterns: [ + 'name': 'invalid.illegal.missing-section-begin.python' + 'name': 'meta.class.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.type.class.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.type.class.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_class' + 'include': '#entity_name_class' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.inheritance.begin.python' - contentName: 'meta.class.inheritance.python' - end: '(?=\\)|:)' - patterns: [ + 'name': 'punctuation.definition.inheritance.begin.python' + 'contentName': 'meta.class.inheritance.python' + 'end': '(?=\\)|:)' + 'patterns': [ { - begin: '(?<=\\(|,)\\s*' - contentName: 'entity.other.inherited-class.python' - end: '\\s*(?:(,)|(?=\\)))' - endCaptures: + 'begin': '(?<=\\(|,)\\s*' + 'contentName': 'entity.other.inherited-class.python' + 'end': '\\s*(?:(,)|(?=\\)))' + 'endCaptures': '1': - name: 'punctuation.separator.inheritance.python' - patterns: [ + 'name': 'punctuation.separator.inheritance.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } @@ -427,48 +427,48 @@ patterns: [ ] } { - begin: '((define)|(image)|(scene)|(show)|(hide))\\s+((\\s)|(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*))' - beginCaptures: + 'begin': '((define)|(image)|(scene)|(show)|(hide))\\s+((\\s)|(?=[a-zA-Z_][a-zA-Z_0-9]*\\s*))' + 'beginCaptures': '1': - name: 'keyword.control.statement.renpy' - end: '(\\=)|(\\s)|(\\s*$\\n?|#.*$\\n?)' - endCaptures: + 'name': 'keyword.control.statement.renpy' + 'end': '(\\=)|(\\s)|(\\s*$\\n?|#.*$\\n?)' + 'endCaptures': '1': - name: 'punctuation.definition.inheritance.end.python' + 'name': 'punctuation.definition.inheritance.end.python' '2': - name: 'punctuation.section.class.begin.python' + 'name': 'punctuation.section.class.begin.python' '3': - name: 'invalid.illegal.missing-section-begin.python' - name: 'meta.class.python' - patterns: [ + 'name': 'invalid.illegal.missing-section-begin.python' + 'name': 'meta.class.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.type.class.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.type.class.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_class' + 'include': '#entity_name_class' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.inheritance.begin.python' - contentName: 'meta.class.inheritance.python' - end: '(?=\\)|:|)' - patterns: [ + 'name': 'punctuation.definition.inheritance.begin.python' + 'contentName': 'meta.class.inheritance.python' + 'end': '(?=\\)|:|)' + 'patterns': [ { - begin: '(?<=\\(|,)\\s*' - contentName: 'entity.other.inherited-class.python' - end: '\\s*(?:(,)|(?=\\)))' - endCaptures: + 'begin': '(?<=\\(|,)\\s*' + 'contentName': 'entity.other.inherited-class.python' + 'end': '\\s*(?:(,)|(?=\\)))' + 'endCaptures': '1': - name: 'punctuation.separator.inheritance.python' - patterns: [ + 'name': 'punctuation.separator.inheritance.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } @@ -477,1387 +477,1387 @@ patterns: [ ] } { - begin: '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9])' - beginCaptures: + 'begin': '^\\s*(class)\\s+(?=[a-zA-Z_][a-zA-Z_0-9])' + 'beginCaptures': '1': - name: 'storage.type.class.python' - end: '(\\()|(\\s*$\\n?|#.*$\\n?)' - endCaptures: + 'name': 'storage.type.class.python' + 'end': '(\\()|(\\s*$\\n?|#.*$\\n?)' + 'endCaptures': '1': - name: 'punctuation.definition.inheritance.begin.python' + 'name': 'punctuation.definition.inheritance.begin.python' '2': - name: 'invalid.illegal.missing-inheritance.python' - name: 'meta.class.python' - patterns: [ + 'name': 'invalid.illegal.missing-inheritance.python' + 'name': 'meta.class.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.type.class.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.type.class.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_function' + 'include': '#entity_name_function' } ] } ] } { - begin: '^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*\\s*\\()' - beginCaptures: + 'begin': '^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*\\s*\\()' + 'beginCaptures': '1': - name: 'storage.type.function.python' - end: '(\\))\\s*(?:(\\:)|(.*$\\n?))' - endCaptures: + 'name': 'storage.type.function.python' + 'end': '(\\))\\s*(?:(\\:)|(.*$\\n?))' + 'endCaptures': '1': - name: 'punctuation.definition.parameters.end.python' + 'name': 'punctuation.definition.parameters.end.python' '2': - name: 'punctuation.section.function.begin.python' + 'name': 'punctuation.section.function.begin.python' '3': - name: 'invalid.illegal.missing-section-begin.python' - name: 'meta.function.python' - patterns: [ + 'name': 'invalid.illegal.missing-section-begin.python' + 'name': 'meta.function.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.function.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.function.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_function' + 'include': '#entity_name_function' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.parameters.begin.python' - contentName: 'meta.function.parameters.python' - end: '(?=\\)\\s*\\:)' - patterns: [ + 'name': 'punctuation.definition.parameters.begin.python' + 'contentName': 'meta.function.parameters.python' + 'end': '(?=\\)\\s*\\:)' + 'patterns': [ { - include: '#keyword_arguments' + 'include': '#keyword_arguments' } { - captures: + 'captures': '1': - name: 'variable.parameter.function.python' + 'name': 'variable.parameter.function.python' '2': - name: 'punctuation.separator.parameters.python' - match: '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)]))' + 'name': 'punctuation.separator.parameters.python' + 'match': '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)]))' } ] } ] } { - begin: '^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)' - beginCaptures: + 'begin': '^\\s*(def)\\s+(?=[A-Za-z_][A-Za-z0-9_]*)' + 'beginCaptures': '1': - name: 'storage.type.function.python' - end: '(\\()|\\s*($\\n?|#.*$\\n?)' - endCaptures: + 'name': 'storage.type.function.python' + 'end': '(\\()|\\s*($\\n?|#.*$\\n?)' + 'endCaptures': '1': - name: 'punctuation.definition.parameters.begin.python' + 'name': 'punctuation.definition.parameters.begin.python' '2': - name: 'invalid.illegal.missing-parameters.python' - name: 'meta.function.python' - patterns: [ + 'name': 'invalid.illegal.missing-parameters.python' + 'name': 'meta.function.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*)' - contentName: 'entity.name.function.python' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*)' + 'contentName': 'entity.name.function.python' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#entity_name_function' + 'include': '#entity_name_function' } ] } ] } { - begin: '(lambda)(?=\\s+)' - beginCaptures: + 'begin': '(lambda)(?=\\s+)' + 'beginCaptures': '1': - name: 'storage.type.function.inline.python' - end: '(\\:)' - endCaptures: + 'name': 'storage.type.function.inline.python' + 'end': '(\\:)' + 'endCaptures': '1': - name: 'punctuation.definition.parameters.end.python' + 'name': 'punctuation.definition.parameters.end.python' '2': - name: 'punctuation.section.function.begin.python' + 'name': 'punctuation.section.function.begin.python' '3': - name: 'invalid.illegal.missing-section-begin.python' - name: 'meta.function.inline.python' - patterns: [ + 'name': 'invalid.illegal.missing-section-begin.python' + 'name': 'meta.function.inline.python' + 'patterns': [ { - begin: '\\s+' - contentName: 'meta.function.inline.parameters.python' - end: '(?=\\:)' - patterns: [ + 'begin': '\\s+' + 'contentName': 'meta.function.inline.parameters.python' + 'end': '(?=\\:)' + 'patterns': [ { - include: '#keyword_arguments' + 'include': '#keyword_arguments' } { - captures: + 'captures': '1': - name: 'variable.parameter.function.python' + 'name': 'variable.parameter.function.python' '2': - name: 'punctuation.separator.parameters.python' - match: '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)\\:]))' + 'name': 'punctuation.separator.parameters.python' + 'match': '\\b([a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(,)|(?=[\\n\\)\\:]))' } ] } ] } { - begin: '^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()' - comment: 'a decorator may be a function call which returns a decorator.' - end: '(\\))' - endCaptures: + 'begin': '^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()' + 'comment': 'a decorator may be a function call which returns a decorator.' + 'end': '(\\))' + 'endCaptures': '1': - name: 'punctuation.definition.arguments.end.python' - name: 'meta.function.decorator.python' - patterns: [ + 'name': 'punctuation.definition.arguments.end.python' + 'name': 'meta.function.decorator.python' + 'patterns': [ { - begin: '(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()' - beginCaptures: + 'begin': '(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.decorator.python' - contentName: 'entity.name.function.decorator.python' - end: '(?=\\s*\\()' - patterns: [ + 'name': 'punctuation.definition.decorator.python' + 'contentName': 'entity.name.function.decorator.python' + 'end': '(?=\\s*\\()' + 'patterns': [ { - include: '#dotted_name' + 'include': '#dotted_name' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.arguments.begin.python' - contentName: 'meta.function.decorator.arguments.python' - end: '(?=\\))' - patterns: [ + 'name': 'punctuation.definition.arguments.begin.python' + 'contentName': 'meta.function.decorator.arguments.python' + 'end': '(?=\\))' + 'patterns': [ { - include: '#keyword_arguments' + 'include': '#keyword_arguments' } { - include: '$self' + 'include': '$self' } ] } ] } { - begin: '^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*)' - contentName: 'entity.name.function.decorator.python' - end: '(?=\\s|$\\n?|#)' - name: 'meta.function.decorator.python' - patterns: [ + 'begin': '^\\s*(?=@\\s*[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*)' + 'contentName': 'entity.name.function.decorator.python' + 'end': '(?=\\s|$\\n?|#)' + 'name': 'meta.function.decorator.python' + 'patterns': [ { - begin: '(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)' - beginCaptures: + 'begin': '(?=(@)\\s*[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)*)' + 'beginCaptures': '1': - name: 'punctuation.definition.decorator.python' - end: '(?=\\s|$\\n?|#)' - patterns: [ + 'name': 'punctuation.definition.decorator.python' + 'end': '(?=\\s|$\\n?|#)' + 'patterns': [ { - include: '#dotted_name' + 'include': '#dotted_name' } ] } ] } { - begin: '(?<=\\)|\\])\\s*(\\()' - beginCaptures: + 'begin': '(?<=\\)|\\])\\s*(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.arguments.begin.python' - contentName: 'meta.function-call.arguments.python' - end: '(\\))' - endCaptures: + 'name': 'punctuation.definition.arguments.begin.python' + 'contentName': 'meta.function-call.arguments.python' + 'end': '(\\))' + 'endCaptures': '1': - name: 'punctuation.definition.arguments.end.python' - name: 'meta.function-call.python' - patterns: [ + 'name': 'punctuation.definition.arguments.end.python' + 'name': 'meta.function-call.python' + 'patterns': [ { - include: '#keyword_arguments' + 'include': '#keyword_arguments' } { - include: '$self' + 'include': '$self' } ] } { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()' - end: '(\\))' - endCaptures: + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\()' + 'end': '(\\))' + 'endCaptures': '1': - name: 'punctuation.definition.arguments.end.python' - name: 'meta.function-call.python' - patterns: [ + 'name': 'punctuation.definition.arguments.end.python' + 'name': 'meta.function-call.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()' - end: '(?=\\s*\\()' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\()' + 'end': '(?=\\s*\\()' + 'patterns': [ { - include: '#dotted_name' + 'include': '#dotted_name' } ] } { - begin: '(\\()' - beginCaptures: + 'begin': '(\\()' + 'beginCaptures': '1': - name: 'punctuation.definition.arguments.begin.python' - contentName: 'meta.function-call.arguments.python' - end: '(?=\\))' - patterns: [ + 'name': 'punctuation.definition.arguments.begin.python' + 'contentName': 'meta.function-call.arguments.python' + 'end': '(?=\\))' + 'patterns': [ { - include: '#keyword_arguments' + 'include': '#keyword_arguments' } { - include: '$self' + 'include': '$self' } ] } ] } { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\[)' - end: '(\\])' - endCaptures: + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*\\s*\\[)' + 'end': '(\\])' + 'endCaptures': '1': - name: 'punctuation.definition.arguments.end.python' - name: 'meta.item-access.python' - patterns: [ + 'name': 'punctuation.definition.arguments.end.python' + 'name': 'meta.item-access.python' + 'patterns': [ { - begin: '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\[)' - end: '(?=\\s*\\[)' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*\\s*\\[)' + 'end': '(?=\\s*\\[)' + 'patterns': [ { - include: '#dotted_name' + 'include': '#dotted_name' } ] } { - begin: '(\\[)' - beginCaptures: + 'begin': '(\\[)' + 'beginCaptures': '1': - name: 'punctuation.definition.arguments.begin.python' - contentName: 'meta.item-access.arguments.python' - end: '(?=\\])' - patterns: [ + 'name': 'punctuation.definition.arguments.begin.python' + 'contentName': 'meta.item-access.arguments.python' + 'end': '(?=\\])' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } ] } { - begin: '(?<=\\)|\\])\\s*(\\[)' - beginCaptures: + 'begin': '(?<=\\)|\\])\\s*(\\[)' + 'beginCaptures': '1': - name: 'punctuation.definition.arguments.begin.python' - contentName: 'meta.item-access.arguments.python' - end: '(\\])' - endCaptures: + 'name': 'punctuation.definition.arguments.begin.python' + 'contentName': 'meta.item-access.arguments.python' + 'end': '(\\])' + 'endCaptures': '1': - name: 'punctuation.definition.arguments.end.python' - name: 'meta.item-access.python' - patterns: [ + 'name': 'punctuation.definition.arguments.end.python' + 'name': 'meta.item-access.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } { - captures: + 'captures': '1': - name: 'keyword.control.statement.renpy' - match: '\\b(menu)\\b' + 'name': 'keyword.control.statement.renpy' + 'match': '\\b(menu)\\b' } { - captures: + 'captures': '1': - name: 'storage.type.function.python' - match: '\\b(def|lambda)\\b' + 'name': 'storage.type.function.python' + 'match': '\\b(def|lambda)\\b' } { - captures: + 'captures': '1': - name: 'storage.type.class.python' - match: '\\b(class)\\b' + 'name': 'storage.type.class.python' + 'match': '\\b(class)\\b' } { - include: '#line_continuation' + 'include': '#line_continuation' } { - include: '#language_variables' + 'include': '#language_variables' } { - match: '\\b(None|True|False|Ellipsis|NotImplemented)\\b' - name: 'constant.language.python' + 'match': '\\b(None|True|False|Ellipsis|NotImplemented)\\b' + 'name': 'constant.language.python' } { - match: '\\b(no_action|yes_action|no_action)\\b' - name: 'constant.language.python' + 'match': '\\b(no_action|yes_action|no_action)\\b' + 'name': 'constant.language.python' } { - include: '#string_quoted_single' + 'include': '#string_quoted_single' } { - include: '#string_quoted_double' + 'include': '#string_quoted_double' } { - include: '#dotted_name' + 'include': '#dotted_name' } { - begin: '(\\()' - end: '(\\))' - patterns: [ + 'begin': '(\\()' + 'end': '(\\))' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } { - captures: + 'captures': '1': - name: 'punctuation.definition.list.begin.python' + 'name': 'punctuation.definition.list.begin.python' '2': - name: 'meta.empty-list.python' + 'name': 'meta.empty-list.python' '3': - name: 'punctuation.definition.list.end.python' - match: '(\\[)(\\s*(\\]))\\b' + 'name': 'punctuation.definition.list.end.python' + 'match': '(\\[)(\\s*(\\]))\\b' } { - begin: '(\\[)' - beginCaptures: + 'begin': '(\\[)' + 'beginCaptures': '1': - name: 'punctuation.definition.list.begin.python' - end: '(\\])' - endCaptures: + 'name': 'punctuation.definition.list.begin.python' + 'end': '(\\])' + 'endCaptures': '1': - name: 'punctuation.definition.list.end.python' - name: 'meta.structure.list.python' - patterns: [ + 'name': 'punctuation.definition.list.end.python' + 'name': 'meta.structure.list.python' + 'patterns': [ { - begin: '(?<=\\[|\\,)\\s*(?![\\],])' - contentName: 'meta.structure.list.item.python' - end: '\\s*(?:(,)|(?=\\]))' - endCaptures: + 'begin': '(?<=\\[|\\,)\\s*(?![\\],])' + 'contentName': 'meta.structure.list.item.python' + 'end': '\\s*(?:(,)|(?=\\]))' + 'endCaptures': '1': - name: 'punctuation.separator.list.python' - patterns: [ + 'name': 'punctuation.separator.list.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } ] } { - captures: + 'captures': '1': - name: 'punctuation.definition.tuple.begin.python' + 'name': 'punctuation.definition.tuple.begin.python' '2': - name: 'meta.empty-tuple.python' + 'name': 'meta.empty-tuple.python' '3': - name: 'punctuation.definition.tuple.end.python' - match: '(\\()(\\s*(\\)))' - name: 'meta.structure.tuple.python' + 'name': 'punctuation.definition.tuple.end.python' + 'match': '(\\()(\\s*(\\)))' + 'name': 'meta.structure.tuple.python' } { - captures: + 'captures': '1': - name: 'punctuation.definition.dictionary.begin.python' + 'name': 'punctuation.definition.dictionary.begin.python' '2': - name: 'meta.empty-dictionary.python' + 'name': 'meta.empty-dictionary.python' '3': - name: 'punctuation.definition.dictionary.end.python' - match: '(\\{)(\\s*(\\}))' - name: 'meta.structure.dictionary.python' + 'name': 'punctuation.definition.dictionary.end.python' + 'match': '(\\{)(\\s*(\\}))' + 'name': 'meta.structure.dictionary.python' } { - begin: '(\\{)' - beginCaptures: + 'begin': '(\\{)' + 'beginCaptures': '1': - name: 'punctuation.definition.dictionary.begin.python' - end: '(\\})' - endCaptures: + 'name': 'punctuation.definition.dictionary.begin.python' + 'end': '(\\})' + 'endCaptures': '1': - name: 'punctuation.definition.dictionary.end.python' - name: 'meta.structure.dictionary.python' - patterns: [ + 'name': 'punctuation.definition.dictionary.end.python' + 'name': 'meta.structure.dictionary.python' + 'patterns': [ { - begin: '(?<=\\{|\\,|^)\\s*(?![\\},])' - contentName: 'meta.structure.dictionary.key.python' - end: '\\s*(?:(?=\\})|(\\:))' - endCaptures: + 'begin': '(?<=\\{|\\,|^)\\s*(?![\\},])' + 'contentName': 'meta.structure.dictionary.key.python' + 'end': '\\s*(?:(?=\\})|(\\:))' + 'endCaptures': '1': - name: 'punctuation.separator.valuepair.dictionary.python' - patterns: [ + 'name': 'punctuation.separator.valuepair.dictionary.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } { - begin: '(?<=\\:|^)\\s*' - contentName: 'meta.structure.dictionary.value.python' - end: '\\s*(?:(?=\\})|(,))' - endCaptures: + 'begin': '(?<=\\:|^)\\s*' + 'contentName': 'meta.structure.dictionary.value.python' + 'end': '\\s*(?:(?=\\})|(,))' + 'endCaptures': '1': - name: 'punctuation.separator.dictionary.python' - patterns: [ + 'name': 'punctuation.separator.dictionary.python' + 'patterns': [ { - include: '$self' + 'include': '$self' } ] } ] } ] -repository: +'repository': 'builtin_exceptions': - match: '(?x)\\b(\n\t\t\t\t(\n\t\t\t\t\tArithmetic|Assertion|Attribute|BlockingIO|BrokenPipe|Buffer|ChildProcess|\n\t\t\t\t\tConnection(Aborted|Refused|Reset)?|EOF|Environment|FileExists|\n\t\t\t\t\tFileNotFound|FloatingPoint|Interrupted|IO|IsADirectoryError|\n\t\t\t\t\tImport|Indentation|Index|Key|Lookup|Memory|Name|NotADirectory|\n\t\t\t\t\tNotImplemented|OS|Overflow|Permission|ProcessLookup|Reference|\n\t\t\t\t\tRuntime|Standard|Syntax|System|Tab|Timeout|Type|UnboundLocal|\n\t\t\t\t\tUnicode(Encode|Decode|Translate)?|Value|VMS|Windows|ZeroDivision\n\t\t\t\t)Error|\n\t\t\t\t((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes)?Warning|\n\t\t\t\t(Base)?Exception|\n\t\t\t\tSystemExit|StopIteration|NotImplemented|KeyboardInterrupt|GeneratorExit\n\t\t\t)\\b' - name: 'support.type.exception.python' + 'match': '(?x)\\b(\n\t\t\t\t(\n\t\t\t\t\tArithmetic|Assertion|Attribute|BlockingIO|BrokenPipe|Buffer|ChildProcess|\n\t\t\t\t\tConnection(Aborted|Refused|Reset)?|EOF|Environment|FileExists|\n\t\t\t\t\tFileNotFound|FloatingPoint|Interrupted|IO|IsADirectoryError|\n\t\t\t\t\tImport|Indentation|Index|Key|Lookup|Memory|Name|NotADirectory|\n\t\t\t\t\tNotImplemented|OS|Overflow|Permission|ProcessLookup|Reference|\n\t\t\t\t\tRuntime|Standard|Syntax|System|Tab|Timeout|Type|UnboundLocal|\n\t\t\t\t\tUnicode(Encode|Decode|Translate)?|Value|VMS|Windows|ZeroDivision\n\t\t\t\t)Error|\n\t\t\t\t((Pending)?Deprecation|Runtime|Syntax|User|Future|Import|Unicode|Bytes)?Warning|\n\t\t\t\t(Base)?Exception|\n\t\t\t\tSystemExit|StopIteration|NotImplemented|KeyboardInterrupt|GeneratorExit\n\t\t\t)\\b' + 'name': 'support.type.exception.python' 'builtin_functions': - match: '(?x)\\b(\n\t\t\t\t__import__|all|abs|any|apply|ascii|bin|callable|chr|classmethod|cmp|coerce|\n\t\t\t\tcompile|delattr|dir|divmod|enumerate|eval|execfile|filter|format|getattr|\n\t\t\t\tglobals|hasattr|hash|help|hex|id|input|intern|isinstance|issubclass|iter|\n\t\t\t\tlen|locals|map|max|min|next|oct|open|ord|pow|print|property|range|\n\t\t\t\traw_input|reduce|reload|repr|reversed|round|setattr|sorted|staticmethod|\n\t\t\t\tsum|super|type|unichr|vars|zip\n\t\t\t)\\b' - name: 'support.function.builtin.python' + 'match': '(?x)\\b(\n\t\t\t\t__import__|all|abs|any|apply|ascii|bin|callable|chr|classmethod|cmp|coerce|\n\t\t\t\tcompile|delattr|dir|divmod|enumerate|eval|execfile|filter|format|getattr|\n\t\t\t\tglobals|hasattr|hash|help|hex|id|input|intern|isinstance|issubclass|iter|\n\t\t\t\tlen|locals|map|max|min|next|oct|open|ord|pow|print|property|range|\n\t\t\t\traw_input|reduce|reload|repr|reversed|round|setattr|sorted|staticmethod|\n\t\t\t\tsum|super|type|unichr|vars|zip\n\t\t\t)\\b' + 'name': 'support.function.builtin.python' 'builtin_types': - match: '(?x)\\b(\n\t\t\t\tbasestring|bool|buffer|bytearray|bytes|complex|dict|float|frozenset|int|\n\t\t\t\tlist|long|memoryview|object|range|set|slice|str|tuple|unicode|xrange\n\t\t\t)\\b' - name: 'support.type.python' + 'match': '(?x)\\b(\n\t\t\t\tbasestring|bool|buffer|bytearray|bytes|complex|dict|float|frozenset|int|\n\t\t\t\tlist|long|memoryview|object|range|set|slice|str|tuple|unicode|xrange\n\t\t\t)\\b' + 'name': 'support.type.python' 'constant_placeholder': - match: '(?i:(%(\\([a-z_]+\\))?#?0?\\-?[ ]?\\+?([0-9]*|\\*)(\\.([0-9]*|\\*))?([hL][a-z]|[a-z%]))|(\\{([#=\\-\\+!\\[\\].:\\w ]+)?\\})|(\\{\\/([!\\[\\].:\\w ]+)?\\})|(\\[([!\\[\\].:\\w ]+)?\\]))' - name: 'constant.character.escape.tags.renpy' + 'match': '(?i:(%(\\([a-z_]+\\))?#?0?\\-?[ ]?\\+?([0-9]*|\\*)(\\.([0-9]*|\\*))?([hL][a-z]|[a-z%]))|(\\{([#=\\-\\+!\\[\\].:\\w ]+)?\\})|(\\{\\/([!\\[\\].:\\w ]+)?\\})|(\\[([!\\[\\].:\\w ]+)?\\]))' + 'name': 'constant.character.escape.tags.renpy' 'docstrings': - patterns: [ + 'patterns': [ { - begin: '^\\s*(?=[uU]?[rR]?""")' - end: '(?<=""")' - name: 'comment.block.python' - patterns: [ + 'begin': '^\\s*(?=[uU]?[rR]?""")' + 'end': '(?<=""")' + 'name': 'comment.block.python' + 'patterns': [ { - include: '#string_quoted_double' + 'include': '#string_quoted_double' } ] } { - begin: '^\\s*(?=[uU]?[rR]?\'\'\')' - end: '(?<=\'\'\')' - name: 'comment.block.python' - patterns: [ + 'begin': '^\\s*(?=[uU]?[rR]?\'\'\')' + 'end': '(?<=\'\'\')' + 'name': 'comment.block.python' + 'patterns': [ { - include: '#string_quoted_single' + 'include': '#string_quoted_single' } ] } ] 'dotted_name': - begin: '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*)' - end: '(?![A-Za-z0-9_\\.])' - patterns: [ + 'begin': '(?=[A-Za-z_][A-Za-z0-9_]*(?:\\.[A-Za-z_][A-Za-z0-9_]*)*)' + 'end': '(?![A-Za-z0-9_\\.])' + 'patterns': [ { - begin: '(\\.)(?=[A-Za-z_][A-Za-z0-9_]*)' - end: '(?![A-Za-z0-9_])' - patterns: [ + 'begin': '(\\.)(?=[A-Za-z_][A-Za-z0-9_]*)' + 'end': '(?![A-Za-z0-9_])' + 'patterns': [ { - include: '#magic_function_names' + 'include': '#magic_function_names' } { - include: '#magic_variable_names' + 'include': '#magic_variable_names' } { - include: '#illegal_names' + 'include': '#illegal_names' } { - include: '#generic_names' + 'include': '#generic_names' } ] } { - begin: '(?