github-linguist 6.2.0 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +5 -5
  2. data/bin/git-linguist +6 -12
  3. data/ext/linguist/linguist.h +7 -0
  4. data/ext/linguist/strndup.c +10 -0
  5. data/grammars/annotation.liquidhaskell.haskell.json +3 -0
  6. data/grammars/hint.haskell.json +3 -0
  7. data/grammars/hint.message.haskell.json +3 -0
  8. data/grammars/hint.type.haskell.json +3 -0
  9. data/grammars/source.apl.json +97 -106
  10. data/grammars/source.ballerina.json +577 -144
  11. data/grammars/source.batchfile.json +24 -10
  12. data/grammars/source.bsl.json +50 -10
  13. data/grammars/source.cobol.json +4 -4
  14. data/grammars/source.css.json +1 -1
  15. data/grammars/source.gfm.json +20 -3
  16. data/grammars/source.haskell.json +3 -0
  17. data/grammars/source.hsig.json +3 -0
  18. data/grammars/source.hx.argument.json +80 -0
  19. data/grammars/source.hx.json +131 -46
  20. data/grammars/source.hxml.json +17 -9
  21. data/grammars/source.isabelle.root.json +2 -2
  22. data/grammars/source.lua.json +10 -3
  23. data/grammars/source.nim.json +4 -4
  24. data/grammars/source.pawn.json +5 -5
  25. data/grammars/source.pony.json +2 -2
  26. data/grammars/source.powershell.json +128 -87
  27. data/grammars/source.rascal.json +1 -0
  28. data/grammars/source.stan.json +3 -3
  29. data/grammars/source.ts.json +90 -28
  30. data/grammars/source.tsx.json +95 -33
  31. data/grammars/text.elixir.json +1 -3
  32. data/grammars/text.html.erlang.yaws.json +1 -1
  33. data/grammars/text.html.markdown.source.gfm.apib.json +1 -3
  34. data/grammars/text.html.markdown.source.gfm.mson.json +1 -3
  35. data/grammars/text.marko.json +129 -21
  36. data/grammars/text.shell-session.json +1 -1
  37. data/grammars/text.tex.latex.haskell.json +3 -0
  38. data/grammars/text.xml.json +4 -4
  39. data/lib/linguist/generated.rb +19 -1
  40. data/lib/linguist/languages.json +1 -1
  41. data/lib/linguist/languages.yml +68 -59
  42. data/lib/linguist/samples.json +618 -413
  43. data/lib/linguist/version.rb +1 -1
  44. metadata +7 -6
  45. data/grammars/source.elixir.json +0 -927
@@ -132,12 +132,6 @@
132
132
  "begin": "\\s+/[aA]\\s+",
133
133
  "end": "(?=$\\n|[\u0026|\u003e\u003c)])",
134
134
  "patterns": [
135
- {
136
- "include": "#command_set_inside_arithmetic"
137
- },
138
- {
139
- "include": "#command_set_group"
140
- },
141
135
  {
142
136
  "name": "string.quoted.double.batchfile",
143
137
  "begin": "\"",
@@ -163,6 +157,12 @@
163
157
  "name": "punctuation.definition.string.end.batchfile"
164
158
  }
165
159
  }
160
+ },
161
+ {
162
+ "include": "#command_set_inside_arithmetic"
163
+ },
164
+ {
165
+ "include": "#command_set_group"
166
166
  }
167
167
  ]
168
168
  },
@@ -212,8 +212,15 @@
212
212
  "command_set_operators": {
213
213
  "patterns": [
214
214
  {
215
- "name": "keyword.operator.assignment.augmented.batchfile",
216
- "match": "\\+\\=|\\-\\=|\\*\\=|/\\=|%%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003c\u003c\\=|\u003e\u003e\\="
215
+ "match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|\u0026\\=|\\|\\=|\\^\\=|\u003c\u003c\\=|\u003e\u003e\\=)",
216
+ "captures": {
217
+ "1": {
218
+ "name": "variable.other.readwrite.batchfile"
219
+ },
220
+ "2": {
221
+ "name": "keyword.operator.assignment.augmented.batchfile"
222
+ }
223
+ }
217
224
  },
218
225
  {
219
226
  "name": "keyword.operator.arithmetic.batchfile",
@@ -224,8 +231,15 @@
224
231
  "match": "!"
225
232
  },
226
233
  {
227
- "name": "keyword.operator.assignment.batchfile",
228
- "match": "="
234
+ "match": "([^ ][^=]*)(=)",
235
+ "captures": {
236
+ "1": {
237
+ "name": "variable.other.readwrite.batchfile"
238
+ },
239
+ "2": {
240
+ "name": "keyword.operator.assignment.batchfile"
241
+ }
242
+ }
229
243
  }
230
244
  ]
231
245
  },
@@ -12,6 +12,9 @@
12
12
  "begin": "(?i:(?\u003c=[^\\wа-яё\\.]|^)(Процедура|Procedure|Функция|Function)\\s+([a-zа-яё0-9_]+)\\s*(\\())",
13
13
  "end": "(?i:(\\))\\s*((Экспорт|Export)(?=[^\\wа-яё\\.]|$))?)",
14
14
  "patterns": [
15
+ {
16
+ "include": "#annotations"
17
+ },
15
18
  {
16
19
  "include": "#basic"
17
20
  },
@@ -160,16 +163,7 @@
160
163
  "match": "(?i:\u0026(НаКлиенте((НаСервере(БезКонтекста)?)?)|AtClient((AtServer(NoContext)?)?)|НаСервере(БезКонтекста)?|AtServer(NoContext)?))"
161
164
  },
162
165
  {
163
- "begin": "(?i)(\u0026(Перед|Before|После|After|Вместо|Around))\\s*\\((.*)\\)",
164
- "end": "$",
165
- "beginCaptures": {
166
- "1": {
167
- "name": "storage.type.annotation.bsl"
168
- },
169
- "3": {
170
- "name": "string.quoted.double.bsl"
171
- }
172
- }
166
+ "include": "#annotations"
173
167
  },
174
168
  {
175
169
  "name": "keyword.other.preprocessor.bsl",
@@ -193,6 +187,52 @@
193
187
  }
194
188
  ],
195
189
  "repository": {
190
+ "annotations": {
191
+ "patterns": [
192
+ {
193
+ "begin": "(?i)(\u0026([a-zа-яё0-9_]+))\\s*(\\()",
194
+ "end": "(\\))",
195
+ "patterns": [
196
+ {
197
+ "include": "#basic"
198
+ },
199
+ {
200
+ "name": "keyword.operator.assignment.bsl",
201
+ "match": "(=)"
202
+ },
203
+ {
204
+ "name": "invalid.illegal.bsl",
205
+ "match": "(?\u003c=[^\\wа-яё\\.]|^)((?\u003c==)(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)"
206
+ },
207
+ {
208
+ "name": "invalid.illegal.bsl",
209
+ "match": "(?\u003c=[^\\wа-яё\\.]|^)((?\u003c==\\s)\\s*(?i)[a-zа-яё0-9_]+)(?=[^\\wа-яё\\.]|$)"
210
+ },
211
+ {
212
+ "name": "variable.annotation.bsl",
213
+ "match": "(?i)[a-zа-яё0-9_]+"
214
+ }
215
+ ],
216
+ "beginCaptures": {
217
+ "1": {
218
+ "name": "storage.type.annotation.bsl"
219
+ },
220
+ "3": {
221
+ "name": "punctuation.bracket.begin.bsl"
222
+ }
223
+ },
224
+ "endCaptures": {
225
+ "1": {
226
+ "name": "punctuation.bracket.end.bsl"
227
+ }
228
+ }
229
+ },
230
+ {
231
+ "name": "storage.type.annotation.bsl",
232
+ "match": "(?i)(\u0026([a-zа-яё0-9_]+))"
233
+ }
234
+ ]
235
+ },
196
236
  "basic": {
197
237
  "patterns": [
198
238
  {
@@ -109,7 +109,7 @@
109
109
  },
110
110
  {
111
111
  "name": "string.quoted.cobol",
112
- "begin": "(?i:exec\\s*sql)",
112
+ "begin": "(?i:exec\\s+sql)",
113
113
  "end": "(?i:end-exec|end\\s*exec)",
114
114
  "patterns": [
115
115
  {
@@ -123,7 +123,7 @@
123
123
  },
124
124
  {
125
125
  "name": "string.quoted.cobol",
126
- "begin": "(?i:exec\\s*cics)",
126
+ "begin": "(?i:exec\\s+cics)",
127
127
  "end": "(?i:end\\-exec|end\\s*exec)",
128
128
  "patterns": [
129
129
  {
@@ -132,7 +132,7 @@
132
132
  },
133
133
  {
134
134
  "name": "keyword.identifiers.cobol",
135
- "match": "(?i:FROM|ERASE|LENGTH|RESP|ISSUE\\s*WAIT|LINK\\s*ACQPROCESS|LINK\\s*ACTIVITY|LINK|LOAD|MONITOR|MOVE\\s*CONTAINER|POINT|POP\\s*HANDLE|POST|PURGE\\s*MESSAGE|PUSH\\s*HANDLE|PUT\\s*CONTAINER|QUERY\\s*COUNTER|QUERY\\s*DCOUNTER|QUERY\\s*SECURITY|READNEXT|READPREV|READQ\\s*TD|READQ\\s*TS|READ|RECEIVE\\s*MAP\\s*MAPPINGDEV|RECEIVE\\s*MAP|RECEIVE\\s*PARTN|RECEIVE|RELEASE|REMOVE\\s*SUBEVENT|RESETBR|RESET\\s*ACQPROCESS|RESET\\s*ACTIVITY|RESUME|RETRIEVE\\s*REATTACH\\s*EVENT|RETRIEVE\\s*SUBEVENT|RETRIEVE|RETURN|REWIND\\s*COUNTER|REWIND\\s*DCOUNTER|REWRITE|ROUTE|RUN|SEND\\s*CONTROL|SEND\\s*MAP\\s*MAPPINGDEV|SEND\\s*MAP|SEND\\s*PAGE|SEND\\s*PARTNSET|SEND\\s*TEXTNOEDIT|SEND\\s*TEXT\\s*MAPPED|SEND\\s*TEXT|SEND|SIGNAL\\s*EVENT|SIGNOFF|SIGNON|SOAPFAULT\\s*ADD|SOAPFAULT\\s*CREATE|SOAPFAULT\\s*DELETE|SPOOLCLOSE|SPOOLOPEN\\s*INPUT|SPOOLOPEN\\s*OUTPUT|SPOOLREAD|SPOOLWRITE|STARTBROWSE\\s*ACTIVITY|STARTBROWSE\\s*CONTAINER|STARTBROWSE\\s*EVENT|STARTBROWSE\\s*PROCESS|STARTBR|START\\s*ATTACH|START\\s*BREXIT|START\\s*TRANSID|START|SUSPEND|SYNCPOINT\\s*ROLLBACK|SYNCPOINT|TEST\\s*EVENT|TRANSFORM\\s*DATATOXML|TRANSFORM\\s*XMLTODATA|UNLOCK|UPDATE\\s*COUNTER|UPDATE\\s*DCOUNTER|WAITCICS|WAIT\\s*CONVID|WAIT\\s*EVENT|WAIT\\s*EXTERNAL|WAIT\\s*JOURNALNAME|WAIT\\s*JOURNALNUM|WAIT\\s*SIGNAL|WAIT\\s*TERMINAL|WEB\\s*CLOSE|WEB\\s*CONVERSE|WEB\\s*ENDBROWSE\\s*FORMFIELD|WEB\\s*ENDBROWSE\\s*HTTPHEADER|WEB\\s*EXTRACT|WEB\\s*OPEN|WEB\\s*PARSE\\s*URL|WEB\\s*READNEXT\\s*FORMFIELD|WEB\\s*READNEXT\\s*HTTPHEADER|WEB\\s*READ\\s*FORMFIELD|WEB\\s*READ\\s*HTTPHEADER|WEB\\s*RECEIVE|WEB\\s*RETRIEVE|WEB\\s*SEND|WEB\\s*STARTBROWSE\\s*FORMFIELD|WEB\\s*STARTBROWSE\\s*HTTPHEADER|WEB\\s*WRITE\\s*HTTPHEADER|WRITEQ\\s*TD|WRITEQ\\s*TS|WRITE\\s*JOURNALNAME|WRITE\\s*JOURNALNUM|WRITE\\s*OPERATOR|WRITE|WSACONTEXT\\s*BUILD|WSACONTEXT\\s*DELETE|WSACONTEXT\\s*GET|WSAEPR\\s*CREATE|XCTL)"
135
+ "match": "(?\u003c!-)(?i:FROM|ERASE|LENGTH|RESP|ISSUE\\s*WAIT|LINK\\s*ACQPROCESS|LINK\\s*ACTIVITY|LINK|LOAD|MONITOR|MOVE\\s*CONTAINER|POINT|POP\\s*HANDLE|POST|PURGE\\s*MESSAGE|PUSH\\s*HANDLE|PUT\\s*CONTAINER|QUERY\\s*COUNTER|QUERY\\s*DCOUNTER|QUERY\\s*SECURITY|READNEXT|READPREV|READQ\\s*TD|READQ\\s*TS|READ|RECEIVE\\s*MAP\\s*MAPPINGDEV|RECEIVE\\s*MAP|RECEIVE\\s*PARTN|RECEIVE|RELEASE|REMOVE\\s*SUBEVENT|RESETBR|RESET\\s*ACQPROCESS|RESET\\s*ACTIVITY|RESUME|RETRIEVE\\s*REATTACH\\s*EVENT|RETRIEVE\\s*SUBEVENT|RETRIEVE|RETURN|REWIND\\s*COUNTER|REWIND\\s*DCOUNTER|REWRITE|ROUTE|RUN|SEND\\s*CONTROL|SEND\\s*MAP\\s*MAPPINGDEV|SEND\\s*MAP|SEND\\s*PAGE|SEND\\s*PARTNSET|SEND\\s*TEXTNOEDIT|SEND\\s*TEXT\\s*MAPPED|SEND\\s*TEXT|SEND|SIGNAL\\s*EVENT|SIGNOFF|SIGNON|SOAPFAULT\\s*ADD|SOAPFAULT\\s*CREATE|SOAPFAULT\\s*DELETE|SPOOLCLOSE|SPOOLOPEN\\s*INPUT|SPOOLOPEN\\s*OUTPUT|SPOOLREAD|SPOOLWRITE|STARTBROWSE\\s*ACTIVITY|STARTBROWSE\\s*CONTAINER|STARTBROWSE\\s*EVENT|STARTBROWSE\\s*PROCESS|STARTBR|START\\s*ATTACH|START\\s*BREXIT|START\\s*TRANSID|START|SUSPEND|SYNCPOINT\\s*ROLLBACK|SYNCPOINT|TEST\\s*EVENT|TRANSFORM\\s*DATATOXML|TRANSFORM\\s*XMLTODATA|UNLOCK|UPDATE\\s*COUNTER|UPDATE\\s*DCOUNTER|WAITCICS|WAIT\\s*CONVID|WAIT\\s*EVENT|WAIT\\s*EXTERNAL|WAIT\\s*JOURNALNAME|WAIT\\s*JOURNALNUM|WAIT\\s*SIGNAL|WAIT\\s*TERMINAL|WEB\\s*CLOSE|WEB\\s*CONVERSE|WEB\\s*ENDBROWSE\\s*FORMFIELD|WEB\\s*ENDBROWSE\\s*HTTPHEADER|WEB\\s*EXTRACT|WEB\\s*OPEN|WEB\\s*PARSE\\s*URL|WEB\\s*READNEXT\\s*FORMFIELD|WEB\\s*READNEXT\\s*HTTPHEADER|WEB\\s*READ\\s*FORMFIELD|WEB\\s*READ\\s*HTTPHEADER|WEB\\s*RECEIVE|WEB\\s*RETRIEVE|WEB\\s*SEND|WEB\\s*STARTBROWSE\\s*FORMFIELD|WEB\\s*STARTBROWSE\\s*HTTPHEADER|WEB\\s*WRITE\\s*HTTPHEADER|WRITEQ\\s*TD|WRITEQ\\s*TS|WRITE\\s*JOURNALNAME|WRITE\\s*JOURNALNUM|WRITE\\s*OPERATOR|WRITE|WSACONTEXT\\s*BUILD|WSACONTEXT\\s*DELETE|WSACONTEXT\\s*GET|WSAEPR\\s*CREATE|XCTL)"
136
136
  },
137
137
  {
138
138
  "name": "constant.numeric.cobol",
@@ -291,7 +291,7 @@
291
291
  },
292
292
  {
293
293
  "name": "support.function.cobol",
294
- "match": "(?i:function)\\s(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|sign|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds=past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)"
294
+ "match": "(?\u003c!-)(?i:function)\\s(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|sign|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds=past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)"
295
295
  },
296
296
  {
297
297
  "name": "support.function.cobol",
@@ -1353,7 +1353,7 @@
1353
1353
  "patterns": [
1354
1354
  {
1355
1355
  "name": "support.type.property-name.css",
1356
- "match": "(?xi) (?\u003c![\\w-])\n(?:\n # Standard CSS\n additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction\n | animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state\n | animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode\n | background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]\n | background-repeat|background-size|block-size|border|border-block-end|border-block-end-color|border-block-end-style\n | border-block-end-width|border-block-start|border-block-start-color|border-block-start-style\n | border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset\n | border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start\n | border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color\n | border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style\n | border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius\n | border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break\n | box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|clip-path|color\n | column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width\n | column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display\n | empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float\n | font|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust\n | font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps\n | font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap\n | grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas\n | grid-template-columns|grid-template-rows|height|hyphens|image-orientation|image-rendering|image-resolution\n | ime-mode|inline-size|isolation|justify-content|left|letter-spacing|line-break|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block-end|margin-block-start|margin-bottom\n | margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|mask|mask-clip|mask-composite\n | mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height\n | max-inline-size|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode\n | negative|object-fit|object-position|offset-block-end|offset-block-start|offset-inline-end|offset-inline-start\n | opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow\n | overflow-wrap|overflow-[xy]|pad|padding|padding-block-end|padding-block-start|padding-bottom|padding-inline-end\n | padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside\n | perspective|perspective-origin|pointer-events|position|prefix|quotes|range|resize|right|ruby-align|ruby-merge\n | ruby-position|scroll-behavior|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-type|shape-image-threshold\n | shape-margin|shape-outside|speak-as|src|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last\n | text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-emphasis\n | text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-orientation|text-overflow\n | text-rendering|text-shadow|text-transform|text-underline-position|top|touch-action|transform|transform-box\n | transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property\n | transition-timing-function|unicode-bidi|unicode-range|user-zoom|vertical-align|visibility|white-space|widows\n | width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|kerning|lighting-color|marker-end|marker-mid\n | marker-start|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])"
1356
+ "match": "(?xi) (?\u003c![\\w-])\n(?:\n # Standard CSS\n additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction\n | animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state\n | animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode\n | background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]\n | background-repeat|background-size|block-size|border|border-block-end|border-block-end-color|border-block-end-style\n | border-block-end-width|border-block-start|border-block-start-color|border-block-start-style\n | border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset\n | border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start\n | border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color\n | border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style\n | border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius\n | border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break\n | box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|clip-path|color\n | column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width\n | column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display\n | empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float\n | font|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust\n | font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps\n | font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap\n | grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas\n | grid-template-columns|grid-template-rows|height|hyphens|image-orientation|image-rendering|image-resolution\n | ime-mode|inline-size|isolation|justify-content|left|letter-spacing|line-break|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block-end|margin-block-start|margin-bottom\n | margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|mask|mask-clip|mask-composite\n | mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height\n | max-inline-size|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode\n | negative|object-fit|object-position|offset-block-end|offset-block-start|offset-inline-end|offset-inline-start\n | opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow\n | overflow-wrap|overflow-[xy]|pad|padding|padding-block-end|padding-block-start|padding-bottom|padding-inline-end\n | padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside\n | perspective|perspective-origin|pointer-events|position|prefix|quotes|range|resize|right|ruby-align|ruby-merge\n | ruby-position|scroll-behavior|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-type|shape-image-threshold\n | shape-margin|shape-outside|speak-as|src|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last\n | text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-emphasis\n | text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-orientation|text-overflow\n | text-rendering|text-shadow|text-transform|text-underline-position|top|touch-action|transform|transform-box\n | transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property\n | transition-timing-function|unicode-bidi|unicode-range|user-zoom|vertical-align|visibility|white-space|widows\n | width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid\n | marker-start|r|rx|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])"
1357
1357
  },
1358
1358
  {
1359
1359
  "name": "support.type.vendored.property-name.css",
@@ -682,6 +682,25 @@
682
682
  }
683
683
  }
684
684
  },
685
+ {
686
+ "name": "markup.code.git-config.gfm",
687
+ "contentName": "source.embedded.git-config",
688
+ "begin": "^\\s*([`~]{3,})\\s*(?i:(properties))\\s*$",
689
+ "end": "^\\s*\\1\\s*$",
690
+ "patterns": [
691
+ {}
692
+ ],
693
+ "beginCaptures": {
694
+ "0": {
695
+ "name": "support.gfm"
696
+ }
697
+ },
698
+ "endCaptures": {
699
+ "0": {
700
+ "name": "support.gfm"
701
+ }
702
+ }
703
+ },
685
704
  {
686
705
  "name": "markup.code.shell-session.gfm",
687
706
  "contentName": "text.embedded.shell-session",
@@ -1003,9 +1022,7 @@
1003
1022
  "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(elixir))\\s*$",
1004
1023
  "end": "^\\s*\\1((?\u003c=`)`+|(?\u003c=~)~+)?\\s*$",
1005
1024
  "patterns": [
1006
- {
1007
- "include": "source.elixir"
1008
- }
1025
+ {}
1009
1026
  ],
1010
1027
  "beginCaptures": {
1011
1028
  "0": {
@@ -968,6 +968,9 @@
968
968
  {
969
969
  "name": "keyword.operator.wildcard.haskell",
970
970
  "match": "\\.\\."
971
+ },
972
+ {
973
+ "include": "#infix_op"
971
974
  }
972
975
  ]
973
976
  },
@@ -968,6 +968,9 @@
968
968
  {
969
969
  "name": "keyword.operator.wildcard.haskell.hsig",
970
970
  "match": "\\.\\."
971
+ },
972
+ {
973
+ "include": "#infix_op"
971
974
  }
972
975
  ]
973
976
  },
@@ -0,0 +1,80 @@
1
+ {
2
+ "scopeName": "source.hx.argument",
3
+ "patterns": [
4
+ {
5
+ "include": "#parameter"
6
+ }
7
+ ],
8
+ "repository": {
9
+ "parameter": {
10
+ "patterns": [
11
+ {
12
+ "include": "#parameter-name"
13
+ },
14
+ {
15
+ "include": "#parameter-type-hint"
16
+ },
17
+ {
18
+ "include": "#parameter-assign"
19
+ },
20
+ {
21
+ "include": "source.hx#punctuation-comma"
22
+ },
23
+ {
24
+ "include": "source.hx#global"
25
+ }
26
+ ]
27
+ },
28
+ "parameter-assign": {
29
+ "begin": "=",
30
+ "end": "$",
31
+ "patterns": [
32
+ {
33
+ "include": "source.hx#block"
34
+ },
35
+ {
36
+ "include": "source.hx#block-contents"
37
+ }
38
+ ],
39
+ "beginCaptures": {
40
+ "0": {
41
+ "name": "keyword.operator.assignment.hx"
42
+ }
43
+ }
44
+ },
45
+ "parameter-name": {
46
+ "begin": "^",
47
+ "end": "([_a-zA-Z]\\w*)",
48
+ "patterns": [
49
+ {
50
+ "include": "source.hx#global"
51
+ },
52
+ {
53
+ "include": "source.hx#metadata"
54
+ },
55
+ {
56
+ "include": "source.hx#operator-optional"
57
+ }
58
+ ],
59
+ "endCaptures": {
60
+ "1": {
61
+ "name": "variable.parameter.hx"
62
+ }
63
+ }
64
+ },
65
+ "parameter-type-hint": {
66
+ "begin": ":",
67
+ "end": "(?=\\)(?!\\s*-\u003e)|,|=)",
68
+ "patterns": [
69
+ {
70
+ "include": "source.hx#type"
71
+ }
72
+ ],
73
+ "beginCaptures": {
74
+ "0": {
75
+ "name": "keyword.operator.type.annotation.hx"
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
@@ -312,6 +312,9 @@
312
312
  {
313
313
  "include": "#punctuation-comma"
314
314
  },
315
+ {
316
+ "include": "#punctuation-accessor"
317
+ },
315
318
  {
316
319
  "include": "#identifiers"
317
320
  }
@@ -730,6 +733,9 @@
730
733
  {
731
734
  "include": "#function-type-parameter-type-hint"
732
735
  },
736
+ {
737
+ "include": "#parameter-assign"
738
+ },
733
739
  {
734
740
  "include": "#type"
735
741
  },
@@ -748,7 +754,7 @@
748
754
  },
749
755
  "function-type-parameter-type-hint": {
750
756
  "begin": ":",
751
- "end": "(?=\\)|,)",
757
+ "end": "(?=\\)|,|=)",
752
758
  "patterns": [
753
759
  {
754
760
  "include": "#type"
@@ -788,31 +794,36 @@
788
794
  ]
789
795
  },
790
796
  "import": {
791
- "match": "(import)\\s+(?:((\\b_*[a-z]\\w*\\.?)*)(?:((\\b_*[A-Z]\\w*\\.?)+)|(\\*))?(\\b_*[a-z]\\w*|\\*)?(?:\\s+(as|in)\\s+(\\b_*[A-Z]\\w*)?)?)?\\s*(;)?",
792
- "captures": {
793
- "1": {
794
- "name": "storage.type.import.hx"
795
- },
796
- "10": {
797
- "name": "punctuation.terminator.hx"
798
- },
799
- "2": {
800
- "name": "support.package.hx"
801
- },
802
- "4": {
803
- "name": "entity.name.type.hx"
797
+ "begin": "import",
798
+ "end": "$|(;)",
799
+ "patterns": [
800
+ {
801
+ "include": "#type-path"
804
802
  },
805
- "6": {
806
- "name": "support.package.hx"
803
+ {
804
+ "name": "keyword.other.hx",
805
+ "match": "\\b(as|in)\\b"
807
806
  },
808
- "7": {
809
- "name": "support.package.hx"
807
+ {
808
+ "name": "constant.language.import-all.hx",
809
+ "match": "\\*"
810
810
  },
811
- "8": {
812
- "name": "keyword.other.hx"
811
+ {
812
+ "name": "variable.other.hxt",
813
+ "match": "\\b([_A-Za-z]\\w*)\\b(?=\\s*(as|in|$|(;)))"
813
814
  },
814
- "9": {
815
- "name": "entity.name.type.hx"
815
+ {
816
+ "include": "#type-path-package-name"
817
+ }
818
+ ],
819
+ "beginCaptures": {
820
+ "0": {
821
+ "name": "keyword.other.import.hx"
822
+ }
823
+ },
824
+ "endCaptures": {
825
+ "1": {
826
+ "name": "punctuation.terminator.hx"
816
827
  }
817
828
  }
818
829
  },
@@ -1201,13 +1212,22 @@
1201
1212
  }
1202
1213
  },
1203
1214
  {
1204
- "match": "(@)(:?[a-zA-Z_]*)",
1215
+ "match": "(@)(:?)([a-zA-Z_]*(\\.))*([a-zA-Z_]*)?",
1205
1216
  "captures": {
1206
1217
  "1": {
1207
1218
  "name": "punctuation.metadata.hx"
1208
1219
  },
1209
1220
  "2": {
1210
1221
  "name": "variable.metadata.hx"
1222
+ },
1223
+ "3": {
1224
+ "name": "variable.metadata.hx"
1225
+ },
1226
+ "4": {
1227
+ "name": "punctuation.accessor.hx"
1228
+ },
1229
+ "5": {
1230
+ "name": "variable.metadata.hx"
1211
1231
  }
1212
1232
  }
1213
1233
  }
@@ -1348,9 +1368,13 @@
1348
1368
  },
1349
1369
  "modifiers": {
1350
1370
  "patterns": [
1371
+ {
1372
+ "name": "storage.type.class",
1373
+ "match": "\\b(enum)\\b"
1374
+ },
1351
1375
  {
1352
1376
  "name": "storage.modifier.hx",
1353
- "match": "\\b(public|private|static|dynamic|inline|macro|extern|override|enum)\\b"
1377
+ "match": "\\b(public|private|static|dynamic|inline|macro|extern|override)\\b"
1354
1378
  },
1355
1379
  {
1356
1380
  "name": "storage.modifier.hx",
@@ -1441,16 +1465,23 @@
1441
1465
  ]
1442
1466
  },
1443
1467
  "package": {
1444
- "name": "meta.package.hx",
1445
- "match": "\\b(package)(\\s+([\\w.*]*))?\\s*(;)?",
1446
- "captures": {
1447
- "1": {
1448
- "name": "storage.type.package.hx"
1449
- },
1450
- "2": {
1451
- "name": "support.package.hx"
1468
+ "begin": "package",
1469
+ "end": "$|(;)",
1470
+ "patterns": [
1471
+ {
1472
+ "include": "#type-path"
1452
1473
  },
1453
- "4": {
1474
+ {
1475
+ "include": "#type-path-package-name"
1476
+ }
1477
+ ],
1478
+ "beginCaptures": {
1479
+ "0": {
1480
+ "name": "keyword.other.package.hx"
1481
+ }
1482
+ },
1483
+ "endCaptures": {
1484
+ "1": {
1454
1485
  "name": "punctuation.terminator.hx"
1455
1486
  }
1456
1487
  }
@@ -1547,6 +1578,10 @@
1547
1578
  }
1548
1579
  }
1549
1580
  },
1581
+ "punctuation-accessor": {
1582
+ "name": "punctuation.accessor.hx",
1583
+ "match": "\\."
1584
+ },
1550
1585
  "punctuation-braces": {
1551
1586
  "begin": "\\(",
1552
1587
  "end": "\\)",
@@ -1899,6 +1934,18 @@
1899
1934
  "name": "keyword.operator.type.function.hx",
1900
1935
  "match": "-\u003e"
1901
1936
  },
1937
+ {
1938
+ "name": "keyword.operator.type.intersection.hx",
1939
+ "match": "\u0026"
1940
+ },
1941
+ {
1942
+ "name": "keyword.operator.optional",
1943
+ "match": "\\?(?=\\s*[_A-Z])"
1944
+ },
1945
+ {
1946
+ "name": "punctuation.definition.tag",
1947
+ "match": "\\?(?!\\s*[_A-Z])"
1948
+ },
1902
1949
  {
1903
1950
  "begin": "(\\{)",
1904
1951
  "end": "(?\u003c=\\})",
@@ -1965,7 +2012,11 @@
1965
2012
  }
1966
2013
  ]
1967
2014
  },
1968
- "type-parameter-constraint": {
2015
+ "type-parameter-constraint-new": {
2016
+ "name": "keyword.operator.type.annotation.hxt",
2017
+ "match": ":"
2018
+ },
2019
+ "type-parameter-constraint-old": {
1969
2020
  "begin": "(:)\\s*(\\()",
1970
2021
  "end": "\\)",
1971
2022
  "patterns": [
@@ -1999,7 +2050,10 @@
1999
2050
  "include": "#type"
2000
2051
  },
2001
2052
  {
2002
- "include": "#type-parameter-constraint"
2053
+ "include": "#type-parameter-constraint-old"
2054
+ },
2055
+ {
2056
+ "include": "#type-parameter-constraint-new"
2003
2057
  },
2004
2058
  {
2005
2059
  "include": "#global"
@@ -2034,6 +2088,27 @@
2034
2088
  }
2035
2089
  }
2036
2090
  },
2091
+ "type-path": {
2092
+ "patterns": [
2093
+ {
2094
+ "include": "#global"
2095
+ },
2096
+ {
2097
+ "include": "#punctuation-accessor"
2098
+ },
2099
+ {
2100
+ "include": "#type-path-type-name"
2101
+ }
2102
+ ]
2103
+ },
2104
+ "type-path-package-name": {
2105
+ "name": "support.package.hx",
2106
+ "match": "\\b([_A-Za-z]\\w*)\\b"
2107
+ },
2108
+ "type-path-type-name": {
2109
+ "name": "entity.name.type.hx",
2110
+ "match": "\\b(_*[A-Z]\\w*)\\b"
2111
+ },
2037
2112
  "typedef": {
2038
2113
  "name": "meta.typedef.hx",
2039
2114
  "begin": "(?=typedef)",
@@ -2169,18 +2244,23 @@
2169
2244
  }
2170
2245
  },
2171
2246
  "using": {
2172
- "match": "(using)\\s+((?:_*[a-z]\\w*\\.?)*)((?:_*[A-Z]\\w*\\.?)+)?(;)?",
2173
- "captures": {
2174
- "1": {
2175
- "name": "storage.type.using.hx"
2176
- },
2177
- "2": {
2178
- "name": "support.package.hx"
2179
- },
2180
- "3": {
2181
- "name": "entity.name.type.hx"
2247
+ "begin": "using",
2248
+ "end": "$|(;)",
2249
+ "patterns": [
2250
+ {
2251
+ "include": "#type-path"
2182
2252
  },
2183
- "4": {
2253
+ {
2254
+ "include": "#type-path-package-name"
2255
+ }
2256
+ ],
2257
+ "beginCaptures": {
2258
+ "0": {
2259
+ "name": "keyword.other.using.hx"
2260
+ }
2261
+ },
2262
+ "endCaptures": {
2263
+ "1": {
2184
2264
  "name": "punctuation.terminator.hx"
2185
2265
  }
2186
2266
  }
@@ -2254,6 +2334,11 @@
2254
2334
  "variable-name": {
2255
2335
  "begin": "\\b(var|final)\\b",
2256
2336
  "end": "(?=$)|([_a-zA-Z]\\w*)",
2337
+ "patterns": [
2338
+ {
2339
+ "include": "#operator-optional"
2340
+ }
2341
+ ],
2257
2342
  "beginCaptures": {
2258
2343
  "1": {
2259
2344
  "name": "storage.type.variable.hx"