github-linguist 7.2.0 → 7.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/documentation.markdown.injection.haxe.json +22 -0
  3. data/grammars/etc.json +7 -0
  4. data/grammars/file.lasso.json +3 -1
  5. data/grammars/source.abap.json +111 -21
  6. data/grammars/source.ats.json +17 -87
  7. data/grammars/source.ballerina.json +1 -1
  8. data/grammars/source.clarion.json +6 -6
  9. data/grammars/source.editorconfig.json +322 -0
  10. data/grammars/source.gfm.json +3 -1
  11. data/grammars/source.hx.json +1 -1
  12. data/grammars/source.hxml.json +4 -4
  13. data/grammars/source.hy.json +429 -0
  14. data/grammars/source.js.jsx.json +3 -1
  15. data/grammars/source.jsonnet.json +197 -0
  16. data/grammars/source.kotlin.json +23 -2
  17. data/grammars/source.mcfunction-snapshot.json +3053 -0
  18. data/grammars/source.mcfunction.json +1260 -0
  19. data/grammars/source.modula-3.json +1 -1
  20. data/grammars/source.reason.json +3 -0
  21. data/grammars/source.renpy.json +4 -4
  22. data/grammars/source.scheme.json +1 -1
  23. data/grammars/source.solidity.json +189 -0
  24. data/grammars/source.ssh-config.json +110 -0
  25. data/grammars/source.ts.json +6 -3
  26. data/grammars/source.tsx.json +6 -3
  27. data/grammars/source.viml.json +4 -0
  28. data/grammars/source.vyper.json +213 -0
  29. data/grammars/source.zig.json +1 -1
  30. data/grammars/text.conllu.json +45 -0
  31. data/grammars/text.html.basic.json +3 -1
  32. data/grammars/text.html.vue.json +6 -2
  33. data/grammars/text.rtf.json +143 -0
  34. data/grammars/version +1 -1
  35. data/lib/linguist/VERSION +1 -1
  36. data/lib/linguist/generated.rb +5 -5
  37. data/lib/linguist/heuristics.yml +12 -5
  38. data/lib/linguist/languages.json +1 -1
  39. data/lib/linguist/languages.yml +54 -2
  40. data/lib/linguist/samples.json +3151 -247
  41. metadata +13 -2
@@ -8,7 +8,7 @@
8
8
  },
9
9
  {
10
10
  "name": "constant.language.modula-3",
11
- "match": "\\b(ABS|ADDRESS|ADR|ADRSIZE|ANY|BITSIZE|BOOLEAN|BYTESIZE|CARDINAL|CEILING|CHAR|DEC|DISPOSE|EXTENDED|FALSE|FIRST|FLOAT|FLOOR|INC|INTEGER|IS|LAST|LONGREAL|LOOPHOLE|MAX|MIN|MUTEX|NARROW|NEW|NIL|NULL|NUMBER|ORD|REAL|REF|REFANY|ROOT|ROUND|SUBARRAY|TEXT|TRUE|TRUNC|TYPE|TYPECODE|VAL)\\b"
11
+ "match": "\\b(ABS|ADDRESS|ADR|ADRSIZE|ANY|BITSIZE|BOOLEAN|BYTESIZE|CARDINAL|CEILING|CHAR|DEC|DISPOSE|EXTENDED|FALSE|FIRST|FLOAT|FLOOR|INC|INTEGER|ISTYPE|LAST|LONGREAL|LOOPHOLE|MAX|MIN|MUTEX|NARROW|NEW|NIL|NULL|NUMBER|ORD|REAL|REF|REFANY|ROOT|ROUND|SUBARRAY|TEXT|TRUE|TRUNC|TYPECODE|VAL)\\b"
12
12
  },
13
13
  {
14
14
  "name": "constant.language.cm3_specific.modula-3",
@@ -302,6 +302,9 @@
302
302
  },
303
303
  {
304
304
  "include": "#jsx-body"
305
+ },
306
+ {
307
+ "include": "#comment"
305
308
  }
306
309
  ],
307
310
  "beginCaptures": {
@@ -473,15 +473,15 @@
473
473
  },
474
474
  {
475
475
  "name": "keyword.python.renpy",
476
- "match": "\\b(\\$|add|and|animation|as|assert|at|attribute|attributeimage|auto|bar|behind|block|break|button|call|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|init|input|is|jump|key|knot|label|lambda|menu|mousearea|music|new|nointeract|not|null|nvl|offset|old|on|onlayer|or|parallel|pass|pause|play|print|python|queue|raise|repeat|return|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"
476
+ "match": "\\b(\\$|add|always|and|animation|as|assert|at|attribute|auto|bar|behind|block|break|button|call|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"
477
477
  },
478
478
  {
479
479
  "name": "entity.other.attribute-name.python.renpy",
480
- "match": "\\b((?:action|activate_sound|adjustment|allow|alpha|alternate|alternate_keysym|arguments|arrowkeys|at|auto|cache|caption|changed|child_size|clicked|cols|default|drag_handle|drag_joined|drag_name|drag_offscreen|drag_raise|draggable|dragged|droppable|dropped|edgescroll|exclude|focus|focus_mask|ground|height|hover|hovered|id|idle|image_style|insensitive|keysym|layer|length|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|transpose|unhovered|value|variant|width|xadjustment|xinitial|yadjustment|yinitial|zorder))\\b"
480
+ "match": "\\b((?:action|activate_sound|activated|adjustment|allow|alpha|alternate|alternate_keysym|arguments|arrowkeys|at|auto|cache|caption|changed|child_size|clicked|cols|copypaste|default|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|id|idle|image_style|insensitive|keysym|layer|length|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|transpose|unhovered|value|variant|width|xadjustment|xinitial|yadjustment|yinitial|zorder))\\b"
481
481
  },
482
482
  {
483
483
  "name": "entity.other.attribute-name.python.renpy",
484
- "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|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_layout|box_reverse|box_wrap|child|clipping|color|corner1|corner2|crop|crop_relative|debug|delay|drop_shadow|drop_shadow_color|events|first_indent|first_spacing|fit_first|focus_mask|font|foreground|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|maximum|maxsize|min_width|minimum|minwidth|mouse|nearest|newline_indent|offset|order_reverse|outlines|padding|pos|radius|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|size|size_group|slow_abortable|slow_cps|slow_cps_multiplier|sound|spacing|strikethrough|subpixel|text_align|text_y_fudge|thumb|thumb_offset|thumb_shadow|tooltip|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))\\b"
484
+ "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|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_first|focus_mask|font|foreground|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|maximum|maxsize|min_width|minimum|minwidth|mouse|nearest|newline_indent|offset|order_reverse|outline_scaling|outlines|padding|pos|radius|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|size|size_group|slow_abortable|slow_cps|slow_cps_multiplier|sound|spacing|strikethrough|subpixel|text_align|text_y_fudge|thumb|thumb_offset|thumb_shadow|tooltip|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))\\b"
485
485
  },
486
486
  {
487
487
  "name": "entity.other.attribute-name.python.renpy",
@@ -493,7 +493,7 @@
493
493
  },
494
494
  {
495
495
  "name": "entity.other.attribute-name.python.renpy",
496
- "match": "\\b(text_(?:|activate_|hover_|idle_|insensitive_|selected_|selected_activate_|selected_hover_|selected_idle_|selected_insensitive_)(?:adjust_spacing|align|alt|anchor|antialias|area|black_color|bold|clipping|color|debug|drop_shadow|drop_shadow_color|first_indent|font|hinting|hyperlink_functions|italic|justify|kerning|language|layout|line_leading|line_spacing|maximum|min_width|minimum|minwidth|newline_indent|offset|outlines|pos|rest_indent|ruby_style|size|slow_abortable|slow_cps|slow_cps_multiplier|strikethrough|text_align|text_y_fudge|tooltip|underline|vertical|xalign|xanchor|xcenter|xfill|xmaximum|xminimum|xoffset|xpos|xsize|xysize|yalign|yanchor|ycenter|yfill|ymaximum|yminimum|yoffset|ypos|ysize))\\b"
496
+ "match": "\\b(text_(?:|activate_|hover_|idle_|insensitive_|selected_|selected_activate_|selected_hover_|selected_idle_|selected_insensitive_)(?:adjust_spacing|align|alt|anchor|antialias|area|black_color|bold|clipping|color|debug|drop_shadow|drop_shadow_color|first_indent|font|hinting|hyperlink_functions|italic|justify|kerning|language|layout|line_leading|line_spacing|maximum|min_width|minimum|minwidth|newline_indent|offset|outline_scaling|outlines|pos|rest_indent|ruby_style|size|slow_abortable|slow_cps|slow_cps_multiplier|strikethrough|text_align|text_y_fudge|tooltip|underline|vertical|xalign|xanchor|xcenter|xfill|xmaximum|xminimum|xoffset|xpos|xsize|xysize|yalign|yanchor|ycenter|yfill|ymaximum|yminimum|yoffset|ypos|ysize))\\b"
497
497
  },
498
498
  {
499
499
  "name": "entity.other.attribute-name.python.renpy",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "illegal": {
59
59
  "name": "invalid.illegal.parenthesis.scheme",
60
- "match": "[()\\[\\]]"
60
+ "match": "[()]"
61
61
  },
62
62
  "language-functions": {
63
63
  "patterns": [
@@ -0,0 +1,189 @@
1
+ {
2
+ "name": "Solidity",
3
+ "scopeName": "source.solidity",
4
+ "patterns": [
5
+ {
6
+ "name": "comment",
7
+ "match": "\\/\\/.*"
8
+ },
9
+ {
10
+ "name": "comment",
11
+ "begin": "(\\/\\*)",
12
+ "end": "(\\*\\/)"
13
+ },
14
+ {
15
+ "name": "keyword.control",
16
+ "match": "\\b(event|enum)\\s+([A-Za-z_]\\w*)\\b",
17
+ "captures": {
18
+ "2": {
19
+ "name": "support.function"
20
+ }
21
+ }
22
+ },
23
+ {
24
+ "name": "keyword.control",
25
+ "match": "\\b(contract|interface|library|using|struct|function|constructor|modifier)(\\s+[A-Za-z_]\\w*)?(?:\\s+is\\s+((?:[A-Za-z_][\\,\\s]*)*))?\\b",
26
+ "captures": {
27
+ "2": {
28
+ "name": "entity.name.function"
29
+ },
30
+ "3": {
31
+ "name": "entity.name.function"
32
+ }
33
+ }
34
+ },
35
+ {
36
+ "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\s*(?:\\[(\\d*)\\])?\\s*(?:\\[(\\d*)\\])?\\s*(?:(indexed|memory|storage|calldata|payable)?\\s*(\\b[A-Za-z_]\\w*)\\s*)?(?=[,\\)])",
37
+ "captures": {
38
+ "1": {
39
+ "name": "constant.language"
40
+ },
41
+ "2": {
42
+ "name": "constant.numeric"
43
+ },
44
+ "3": {
45
+ "name": "constant.numeric"
46
+ },
47
+ "4": {
48
+ "name": "keyword.control"
49
+ },
50
+ "5": {
51
+ "name": "variable.parameter"
52
+ }
53
+ }
54
+ },
55
+ {
56
+ "match": "\\b(mapping)\\s*\\((.*)\\s+=\u003e\\s+(.*)\\)(\\s+(?:private|public|internal|external))?\\s+([A-Za-z_]\\w*)\\b",
57
+ "captures": {
58
+ "1": {
59
+ "name": "constant.language"
60
+ },
61
+ "2": {
62
+ "name": "constant.language"
63
+ },
64
+ "3": {
65
+ "name": "constant.language"
66
+ },
67
+ "4": {
68
+ "name": "keyword.control"
69
+ }
70
+ }
71
+ },
72
+ {
73
+ "name": "constant.language",
74
+ "match": "\\b(true|false)\\b"
75
+ },
76
+ {
77
+ "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)(?:\\s*\\[(\\d*)\\])?(?:\\s*\\[(\\d*)\\])?\\s*(private|public|internal|external|constant|memory|storage)?\\s+(?:[A-Za-z_]\\w*)\\s*[\\;\\=]",
78
+ "captures": {
79
+ "1": {
80
+ "name": "constant.language"
81
+ },
82
+ "2": {
83
+ "name": "constant.numeric"
84
+ },
85
+ "3": {
86
+ "name": "constant.numeric"
87
+ },
88
+ "4": {
89
+ "name": "keyword.control"
90
+ }
91
+ }
92
+ },
93
+ {
94
+ "name": "keyword.control",
95
+ "match": "\\b(var|import|constant|pragma|payable|storage|memory|calldata|if|else|for|while|do|break|continue|returns?|private|public|pure|view|internal|external|this|suicide|selfdestruct|delegatecall|emit|new|is|throw|revert|assert|require|\\_)\\b"
96
+ },
97
+ {
98
+ "match": "\\b([A-Za-z_]\\w*)\\s*\\:\\s*",
99
+ "captures": {
100
+ "1": {
101
+ "name": "variable.parameter"
102
+ }
103
+ }
104
+ },
105
+ {
106
+ "name": "keyword.control",
107
+ "match": "(=|!|\u003e|\u003c|\\||\u0026|\\?|:|\\^|~|\\*|\\+|\\-|\\/|\\%|\\bhex\\b)"
108
+ },
109
+ {
110
+ "match": "\\b(msg|block|tx|abi)\\.([A-Za-z_]\\w*)\\b",
111
+ "captures": {
112
+ "1": {
113
+ "name": "constant.language"
114
+ },
115
+ "2": {
116
+ "name": "constant.language"
117
+ }
118
+ }
119
+ },
120
+ {
121
+ "match": "\\b(now|delete)\\b",
122
+ "captures": {
123
+ "1": {
124
+ "name": "constant.language"
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "match": "\\b(blockhash|gasleft|addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\s*\\(",
130
+ "captures": {
131
+ "1": {
132
+ "name": "constant.language"
133
+ }
134
+ }
135
+ },
136
+ {
137
+ "match": "\\b([A-Za-z_]\\w*)(?:\\[(\\d*)\\])?(?:\\[(\\d*)\\])?\\(",
138
+ "captures": {
139
+ "1": {
140
+ "name": "support.function"
141
+ },
142
+ "2": {
143
+ "name": "constant.numeric"
144
+ },
145
+ "3": {
146
+ "name": "constant.numeric"
147
+ }
148
+ }
149
+ },
150
+ {
151
+ "match": "\\b\\.(length|selector)\\b",
152
+ "captures": {
153
+ "1": {
154
+ "name": "support.type"
155
+ }
156
+ }
157
+ },
158
+ {
159
+ "match": "\\b(\\d+)\\s+(wei|finney|szabo|ether|seconds|minutes|hours|days|weeks|years)\\b",
160
+ "captures": {
161
+ "1": {
162
+ "name": "constant.numeric"
163
+ },
164
+ "2": {
165
+ "name": "keyword.control"
166
+ }
167
+ }
168
+ },
169
+ {
170
+ "name": "string.quoted",
171
+ "match": "([\\\"\\'].*?[\\\"\\'])"
172
+ },
173
+ {
174
+ "match": "\\b(\\d+)(e\\d*)?\\b",
175
+ "captures": {
176
+ "1": {
177
+ "name": "constant.numeric"
178
+ },
179
+ "2": {
180
+ "name": "constant.numeric"
181
+ }
182
+ }
183
+ },
184
+ {
185
+ "name": "constant.numeric",
186
+ "match": "\\b(0[xX][a-fA-F0-9]+)\\b"
187
+ }
188
+ ]
189
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "SSH Config",
3
+ "scopeName": "source.ssh-config",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "boolean": {
11
+ "name": "constant.language.logical.boolean.${1:/downcase}.ssh-config",
12
+ "match": "(?i)(?\u003c=\\s|=)(yes|no|true|false|on|off)(?=\\s|$)"
13
+ },
14
+ "comment": {
15
+ "name": "comment.line.number-sign.ssh-config",
16
+ "begin": "#",
17
+ "end": "$",
18
+ "beginCaptures": {
19
+ "0": {
20
+ "name": "punctuation.definition.comment.ssh-config"
21
+ }
22
+ }
23
+ },
24
+ "equals": {
25
+ "match": "\\G\\s*(=)",
26
+ "captures": {
27
+ "1": {
28
+ "patterns": [
29
+ {
30
+ "include": "etc#eql"
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ },
36
+ "ip-address": {
37
+ "name": "constant.numeric.other.ip-address.ssh-config",
38
+ "match": "(?:\\d+\\.){3,}\\d+(?=\\s|$)",
39
+ "captures": {
40
+ "0": {
41
+ "patterns": [
42
+ {
43
+ "include": "etc#dot"
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ },
49
+ "main": {
50
+ "patterns": [
51
+ {
52
+ "include": "#comment"
53
+ },
54
+ {
55
+ "include": "#option"
56
+ }
57
+ ]
58
+ },
59
+ "option": {
60
+ "name": "meta.option.ssh-config",
61
+ "contentName": "meta.arguments.ssh-option",
62
+ "begin": "^\\s*([^\\s=]+)",
63
+ "end": "$",
64
+ "patterns": [
65
+ {
66
+ "include": "#equals"
67
+ },
68
+ {
69
+ "include": "#string"
70
+ },
71
+ {
72
+ "include": "#boolean"
73
+ },
74
+ {
75
+ "include": "#ip-address"
76
+ },
77
+ {
78
+ "include": "etc#int"
79
+ },
80
+ {
81
+ "include": "#unquoted"
82
+ }
83
+ ],
84
+ "beginCaptures": {
85
+ "1": {
86
+ "name": "entity.option.name.ssh-config"
87
+ }
88
+ }
89
+ },
90
+ "string": {
91
+ "name": "string.quoted.double.parameter.ssh-config",
92
+ "begin": "\"",
93
+ "end": "\"|(?=$)",
94
+ "beginCaptures": {
95
+ "0": {
96
+ "name": "punctuation.definition.string.begin.ssh-config"
97
+ }
98
+ },
99
+ "endCaptures": {
100
+ "0": {
101
+ "name": "punctuation.definition.string.end.ssh-config"
102
+ }
103
+ }
104
+ },
105
+ "unquoted": {
106
+ "name": "variable.parameter.argument.ssh-config",
107
+ "match": "(?!\")\\S+"
108
+ }
109
+ }
110
+ }
@@ -417,7 +417,7 @@
417
417
  },
418
418
  "class-expression": {
419
419
  "name": "meta.class.ts",
420
- "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(class)\\b(?=\\s+|[\u003c{]|\\/[\\/*])",
420
+ "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[\u003c{]|\\/[\\/*])",
421
421
  "end": "(?\u003c=\\})",
422
422
  "patterns": [
423
423
  {
@@ -426,6 +426,9 @@
426
426
  ],
427
427
  "beginCaptures": {
428
428
  "1": {
429
+ "name": "storage.modifier.ts"
430
+ },
431
+ "2": {
429
432
  "name": "storage.type.class.ts"
430
433
  }
431
434
  }
@@ -3622,7 +3625,7 @@
3622
3625
  "patterns": [
3623
3626
  {
3624
3627
  "name": "string.regexp.ts",
3625
- "begin": "(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3628
+ "begin": "(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3626
3629
  "end": "(/)([gimsuy]*)",
3627
3630
  "patterns": [
3628
3631
  {
@@ -3645,7 +3648,7 @@
3645
3648
  },
3646
3649
  {
3647
3650
  "name": "string.regexp.ts",
3648
- "begin": "(?\u003c![_$[:alnum:])\\]]|\\+\\+|--|})\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3651
+ "begin": "(?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3649
3652
  "end": "(/)([gimsuy]*)",
3650
3653
  "patterns": [
3651
3654
  {
@@ -365,7 +365,7 @@
365
365
  },
366
366
  "class-expression": {
367
367
  "name": "meta.class.tsx",
368
- "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(class)\\b(?=\\s+|[\u003c{]|\\/[\\/*])",
368
+ "begin": "(?\u003c![_$[:alnum:]])(?:(?\u003c=\\.\\.\\.)|(?\u003c!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[\u003c{]|\\/[\\/*])",
369
369
  "end": "(?\u003c=\\})",
370
370
  "patterns": [
371
371
  {
@@ -374,6 +374,9 @@
374
374
  ],
375
375
  "beginCaptures": {
376
376
  "1": {
377
+ "name": "storage.modifier.tsx"
378
+ },
379
+ "2": {
377
380
  "name": "storage.type.class.tsx"
378
381
  }
379
382
  }
@@ -3875,7 +3878,7 @@
3875
3878
  "patterns": [
3876
3879
  {
3877
3880
  "name": "string.regexp.tsx",
3878
- "begin": "(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3881
+ "begin": "(?\u003c!\\+\\+|--|})(?\u003c=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=\u003e|\u0026\u0026|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3879
3882
  "end": "(/)([gimsuy]*)",
3880
3883
  "patterns": [
3881
3884
  {
@@ -3898,7 +3901,7 @@
3898
3901
  },
3899
3902
  {
3900
3903
  "name": "string.regexp.tsx",
3901
- "begin": "(?\u003c![_$[:alnum:])\\]]|\\+\\+|--|})\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3904
+ "begin": "(?\u003c![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/[gimsuy]*(?!\\s*[a-zA-Z0-9_$]))",
3902
3905
  "end": "(/)([gimsuy]*)",
3903
3906
  "patterns": [
3904
3907
  {
@@ -276,6 +276,10 @@
276
276
  {
277
277
  "name": "storage.type.let.viml",
278
278
  "match": "\\blet\\b"
279
+ },
280
+ {
281
+ "name": "support.constant.vimball.use.viml",
282
+ "match": "(?\u003c=^|\\n)UseVimball(?=\\s*$)"
279
283
  }
280
284
  ]
281
285
  },
@@ -0,0 +1,213 @@
1
+ {
2
+ "name": "Vyper",
3
+ "scopeName": "source.vyper",
4
+ "patterns": [
5
+ {
6
+ "name": "comment",
7
+ "match": "\\#.*"
8
+ },
9
+ {
10
+ "name": "comment",
11
+ "begin": "(\\\"\\\"\\\")",
12
+ "end": "(\\\"\\\"\\\")"
13
+ },
14
+ {
15
+ "name": "keyword.control",
16
+ "match": "\\b(event|enum)\\s+([A-Za-z_]\\w*)\\b",
17
+ "captures": {
18
+ "2": {
19
+ "name": "support.function"
20
+ }
21
+ }
22
+ },
23
+ {
24
+ "name": "keyword.control",
25
+ "match": "\\b(contract|interface|library|using|struct|constructor|modifier)(\\s+[A-Za-z_]\\w*)?(?:\\s+is\\s+((?:[A-Za-z_][\\,\\s]*)*))?\\b",
26
+ "captures": {
27
+ "2": {
28
+ "name": "entity.name.function"
29
+ },
30
+ "3": {
31
+ "name": "entity.name.function"
32
+ }
33
+ }
34
+ },
35
+ {
36
+ "name": "storage.type.function",
37
+ "match": "\\b(def)(\\s+[A-Za-z_]\\w*)?(?:\\s+is\\s+((?:[A-Za-z_][\\,\\s]*)*))?\\b",
38
+ "captures": {
39
+ "2": {
40
+ "name": "entity.name.function"
41
+ },
42
+ "3": {
43
+ "name": "entity.name.function"
44
+ }
45
+ }
46
+ },
47
+ {
48
+ "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\s*(?:\\[(\\d*)\\])?\\s*(?:\\[(\\d*)\\])?\\s*(?:(indexed|memory|storage|calldata|payable)?\\s*(\\b[A-Za-z_]\\w*)\\s*)?(?=[,\\)])",
49
+ "captures": {
50
+ "1": {
51
+ "name": "constant.language"
52
+ },
53
+ "2": {
54
+ "name": "constant.numeric"
55
+ },
56
+ "3": {
57
+ "name": "constant.numeric"
58
+ },
59
+ "4": {
60
+ "name": "keyword.control"
61
+ },
62
+ "5": {
63
+ "name": "variable.parameter"
64
+ }
65
+ }
66
+ },
67
+ {
68
+ "match": "\\b(mapping)\\s*\\((.*)\\s+=\u003e\\s+(.*)\\)(\\s+(?:private|public|internal|external))?\\s+([A-Za-z_]\\w*)\\b",
69
+ "captures": {
70
+ "1": {
71
+ "name": "constant.language"
72
+ },
73
+ "2": {
74
+ "name": "constant.language"
75
+ },
76
+ "3": {
77
+ "name": "constant.language"
78
+ },
79
+ "4": {
80
+ "name": "keyword.control"
81
+ }
82
+ }
83
+ },
84
+ {
85
+ "name": "constant.language",
86
+ "match": "\\b(True|False)\\b"
87
+ },
88
+ {
89
+ "name": "storage.type.function",
90
+ "match": "\\b(self)\\.\\b"
91
+ },
92
+ {
93
+ "match": "\\b(address\\s*payable|address|string|bytes?\\d*|int\\d*|uint\\d*|bool|u?fixed\\d+x\\d+)\\b",
94
+ "captures": {
95
+ "1": {
96
+ "name": "constant.language"
97
+ },
98
+ "2": {
99
+ "name": "constant.numeric"
100
+ },
101
+ "3": {
102
+ "name": "constant.numeric"
103
+ },
104
+ "4": {
105
+ "name": "keyword.control"
106
+ }
107
+ }
108
+ },
109
+ {
110
+ "name": "keyword.control",
111
+ "match": "\\b(var|import|constant|pragma|payable|storage|memory|calldata|if|else|for|while|do|break|continue|returns?|private|public|pure|view|internal|external|this|suicide|selfdestruct|delegatecall|emit|new|is|throw|revert|assert|require|\\_)\\b"
112
+ },
113
+ {
114
+ "name": "keyword",
115
+ "match": "\\b(not|or|pass|not|from|import)\\b"
116
+ },
117
+ {
118
+ "name": "keyword",
119
+ "match": "(@[A-Za-z_]\\w*)\\b"
120
+ },
121
+ {
122
+ "match": "\\b([A-Za-z_]\\w*)\\s*\\:\\s*",
123
+ "captures": {
124
+ "1": {
125
+ "name": "variable.parameter"
126
+ }
127
+ }
128
+ },
129
+ {
130
+ "name": "keyword.control",
131
+ "match": "(=|!|\u003e|\u003c|\\||\u0026|\\?|:|\\^|~|\\*|\\+|\\-|\\/|\\%|\\bhex\\b)"
132
+ },
133
+ {
134
+ "match": "\\b(msg|block|tx|abi)\\.([A-Za-z_]\\w*)\\b",
135
+ "captures": {
136
+ "1": {
137
+ "name": "constant.language"
138
+ },
139
+ "2": {
140
+ "name": "constant.language"
141
+ }
142
+ }
143
+ },
144
+ {
145
+ "match": "\\b(now|delete)\\b",
146
+ "captures": {
147
+ "1": {
148
+ "name": "constant.language"
149
+ }
150
+ }
151
+ },
152
+ {
153
+ "match": "\\b(blockhash|gasleft|addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\s*\\(",
154
+ "captures": {
155
+ "1": {
156
+ "name": "constant.language"
157
+ }
158
+ }
159
+ },
160
+ {
161
+ "match": "\\b([A-Za-z_]\\w*)(?:\\[(\\d*)\\])?(?:\\[(\\d*)\\])?\\(",
162
+ "captures": {
163
+ "1": {
164
+ "name": "support.function"
165
+ },
166
+ "2": {
167
+ "name": "constant.numeric"
168
+ },
169
+ "3": {
170
+ "name": "constant.numeric"
171
+ }
172
+ }
173
+ },
174
+ {
175
+ "match": "\\b\\.(length|selector)\\b",
176
+ "captures": {
177
+ "1": {
178
+ "name": "support.type"
179
+ }
180
+ }
181
+ },
182
+ {
183
+ "match": "\\b(\\d+)\\s+(wei|finney|szabo|ether|seconds|minutes|hours|days|weeks|years)\\b",
184
+ "captures": {
185
+ "1": {
186
+ "name": "constant.numeric"
187
+ },
188
+ "2": {
189
+ "name": "keyword.control"
190
+ }
191
+ }
192
+ },
193
+ {
194
+ "name": "string.quoted",
195
+ "match": "([\\\"\\'].*?[\\\"\\'])"
196
+ },
197
+ {
198
+ "match": "\\b(\\d+)(e\\d*)?\\b",
199
+ "captures": {
200
+ "1": {
201
+ "name": "constant.numeric"
202
+ },
203
+ "2": {
204
+ "name": "constant.numeric"
205
+ }
206
+ }
207
+ },
208
+ {
209
+ "name": "constant.numeric",
210
+ "match": "\\b(0[xX][a-fA-F0-9]+)\\b"
211
+ }
212
+ ]
213
+ }