github-linguist 7.4.0 → 7.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +5 -5
  2. data/grammars/annotation.liquidhaskell.haskell.json +15 -4
  3. data/grammars/hint.haskell.json +15 -4
  4. data/grammars/hint.message.haskell.json +15 -4
  5. data/grammars/hint.type.haskell.json +15 -4
  6. data/grammars/source.abap.json +14 -3
  7. data/grammars/source.apl.json +19 -2
  8. data/grammars/source.ats.json +17 -87
  9. data/grammars/source.ballerina.json +14 -19
  10. data/grammars/source.crystal.json +14 -2
  11. data/grammars/source.csound.json +37 -0
  12. data/grammars/source.css.json +25 -1
  13. data/grammars/source.css.scss.json +1724 -0
  14. data/grammars/source.gf.json +51 -0
  15. data/grammars/source.glsl.json +1 -1
  16. data/grammars/source.hack.json +2523 -0
  17. data/grammars/source.haskell.json +15 -4
  18. data/grammars/source.hc.json +709 -0
  19. data/grammars/source.hsig.json +15 -4
  20. data/grammars/source.hx.json +10 -6
  21. data/grammars/source.jolie.json +1 -1
  22. data/grammars/source.julia.json +114 -6
  23. data/grammars/source.m68k.json +412 -0
  24. data/grammars/source.mcfunction.json +62 -18
  25. data/grammars/source.objectscript.json +309 -0
  26. data/grammars/source.objectscript_class.json +674 -0
  27. data/grammars/source.objectscript_csp.json +19 -0
  28. data/grammars/source.objectscript_macros.json +226 -0
  29. data/grammars/source.powershell.json +21 -57
  30. data/grammars/source.rust.json +1 -1
  31. data/grammars/source.sass.json +836 -142
  32. data/grammars/source.sassdoc.json +346 -0
  33. data/grammars/source.scala.json +110 -10
  34. data/grammars/source.sqf.json +2 -1
  35. data/grammars/source.svelte.json +827 -0
  36. data/grammars/source.ts.json +8 -4
  37. data/grammars/source.tsql.json +507 -0
  38. data/grammars/source.tsx.json +8 -4
  39. data/grammars/source.viml.json +1 -1
  40. data/grammars/source.vtt.json +702 -0
  41. data/grammars/source.wollok.json +100 -0
  42. data/grammars/source.xojo.json +85 -0
  43. data/grammars/source.yara.json +3 -2
  44. data/grammars/source.zeek.json +412 -0
  45. data/grammars/source.zenscript.json +282 -0
  46. data/grammars/source.zig.json +2 -11
  47. data/grammars/text.haml.json +1 -1
  48. data/grammars/text.html.php.blade.json +3 -3
  49. data/grammars/text.html.vue.json +41 -1
  50. data/grammars/text.slim.json +1 -1
  51. data/grammars/text.tex.latex.haskell.json +15 -4
  52. data/grammars/version +1 -1
  53. data/lib/linguist/VERSION +1 -1
  54. data/lib/linguist/blob_helper.rb +5 -10
  55. data/lib/linguist/generated.rb +10 -2
  56. data/lib/linguist/heuristics.yml +14 -3
  57. data/lib/linguist/language.rb +3 -2
  58. data/lib/linguist/languages.json +1 -1
  59. data/lib/linguist/languages.yml +151 -16
  60. data/lib/linguist/samples.json +9844 -1711
  61. data/lib/linguist/samples.rb +8 -5
  62. data/lib/linguist/shebang.rb +6 -0
  63. data/lib/linguist/vendor.yml +3 -0
  64. metadata +25 -10
  65. data/grammars/source.bro.json +0 -403
  66. data/grammars/source.scss.json +0 -1287
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "ObjectScript CSP",
3
+ "scopeName": "source.objectscript_csp",
4
+ "patterns": [
5
+ {
6
+ "include": "#inline-html"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "inline-html": {
11
+ "name": "meta.embedded.inline.html",
12
+ "patterns": [
13
+ {
14
+ "include": "text.html.basic"
15
+ }
16
+ ]
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,226 @@
1
+ {
2
+ "name": "ObjectScript Macros",
3
+ "scopeName": "source.objectscript_macros",
4
+ "patterns": [
5
+ {
6
+ "include": "#include"
7
+ },
8
+ {
9
+ "include": "#dim"
10
+ },
11
+ {
12
+ "include": "#define"
13
+ },
14
+ {
15
+ "include": "#def1arg"
16
+ },
17
+ {
18
+ "include": "#ifdef"
19
+ },
20
+ {
21
+ "include": "#comment-line"
22
+ }
23
+ ],
24
+ "repository": {
25
+ "comment-line": {
26
+ "patterns": [
27
+ {
28
+ "name": "comment.line.objectscript",
29
+ "match": "^///.*$"
30
+ },
31
+ {
32
+ "name": "comment.line.objectscript",
33
+ "match": "\\s+//.*$"
34
+ },
35
+ {
36
+ "name": "comment.line.objectscript",
37
+ "match": "\\s+;.*$"
38
+ },
39
+ {
40
+ "name": "comment.line.objectscript",
41
+ "match": "^\\s*#;.*$"
42
+ },
43
+ {
44
+ "name": "comment.block.objectscript",
45
+ "begin": "/\\*",
46
+ "end": "\\*/",
47
+ "beginCaptures": {
48
+ "0": {
49
+ "name": "punctuation.definition.objectscript"
50
+ }
51
+ },
52
+ "endCaptures": {
53
+ "0": {
54
+ "name": "punctuation.definition.objectscript"
55
+ }
56
+ }
57
+ }
58
+ ]
59
+ },
60
+ "continue": {
61
+ "patterns": [
62
+ {
63
+ "name": "keyword.control.objectscript",
64
+ "match": "(\\s+\\#\\#(?i)(continue)\\s*)"
65
+ }
66
+ ]
67
+ },
68
+ "def1arg": {
69
+ "patterns": [
70
+ {
71
+ "name": "meta.preprocessor.objectscript",
72
+ "begin": "^\\s*(\\#\\s*(?:(?i)def1arg))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:(\\()(\\s*\\g\u003cid\u003e\\s*)(\\)))",
73
+ "end": "(?\u003c!\\#\\#continue)\\n",
74
+ "patterns": [
75
+ {
76
+ "include": "#comment-line"
77
+ },
78
+ {
79
+ "include": "#continue"
80
+ },
81
+ {
82
+ "include": "#digits"
83
+ },
84
+ {
85
+ "include": "#macros"
86
+ },
87
+ {
88
+ "include": "source.objectscript"
89
+ }
90
+ ],
91
+ "beginCaptures": {
92
+ "1": {
93
+ "name": "keyword.control.objectscript"
94
+ },
95
+ "2": {
96
+ "name": "entity.name.objectscript"
97
+ },
98
+ "4": {
99
+ "name": "punctuation.definition.objectscript"
100
+ },
101
+ "5": {
102
+ "name": "variable.parameter.objectscript"
103
+ },
104
+ "6": {
105
+ "name": "punctuation.definition.objectscript"
106
+ }
107
+ }
108
+ }
109
+ ]
110
+ },
111
+ "define": {
112
+ "patterns": [
113
+ {
114
+ "name": "meta.preprocessor.objectscript",
115
+ "begin": "^\\s*(\\#\\s*(?:(?i)define))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:(\\()(\\s*\\g\u003cid\u003e\\s*((,)\\s*\\g\u003cid\u003e\\s*)*)(\\)))?",
116
+ "end": "(?\u003c!\\#\\#continue)\\n",
117
+ "patterns": [
118
+ {
119
+ "include": "#comment-line"
120
+ },
121
+ {
122
+ "include": "#continue"
123
+ },
124
+ {
125
+ "include": "#macros"
126
+ },
127
+ {
128
+ "include": "source.objectscript"
129
+ }
130
+ ],
131
+ "beginCaptures": {
132
+ "1": {
133
+ "name": "keyword.control.objectscript"
134
+ },
135
+ "2": {
136
+ "name": "entity.name.objectscript"
137
+ },
138
+ "4": {
139
+ "name": "punctuation.definition.objectscript"
140
+ },
141
+ "5": {
142
+ "name": "variable.parameter.objectscript"
143
+ },
144
+ "7": {
145
+ "name": "punctuation.definition.objectscript"
146
+ }
147
+ }
148
+ }
149
+ ]
150
+ },
151
+ "dim": {
152
+ "patterns": [
153
+ {
154
+ "name": "meta.preprocessor.objectscript",
155
+ "match": "^\\s*(\\#\\s*(?:(?i)dim))\\s+((?\u003cid\u003e[a-zA-Z%][a-zA-Z0-9]*))(?:\\s*(,)\\s*((\\g\u003cid\u003e)*))*(?:\\s+((?i)As)(?:\\s(\\g\u003cid\u003e(?:\\.\\g\u003cid\u003e)*)))?",
156
+ "captures": {
157
+ "1": {
158
+ "name": "keyword.control.objectscript"
159
+ },
160
+ "2": {
161
+ "name": "variable.name"
162
+ },
163
+ "4": {
164
+ "name": "punctuation.definition.objectscript"
165
+ },
166
+ "5": {
167
+ "name": "variable.name"
168
+ },
169
+ "7": {
170
+ "name": "keyword.control.objectscript"
171
+ },
172
+ "8": {
173
+ "name": "entity.name.class.objectscript"
174
+ }
175
+ }
176
+ }
177
+ ]
178
+ },
179
+ "ifdef": {
180
+ "patterns": [
181
+ {
182
+ "contentName": "meta.preprocessor.objectscript",
183
+ "begin": "^\\s*(#\\s*(?i)(?:if|ifdef|ifndef|elif|else|undef|endif))\\b",
184
+ "end": "(?=(?:;|//|/\\*))|$",
185
+ "patterns": [
186
+ {
187
+ "include": "#digits"
188
+ },
189
+ {
190
+ "include": "#comment-line"
191
+ }
192
+ ],
193
+ "beginCaptures": {
194
+ "1": {
195
+ "name": "keyword.control.objectscript"
196
+ }
197
+ }
198
+ }
199
+ ]
200
+ },
201
+ "include": {
202
+ "patterns": [
203
+ {
204
+ "begin": "^\\s*(\\#\\s*(?:(?i)include))\\s+([a-zA-Z%][a-zA-Z0-9]*)",
205
+ "end": "(?=$)",
206
+ "beginCaptures": {
207
+ "1": {
208
+ "name": "keyword.other.objectscript"
209
+ },
210
+ "2": {
211
+ "name": "entity.name.objectscript"
212
+ }
213
+ }
214
+ }
215
+ ]
216
+ },
217
+ "macros": {
218
+ "patterns": [
219
+ {
220
+ "name": "support.constant",
221
+ "match": "\\$\\$\\$[a-zA-Z]([a-zA-Z0-9])*"
222
+ }
223
+ ]
224
+ }
225
+ }
226
+ }
@@ -282,40 +282,13 @@
282
282
  },
283
283
  "attribute": {
284
284
  "name": "meta.attribute.powershell",
285
- "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength)\\b",
285
+ "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b",
286
286
  "end": "(\\])",
287
287
  "patterns": [
288
288
  {
289
289
  "begin": "\\(",
290
290
  "end": "\\)",
291
291
  "patterns": [
292
- {
293
- "include": "#variable"
294
- },
295
- {
296
- "include": "#variableNoProperty"
297
- },
298
- {
299
- "include": "#hashtable"
300
- },
301
- {
302
- "include": "#scriptblock"
303
- },
304
- {
305
- "include": "#doubleQuotedStringEscapes"
306
- },
307
- {
308
- "include": "#doubleQuotedString"
309
- },
310
- {
311
- "include": "#type"
312
- },
313
- {
314
- "include": "#numericConstant"
315
- },
316
- {
317
- "include": "#doubleQuotedString"
318
- },
319
292
  {
320
293
  "include": "$self"
321
294
  },
@@ -329,27 +302,6 @@
329
302
  "name": "keyword.operator.assignment.powershell"
330
303
  }
331
304
  }
332
- },
333
- {
334
- "name": "string.quoted.single.powershell",
335
- "begin": "(?\u003c!')'",
336
- "end": "'(?!')",
337
- "patterns": [
338
- {
339
- "name": "constant.character.escape.powershell",
340
- "match": "''"
341
- }
342
- ],
343
- "beginCaptures": {
344
- "0": {
345
- "name": "punctuation.definition.string.begin.powershell"
346
- }
347
- },
348
- "endCaptures": {
349
- "0": {
350
- "name": "punctuation.definition.string.end.powershell"
351
- }
352
- }
353
305
  }
354
306
  ],
355
307
  "beginCaptures": {
@@ -462,9 +414,6 @@
462
414
  {
463
415
  "include": "#variableNoProperty"
464
416
  },
465
- {
466
- "include": "#variable"
467
- },
468
417
  {
469
418
  "include": "#doubleQuotedStringEscapes"
470
419
  },
@@ -491,7 +440,10 @@
491
440
  "patterns": [
492
441
  {
493
442
  "name": "constant.character.escape.powershell",
494
- "match": "`[0abnfrvt\"'$`]"
443
+ "match": "`[`0abefnrtv\"'$]"
444
+ },
445
+ {
446
+ "include": "#unicodeEscape"
495
447
  },
496
448
  {
497
449
  "name": "constant.character.escape.powershell",
@@ -745,6 +697,18 @@
745
697
  }
746
698
  }
747
699
  },
700
+ "unicodeEscape": {
701
+ "patterns": [
702
+ {
703
+ "name": "constant.character.escape.powershell",
704
+ "match": "`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g\u003c1\u003e{1,5})}"
705
+ },
706
+ {
707
+ "name": "invalid.character.escape.powershell",
708
+ "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?"
709
+ }
710
+ ]
711
+ },
748
712
  "variable": {
749
713
  "patterns": [
750
714
  {
@@ -773,10 +737,10 @@
773
737
  }
774
738
  },
775
739
  {
776
- "match": "(\\$)(?i:(\\$|\\^|\\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b",
740
+ "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?",
777
741
  "captures": {
778
742
  "0": {
779
- "name": "support.constant.automatic.powershell"
743
+ "name": "support.variable.automatic.powershell"
780
744
  },
781
745
  "1": {
782
746
  "name": "punctuation.definition.variable.powershell"
@@ -910,7 +874,7 @@
910
874
  }
911
875
  },
912
876
  {
913
- "match": "(\\$)(?i:(\\$|\\^|\\?|_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This))\\b",
877
+ "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)",
914
878
  "captures": {
915
879
  "0": {
916
880
  "name": "support.variable.automatic.powershell"
@@ -938,7 +902,7 @@
938
902
  }
939
903
  },
940
904
  {
941
- "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))",
905
+ "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))",
942
906
  "captures": {
943
907
  "0": {
944
908
  "name": "variable.other.readwrite.powershell"
@@ -141,7 +141,7 @@
141
141
  },
142
142
  {
143
143
  "name": "keyword.control.rust",
144
- "match": "\\b(break|continue|else|if|in|for|loop|match|return|while)\\b"
144
+ "match": "\\b(async|await|break|continue|else|if|in|for|loop|match|return|try|while)\\b"
145
145
  },
146
146
  {
147
147
  "name": "keyword.other.rust",
@@ -3,238 +3,932 @@
3
3
  "scopeName": "source.sass",
4
4
  "patterns": [
5
5
  {
6
- "name": "meta.attribute-selector.scss",
7
- "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?\u003e(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",
8
- "captures": {
6
+ "name": "meta.variable-declaration.sass",
7
+ "begin": "(?:(!)|(\\$))([a-zA-Z0-9_-]+)\\s*(?=(\\|\\|)?=|:\\s+)",
8
+ "end": "(;)?$",
9
+ "patterns": [
10
+ {
11
+ "name": "meta.property-value.sass",
12
+ "begin": "(?:(:)\\s+)|((\\|\\|)?=)",
13
+ "end": "(?=;?$)",
14
+ "patterns": [
15
+ {
16
+ "include": "#property-value"
17
+ }
18
+ ],
19
+ "beginCaptures": {
20
+ "1": {
21
+ "name": "punctuation.separator.key-value.css"
22
+ },
23
+ "2": {
24
+ "name": "invalid.illegal.deprecated.sass"
25
+ }
26
+ }
27
+ }
28
+ ],
29
+ "beginCaptures": {
9
30
  "1": {
10
- "name": "punctuation.definition.entity.scss"
31
+ "name": "invalid.illegal.deprecated.sass"
11
32
  },
12
33
  "2": {
13
- "name": "entity.other.attribute-name.attribute.scss"
34
+ "name": "punctuation.definition.entity.sass"
14
35
  },
15
36
  "3": {
16
- "name": "punctuation.separator.operator.scss"
17
- },
18
- "4": {
19
- "name": "string.unquoted.attribute-value.scss"
20
- },
21
- "5": {
22
- "name": "string.quoted.double.attribute-value.scss"
23
- },
24
- "6": {
25
- "name": "punctuation.definition.string.begin.scss"
26
- },
27
- "7": {
28
- "name": "punctuation.definition.string.end.scss"
37
+ "name": "variable.other.sass"
38
+ }
39
+ },
40
+ "endCaptures": {
41
+ "1": {
42
+ "name": "invalid.illegal.punctuation.sass"
29
43
  }
30
44
  }
31
45
  },
32
46
  {
33
- "name": "support.function.name.sass",
34
- "match": "(?\u003c=@include|@mixin)\\s[a-zA-Z0-9_-]+"
35
- },
36
- {
37
- "name": "keyword.control.at-rule.css.sass",
38
- "match": "(@media\\s(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)*)|(@else\\s(if)*)|@[a-zA-Z-]+"
39
- },
40
- {
41
- "include": "#variable"
42
- },
43
- {
44
- "include": "#placeholder-selector"
45
- },
46
- {
47
- "name": "support.type.property-name.css.sass",
48
- "match": "[a-z-]+(?=:)|\\b(from|through|to|in)\\b"
49
- },
50
- {
51
- "name": "keyword.control.at-rule.sass",
52
- "match": "@(import|for|else|each|mixin|include|charset|import|media|page|namespace|extend)\\s[\\%\\/\\.\\w-]*\\b"
47
+ "name": "meta.at-rule.if.sass",
48
+ "begin": "\\s*((@)if\\b)\\s+",
49
+ "end": "(;)?$",
50
+ "patterns": [
51
+ {
52
+ "include": "#property-value"
53
+ }
54
+ ],
55
+ "beginCaptures": {
56
+ "1": {
57
+ "name": "keyword.control.if.sass"
58
+ },
59
+ "2": {
60
+ "name": "punctuation.definition.entity.sass"
61
+ }
62
+ },
63
+ "endCaptures": {
64
+ "1": {
65
+ "name": "invalid.illegal.punctuation.sass"
66
+ }
67
+ }
53
68
  },
54
69
  {
55
- "name": "keyword.other.important.css.sass",
56
- "match": "!(important|default|optional)"
70
+ "name": "meta.at-rule.else.sass",
71
+ "begin": "\\s*((@)(?:(?:else(?=\\s*$))|(?:else\\s+if\\s+(?=\\S+))))",
72
+ "end": "(;)?$",
73
+ "patterns": [
74
+ {
75
+ "include": "#property-value"
76
+ }
77
+ ],
78
+ "beginCaptures": {
79
+ "1": {
80
+ "name": "keyword.control.else.sass"
81
+ },
82
+ "2": {
83
+ "name": "punctuation.definition.entity.sass"
84
+ }
85
+ },
86
+ "endCaptures": {
87
+ "1": {
88
+ "name": "invalid.illegal.punctuation.sass"
89
+ }
90
+ }
57
91
  },
58
92
  {
59
- "name": "entity.name.tag.wildcard.scss",
60
- "match": "\\*"
93
+ "name": "meta.at-rule.while.sass",
94
+ "begin": "\\s*((@)while\\b)\\s+",
95
+ "end": "(;)?$",
96
+ "patterns": [
97
+ {
98
+ "include": "#property-value"
99
+ }
100
+ ],
101
+ "beginCaptures": {
102
+ "1": {
103
+ "name": "keyword.control.while.sass"
104
+ },
105
+ "2": {
106
+ "name": "punctuation.definition.entity.sass"
107
+ }
108
+ },
109
+ "endCaptures": {
110
+ "1": {
111
+ "name": "invalid.illegal.punctuation.sass"
112
+ }
113
+ }
61
114
  },
62
115
  {
63
- "name": "keyword.other.unit.scss",
64
- "match": "(?\u003c=[\\d])(ch|cm|deg|dpi|dpcm|dppx|em|ex|grad|in|mm|ms|pc|pt|px|rad|rem|turn|s|vh|vmin|vw)\\b|%"
116
+ "name": "meta.at-rule.for.sass",
117
+ "begin": "\\s*((@)for\\b)\\s+",
118
+ "end": "(;)?$",
119
+ "patterns": [
120
+ {
121
+ "include": "#property-value"
122
+ }
123
+ ],
124
+ "beginCaptures": {
125
+ "1": {
126
+ "name": "keyword.control.for.sass"
127
+ },
128
+ "2": {
129
+ "name": "punctuation.definition.entity.sass"
130
+ }
131
+ },
132
+ "endCaptures": {
133
+ "1": {
134
+ "name": "invalid.illegal.punctuation.sass"
135
+ }
136
+ }
65
137
  },
66
138
  {
67
- "name": "keyword.control.untitled",
68
- "match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b"
139
+ "name": "meta.at-rule.each.sass",
140
+ "begin": "\\s*((@)each\\b)\\s+",
141
+ "end": "(;)?$",
142
+ "patterns": [
143
+ {
144
+ "include": "#property-value"
145
+ }
146
+ ],
147
+ "beginCaptures": {
148
+ "1": {
149
+ "name": "keyword.control.each.sass"
150
+ },
151
+ "2": {
152
+ "name": "punctuation.definition.entity.sass"
153
+ }
154
+ },
155
+ "endCaptures": {
156
+ "1": {
157
+ "name": "invalid.illegal.punctuation.sass"
158
+ }
159
+ }
69
160
  },
70
161
  {
71
- "name": "keyword.control.mixin-shorthand.sass",
72
- "match": "(?\u003c![!\u003c\u003e=a-zA-Z0-9_-]|[\u003c\u003e=a-zA-Z0-9_-] )[=+][a-zA-Z0-9_-]+"
162
+ "name": "meta.at-rule.function.sass",
163
+ "begin": "^((@)function\\b)\\s*([a-zA-Z0-9_-]+)",
164
+ "end": "(;)?$",
165
+ "patterns": [
166
+ {
167
+ "include": "#property-value"
168
+ }
169
+ ],
170
+ "beginCaptures": {
171
+ "1": {
172
+ "name": "keyword.control.at-rule.function.sass"
173
+ },
174
+ "2": {
175
+ "name": "punctuation.definition.entity.sass"
176
+ },
177
+ "3": {
178
+ "name": "support.function.misc.sass"
179
+ }
180
+ },
181
+ "endCaptures": {
182
+ "1": {
183
+ "name": "invalid.illegal.punctuation.sass"
184
+ }
185
+ }
73
186
  },
74
187
  {
75
- "name": "string.quoted.single.sass",
76
- "begin": "'",
77
- "end": "'",
188
+ "name": "meta.at-rule.return.sass",
189
+ "begin": "\\s*((@)return\\b)\\s+",
190
+ "end": "(;)?$",
78
191
  "patterns": [
79
192
  {
80
- "name": "constant.character.escaped.sass",
81
- "match": "\\\\."
193
+ "include": "#property-value"
82
194
  }
83
- ]
195
+ ],
196
+ "beginCaptures": {
197
+ "1": {
198
+ "name": "keyword.control.return.sass"
199
+ },
200
+ "2": {
201
+ "name": "punctuation.definition.entity.sass"
202
+ }
203
+ },
204
+ "endCaptures": {
205
+ "1": {
206
+ "name": "invalid.illegal.punctuation.sass"
207
+ }
208
+ }
84
209
  },
85
210
  {
86
- "name": "string.quoted.double.sass",
87
- "begin": "\"",
88
- "end": "\"",
211
+ "name": "meta.variable-declaration.sass.mixin",
212
+ "begin": "^(=\\s*|(?:(@)mixin))\\s+([a-zA-Z0-9_-]+)",
213
+ "end": "(;)?$",
89
214
  "patterns": [
90
215
  {
91
- "name": "constant.character.escaped.sass",
92
- "match": "\\\\."
216
+ "include": "#property-value"
93
217
  }
94
- ]
218
+ ],
219
+ "beginCaptures": {
220
+ "1": {
221
+ "name": "keyword.control.at-rule.mixin.sass"
222
+ },
223
+ "2": {
224
+ "name": "punctuation.definition.entity.sass"
225
+ },
226
+ "3": {
227
+ "name": "variable.other.sass"
228
+ }
229
+ },
230
+ "endCaptures": {
231
+ "1": {
232
+ "name": "invalid.illegal.punctuation.sass"
233
+ }
234
+ }
95
235
  },
96
236
  {
97
- "name": "entity.other.attribute-name.class.sass",
98
- "match": "[\\.%][a-zA-Z0-9_-]+"
237
+ "name": "meta.at-rule.content.sass",
238
+ "begin": "\\s*((@)content)\\s*$",
239
+ "end": "(;)?$",
240
+ "patterns": [
241
+ {
242
+ "include": "#property-value"
243
+ }
244
+ ],
245
+ "beginCaptures": {
246
+ "1": {
247
+ "name": "keyword.control.content.sass"
248
+ },
249
+ "2": {
250
+ "name": "punctuation.definition.entity.sass"
251
+ }
252
+ },
253
+ "endCaptures": {
254
+ "1": {
255
+ "name": "invalid.illegal.punctuation.sass"
256
+ }
257
+ }
99
258
  },
100
259
  {
101
- "name": "constant.other.rgb-value.sass",
102
- "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b"
260
+ "name": "meta.function.include.sass",
261
+ "begin": "^\\s*(\\+(?!\\s+)|(?:(@)include(?=\\s+)))\\s*([a-zA-Z0-9_-]+)",
262
+ "end": "(;)?$",
263
+ "patterns": [
264
+ {
265
+ "include": "#property-value"
266
+ }
267
+ ],
268
+ "beginCaptures": {
269
+ "1": {
270
+ "name": "keyword.control.at-rule.include.sass"
271
+ },
272
+ "2": {
273
+ "name": "punctuation.definition.entity.sass"
274
+ },
275
+ "3": {
276
+ "name": "variable.other.sass"
277
+ }
278
+ },
279
+ "endCaptures": {
280
+ "1": {
281
+ "name": "invalid.illegal.punctuation.sass"
282
+ }
283
+ }
103
284
  },
104
285
  {
105
- "name": "keyword.other.important.css.sass",
106
- "match": "!(important|default|optional)"
286
+ "name": "meta.function.extend.sass",
287
+ "match": "^\\s*(@extend)\\s+([.*\u0026#%a-zA-Z][-_:.*\u0026#a-zA-Z]*)\\s*(;)?\\s*$",
288
+ "captures": {
289
+ "1": {
290
+ "name": "keyword.control.at-rule.extend.sass"
291
+ },
292
+ "2": {
293
+ "name": "variable.other.sass"
294
+ },
295
+ "3": {
296
+ "name": "invalid.illegal.punctuation.sass"
297
+ }
298
+ }
107
299
  },
108
300
  {
109
- "name": "entity.other.attribute-name.id.sass",
110
- "match": "#[a-zA-Z0-9_-]+"
301
+ "name": "meta.at-rule.warn.sass",
302
+ "begin": "\\s*((@)(warn|debug|error)\\b)\\s*",
303
+ "end": "(;)?$",
304
+ "patterns": [
305
+ {
306
+ "include": "#string-single"
307
+ },
308
+ {
309
+ "include": "#string-double"
310
+ }
311
+ ],
312
+ "beginCaptures": {
313
+ "1": {
314
+ "name": "keyword.control.warn.sass"
315
+ },
316
+ "2": {
317
+ "name": "punctuation.definition.entity.sass"
318
+ }
319
+ },
320
+ "endCaptures": {
321
+ "1": {
322
+ "name": "invalid.illegal.punctuation.sass"
323
+ }
324
+ }
111
325
  },
112
326
  {
113
- "name": "variable.parameter.sass",
114
- "match": "[!\\$][a-zA-Z0-9_-]+"
327
+ "name": "meta.at-rule.at-root.sass",
328
+ "begin": "^\\s*((@)at-root)(?!(?:\\s+[^.\\(])|(?:\\s+\\((?!with)))",
329
+ "end": "(;)?$",
330
+ "patterns": [
331
+ {
332
+ "match": "(?:(\\((?:with(?:out)?)\\s*:\\s*[a-zA-Z ]+\\))|((?:[.*\u0026#a][:*\u0026#a-zA-Z]+)+))",
333
+ "captures": {
334
+ "1": {
335
+ "name": "support.function.misc.sass"
336
+ },
337
+ "2": {
338
+ "name": ".entity.other.attribute-name"
339
+ }
340
+ }
341
+ }
342
+ ],
343
+ "beginCaptures": {
344
+ "1": {
345
+ "name": "keyword.control.at-root.sass"
346
+ },
347
+ "2": {
348
+ "name": "punctuation.definition.entity.sass"
349
+ }
350
+ },
351
+ "endCaptures": {
352
+ "1": {
353
+ "name": "invalid.illegal.punctuation.sass"
354
+ }
355
+ }
115
356
  },
116
357
  {
117
- "name": "comment.block.sass",
118
- "begin": "/\\*",
119
- "end": "\\*/"
358
+ "name": "meta.variable-usage.sass",
359
+ "begin": "^\\s*(\\+)([a-zA-Z0-9_-]+)",
360
+ "end": "(;)?$",
361
+ "patterns": [
362
+ {
363
+ "name": "meta.variable-usage.sass",
364
+ "match": "(!|\\$)([a-zA-Z0-9_-]+)",
365
+ "captures": {
366
+ "1": {
367
+ "name": "punctuation.definition.entity.css"
368
+ },
369
+ "2": {
370
+ "name": "variable.other.sass"
371
+ }
372
+ }
373
+ },
374
+ {
375
+ "include": "#string-single"
376
+ },
377
+ {
378
+ "include": "#string-double"
379
+ }
380
+ ],
381
+ "beginCaptures": {
382
+ "1": {
383
+ "name": "punctuation.definition.entity.sass"
384
+ },
385
+ "2": {
386
+ "name": "variable.other.sass"
387
+ },
388
+ "3": {
389
+ "name": "punctuation.definition.entity.sass"
390
+ }
391
+ },
392
+ "endCaptures": {
393
+ "1": {
394
+ "name": "invalid.illegal.punctuation.sass"
395
+ }
396
+ }
120
397
  },
121
398
  {
122
- "name": "comment.line.double-slash.sass",
123
- "begin": "//",
124
- "end": "$\\n?"
399
+ "name": "meta.selector.css",
400
+ "begin": "(?=[.*\u0026#\\[a-zA-Z][:.*\u0026#a-zA-Z]*)",
401
+ "end": "(;)?$",
402
+ "patterns": [
403
+ {
404
+ "include": "#comments"
405
+ },
406
+ {
407
+ "match": "(\u0026)([a-zA-Z0-9_-]*)",
408
+ "captures": {
409
+ "1": {
410
+ "name": "keyword.other.parent-reference.sass"
411
+ },
412
+ "2": {
413
+ "name": "entity.other.attribute-name.parent-selector-suffix.sass"
414
+ }
415
+ }
416
+ },
417
+ {
418
+ "name": "entity.other.attribute-name.class.sass",
419
+ "match": "(\\.)[a-zA-Z0-9_-]+",
420
+ "captures": {
421
+ "1": {
422
+ "name": "punctuation.definition.entity.css"
423
+ }
424
+ }
425
+ },
426
+ {
427
+ "include": "source.css#tag-names"
428
+ },
429
+ {
430
+ "name": "entity.other.attribute-name.id.css.sass",
431
+ "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*",
432
+ "captures": {
433
+ "1": {
434
+ "name": "punctuation.definition.entity.sass"
435
+ }
436
+ }
437
+ },
438
+ {
439
+ "name": "entity.name.tag.wildcard.sass",
440
+ "match": "\\*"
441
+ },
442
+ {
443
+ "include": "source.css#pseudo-classes"
444
+ },
445
+ {
446
+ "include": "source.css#pseudo-elements"
447
+ },
448
+ {
449
+ "include": "source.css#functional-pseudo-classes"
450
+ },
451
+ {
452
+ "name": "meta.attribute-selector.css.sass",
453
+ "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][-_a-z0-9\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][-_a-z0-9\\\\[[:^ascii:]]]*)|((?\u003e(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(])",
454
+ "captures": {
455
+ "1": {
456
+ "name": "punctuation.definition.attribute-selector.begin.bracket.square.sass"
457
+ },
458
+ "2": {
459
+ "name": "entity.other.attribute-name.attribute.sass"
460
+ },
461
+ "3": {
462
+ "name": "keyword.operator.sass"
463
+ },
464
+ "4": {
465
+ "name": "string.unquoted.attribute-value.sass"
466
+ },
467
+ "5": {
468
+ "name": "string.quoted.double.attribute-value.sass"
469
+ },
470
+ "6": {
471
+ "name": "punctuation.definition.string.begin.sass"
472
+ },
473
+ "7": {
474
+ "name": "punctuation.definition.string.end.sass"
475
+ },
476
+ "8": {
477
+ "name": "punctuation.definition.attribute-selector.end.bracket.square.sass"
478
+ }
479
+ }
480
+ }
481
+ ],
482
+ "endCaptures": {
483
+ "1": {
484
+ "name": "invalid.illegal.punctuation.sass"
485
+ }
486
+ }
125
487
  },
126
488
  {
127
- "name": "constant.numeric.sass",
128
- "match": "(-|\\+)?\\s*[0-9]+(\\.[0-9]+)?"
489
+ "include": "#comments"
129
490
  },
130
491
  {
131
- "name": "support.constant.property-value.sass",
132
- "match": "\\b(whitespace|wait|w-resize|visible|rect|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
492
+ "name": "meta.variable-declaration.sass.mixin",
493
+ "begin": "^(=|@keyframes\\s+)([a-zA-Z0-9_-]+)",
494
+ "end": "(;)?$",
495
+ "patterns": [
496
+ {
497
+ "include": "#property-value"
498
+ }
499
+ ],
500
+ "beginCaptures": {
501
+ "1": {
502
+ "name": "keyword.control.at-rule.keyframes.sass"
503
+ },
504
+ "2": {
505
+ "name": "variable.other.sass"
506
+ }
507
+ },
508
+ "endCaptures": {
509
+ "1": {
510
+ "name": "invalid.illegal.punctuation.sass"
511
+ }
512
+ }
133
513
  },
134
514
  {
135
- "name": "constant.string.sass",
136
- "match": "(left|right|true|false|top|bottom)(?!:)"
515
+ "name": "meta.at-rule.import.sass",
516
+ "begin": "^\\s*((@)import\\b)",
517
+ "end": "(;)?$",
518
+ "patterns": [
519
+ {
520
+ "include": "#string-double"
521
+ },
522
+ {
523
+ "begin": "(url)\\s*(\\()\\s*",
524
+ "end": "\\s*(\\))\\s*",
525
+ "patterns": [
526
+ {
527
+ "name": "variable.parameter.url.sass",
528
+ "match": "[^'\") \\t]+"
529
+ },
530
+ {
531
+ "include": "#string-single"
532
+ },
533
+ {
534
+ "include": "#string-double"
535
+ }
536
+ ],
537
+ "beginCaptures": {
538
+ "1": {
539
+ "name": "support.function.url.sass"
540
+ },
541
+ "2": {
542
+ "name": "punctuation.section.function.sass"
543
+ }
544
+ },
545
+ "endCaptures": {
546
+ "1": {
547
+ "name": "punctuation.section.function.sass"
548
+ }
549
+ }
550
+ },
551
+ {
552
+ "name": "variable.parameter.url.sass",
553
+ "match": "([^\"'\\n;]+)"
554
+ }
555
+ ],
556
+ "beginCaptures": {
557
+ "1": {
558
+ "name": "keyword.control.at-rule.import.sass"
559
+ },
560
+ "2": {
561
+ "name": "punctuation.definition.keyword.sass"
562
+ }
563
+ },
564
+ "endCaptures": {
565
+ "1": {
566
+ "name": "invalid.illegal.punctuation.sass"
567
+ }
568
+ }
137
569
  },
138
570
  {
139
- "begin": "(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|-o|-khtml|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))\\s*(\\()",
140
- "end": "(\\))",
571
+ "name": "meta.at-rule.media.sass",
572
+ "begin": "^\\s*((@)media)\\b",
573
+ "end": "$",
141
574
  "patterns": [
142
575
  {
143
- "include": "#double-quoted"
576
+ "name": "keyword.control.operator.css.sass",
577
+ "match": "\\b(only)\\b"
144
578
  },
145
579
  {
146
- "include": "#single-quoted"
580
+ "name": "meta.property-list.media-query.sass",
581
+ "begin": "\\(",
582
+ "end": "\\)",
583
+ "patterns": [
584
+ {
585
+ "name": "meta.property-name.media-query.sass",
586
+ "begin": "(?\u003c![-a-z])(?=[-a-z])",
587
+ "end": "$|(?![-a-z])",
588
+ "patterns": [
589
+ {
590
+ "include": "source.css#media-features"
591
+ },
592
+ {
593
+ "include": "source.css#property-names"
594
+ }
595
+ ]
596
+ },
597
+ {
598
+ "contentName": "meta.property-value.media-query.sass",
599
+ "begin": "(:)\\s*",
600
+ "end": "\\s*(?=\\))",
601
+ "patterns": [
602
+ {
603
+ "include": "#property-value"
604
+ }
605
+ ],
606
+ "beginCaptures": {
607
+ "1": {
608
+ "name": "punctuation.separator.key-value.sass"
609
+ }
610
+ }
611
+ }
612
+ ],
613
+ "beginCaptures": {
614
+ "0": {
615
+ "name": "punctuation.definition.media-query.begin.bracket.round.sass"
616
+ }
617
+ },
618
+ "endCaptures": {
619
+ "0": {
620
+ "name": "punctuation.definition.media-query.end.bracket.round.sass"
621
+ }
622
+ }
147
623
  },
148
624
  {
149
- "include": "#variable"
625
+ "include": "#variable-usage"
150
626
  },
151
627
  {
152
- "name": "keyword.other.regex.sass",
153
- "match": "\\^|\\$|\\*|~"
628
+ "include": "#conditional-operators"
154
629
  },
155
630
  {
156
- "include": "#parameters"
631
+ "include": "source.css#media-types"
157
632
  }
158
633
  ],
159
634
  "beginCaptures": {
160
635
  "1": {
161
- "name": "support.function.misc.scss"
636
+ "name": "keyword.control.at-rule.media.sass"
162
637
  },
163
638
  "2": {
164
- "name": "punctuation.section.function.scss"
639
+ "name": "punctuation.definition.keyword.sass"
640
+ }
641
+ }
642
+ },
643
+ {
644
+ "begin": "^\\s+(:)(?=[-a-z])",
645
+ "end": "(;)?$",
646
+ "patterns": [
647
+ {
648
+ "include": "#property-name"
649
+ },
650
+ {
651
+ "name": "meta.property-value.sass",
652
+ "begin": "\\s+",
653
+ "end": "(?=;?$)",
654
+ "patterns": [
655
+ {
656
+ "include": "#property-value"
657
+ }
658
+ ]
659
+ }
660
+ ],
661
+ "beginCaptures": {
662
+ "1": {
663
+ "name": "punctuation.separator.key-value.css"
165
664
  }
166
665
  },
167
666
  "endCaptures": {
168
667
  "1": {
169
- "name": "punctuation.section.function.scss"
668
+ "name": "invalid.illegal.punctuation.sass"
170
669
  }
171
670
  }
172
671
  },
173
672
  {
174
- "name": "keyword.control.untitled",
175
- "match": "\u0026"
176
- },
177
- {
178
- "name": "entity.other.attribute-name.tag.pseudo-class",
179
- "match": ":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"
180
- },
181
- {
182
- "name": "entity.other.attribute-name.tag.pseudo-element",
183
- "match": "::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"
184
- },
185
- {
186
- "name": "support.type.property-name.sass",
187
- "match": "\\b(-webkit-[A-Za-z]+|-moz-[A-Za-z]+|-o-[A-Za-z]+|-ms-[A-Za-z]+|-khtml-[A-Za-z]+|[0-9]{1,3}\\%|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resolution|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|grid-rows|grid-columns|grid|gap|font-weight|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-group|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|backface-visibility|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation|alignment-baseline|alignment-adjust|alignment|align-last|align|after|adjust)\\b"
673
+ "begin": "^\\s+([-A-Za-z]+)\\s*(?=(\\|\\|)?=|:[ \\t]+)",
674
+ "end": "(;)?$",
675
+ "patterns": [
676
+ {
677
+ "name": "meta.property-value.sass",
678
+ "begin": "(?:(:)\\s+)|((\\|\\|)?=)",
679
+ "end": "(?=;?$)",
680
+ "patterns": [
681
+ {
682
+ "include": "#property-value"
683
+ }
684
+ ],
685
+ "beginCaptures": {
686
+ "1": {
687
+ "name": "punctuation.separator.key-value.css"
688
+ },
689
+ "2": {
690
+ "name": "invalid.illegal.deprecated.sass"
691
+ }
692
+ }
693
+ }
694
+ ],
695
+ "beginCaptures": {
696
+ "1": {
697
+ "patterns": [
698
+ {
699
+ "include": "#property-name"
700
+ }
701
+ ]
702
+ },
703
+ "2": {
704
+ "name": "punctuation.separator.key-value.css"
705
+ },
706
+ "3": {
707
+ "name": "invalid.illegal.deprecated.sass"
708
+ }
709
+ },
710
+ "endCaptures": {
711
+ "1": {
712
+ "name": "invalid.illegal.punctuation.sass"
713
+ }
714
+ }
715
+ }
716
+ ],
717
+ "repository": {
718
+ "comments": {
719
+ "patterns": [
720
+ {
721
+ "match": "\\w+\\s*((//|/\\*).*)",
722
+ "captures": {
723
+ "1": {
724
+ "name": "invalid.illegal.sass"
725
+ }
726
+ }
727
+ },
728
+ {
729
+ "name": "comment.block.documentation.sass",
730
+ "begin": "^(\\s*)(///)",
731
+ "end": "^(?!\\s\\1)",
732
+ "patterns": [
733
+ {
734
+ "include": "source.sassdoc"
735
+ }
736
+ ],
737
+ "beginCaptures": {
738
+ "2": {
739
+ "name": "punctuation.definition.comment.sass"
740
+ }
741
+ }
742
+ },
743
+ {
744
+ "name": "comment.block.sass",
745
+ "begin": "^(\\s*)(/\\*)",
746
+ "end": "(\\*/)|^(?!\\s\\1)",
747
+ "beginCaptures": {
748
+ "2": {
749
+ "name": "punctuation.definition.comment.sass"
750
+ }
751
+ },
752
+ "endCaptures": {
753
+ "1": {
754
+ "name": "punctuation.definition.comment.sass"
755
+ }
756
+ }
757
+ },
758
+ {
759
+ "name": "comment.line.sass",
760
+ "begin": "^(\\s*)(//)",
761
+ "end": "^(?!\\s\\1)",
762
+ "beginCaptures": {
763
+ "2": {
764
+ "name": "punctuation.definition.comment.sass"
765
+ }
766
+ }
767
+ }
768
+ ]
188
769
  },
189
- {
190
- "name": "support.constant.font-name.sass",
191
- "match": "(\\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\\b)"
770
+ "conditional-operators": {
771
+ "patterns": [
772
+ {
773
+ "name": "keyword.operator.comparison.sass",
774
+ "match": "==|!=|\u003c=|\u003e=|\u003c|\u003e"
775
+ },
776
+ {
777
+ "name": "keyword.operator.logical.sass",
778
+ "match": "\\b(not|or|and)\\b"
779
+ }
780
+ ]
192
781
  },
193
- {
194
- "name": "support.type.property-name.sass",
195
- "match": "(?\u003e-(webkit|moz|ms|o|apple|khtml|xv|wap|epub)[a-zA-Z0-9_-]+)(?!\\()"
782
+ "property-name": {
783
+ "name": "meta.property-name.sass",
784
+ "begin": "(?=[-A-Za-z]+)",
785
+ "end": "(?!\\G)",
786
+ "patterns": [
787
+ {
788
+ "include": "source.css#property-names"
789
+ }
790
+ ]
196
791
  },
197
- {
198
- "name": "helper.sublime.property-name.sass",
199
- "match": "(?\u003c=\\s\\s)-?\\w\\n?"
792
+ "property-value": {
793
+ "patterns": [
794
+ {
795
+ "include": "source.css#numeric-values"
796
+ },
797
+ {
798
+ "name": "keyword.operator.css",
799
+ "match": "[-+*/](?!\\s*[-+*/])"
800
+ },
801
+ {
802
+ "include": "#variable-usage"
803
+ },
804
+ {
805
+ "name": "support.constant.property-value.css.sass",
806
+ "match": "\\b(true|false)\\b"
807
+ },
808
+ {
809
+ "include": "source.css#property-keywords"
810
+ },
811
+ {
812
+ "include": "source.css#color-keywords"
813
+ },
814
+ {
815
+ "name": "constant.other.color.rgb-value.css",
816
+ "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",
817
+ "captures": {
818
+ "1": {
819
+ "name": "punctuation.definition.constant.css"
820
+ }
821
+ }
822
+ },
823
+ {
824
+ "include": "#string-double"
825
+ },
826
+ {
827
+ "include": "#string-single"
828
+ },
829
+ {
830
+ "begin": "(rgb|url|attr|counter|counters|local|format)\\s*(\\()",
831
+ "end": "(\\))",
832
+ "patterns": [
833
+ {
834
+ "include": "#string-single"
835
+ },
836
+ {
837
+ "include": "#string-double"
838
+ },
839
+ {
840
+ "name": "constant.other.color.rgb-value.sass",
841
+ "match": "(\\b0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\s*,\\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\\b)"
842
+ },
843
+ {
844
+ "name": "constant.other.color.rgb-percentage.sass",
845
+ "match": "\\b([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%,\\s*([0-9]{1,2}|100)\\s*%"
846
+ },
847
+ {
848
+ "name": "variable.parameter.misc.sass",
849
+ "match": "[^'\") \\t]+"
850
+ }
851
+ ],
852
+ "beginCaptures": {
853
+ "1": {
854
+ "name": "support.function.misc.sass"
855
+ },
856
+ "2": {
857
+ "name": "punctuation.section.function.sass"
858
+ }
859
+ },
860
+ "endCaptures": {
861
+ "1": {
862
+ "name": "punctuation.section.function.sass"
863
+ }
864
+ }
865
+ },
866
+ {
867
+ "name": "keyword.other.important.sass",
868
+ "match": "!\\s*important"
869
+ },
870
+ {
871
+ "name": "keyword.operator.control.sass",
872
+ "match": "(from|to|through|in)"
873
+ },
874
+ {
875
+ "include": "#conditional-operators"
876
+ }
877
+ ]
200
878
  },
201
- {
202
- "name": "helper.sublime.property-value.sass",
203
- "match": "(?\u003c=\\w: )\\w\\n?"
204
- }
205
- ],
206
- "repository": {
207
- "double-quoted": {
208
- "name": "string.quoted.double.css.sass",
879
+ "string-double": {
880
+ "name": "string.quoted.double.sass",
209
881
  "begin": "\"",
210
- "end": "\""
211
- },
212
- "nested-parens": {
213
- "begin": "\\(",
214
- "end": "\\)",
882
+ "end": "\"",
215
883
  "patterns": [
216
884
  {
217
- "include": "#nested-parens"
885
+ "name": "constant.character.escape.sass",
886
+ "match": "\\\\([[:xdigit:]]{1,6}|.)"
218
887
  }
219
888
  ],
220
- "captures": {
889
+ "beginCaptures": {
221
890
  "0": {
222
- "name": "punctuation.section.scope.sass"
891
+ "name": "punctuation.definition.string.begin.sass"
892
+ }
893
+ },
894
+ "endCaptures": {
895
+ "0": {
896
+ "name": "punctuation.definition.string.end.sass"
223
897
  }
224
898
  }
225
899
  },
226
- "placeholder-selector": {
227
- "name": "entity.other.attribute-name.placeholder-selector.sass",
228
- "match": "%[a-zA-Z0-9_-]+"
229
- },
230
- "single-quoted": {
231
- "name": "string.quoted.single.css.sass",
900
+ "string-single": {
901
+ "name": "string.quoted.single.sass",
232
902
  "begin": "'",
233
- "end": "'"
903
+ "end": "'",
904
+ "patterns": [
905
+ {
906
+ "name": "constant.character.escape.sass",
907
+ "match": "\\\\([[:xdigit:]]{1,6}|.)"
908
+ }
909
+ ],
910
+ "beginCaptures": {
911
+ "0": {
912
+ "name": "punctuation.definition.string.begin.sass"
913
+ }
914
+ },
915
+ "endCaptures": {
916
+ "0": {
917
+ "name": "punctuation.definition.string.end.sass"
918
+ }
919
+ }
234
920
  },
235
- "variable": {
236
- "name": "variable",
237
- "match": "\\$[a-zA-Z0-9_-]+"
921
+ "variable-usage": {
922
+ "name": "meta.variable-usage.sass",
923
+ "match": "(!|\\$)([a-zA-Z0-9_-]+)",
924
+ "captures": {
925
+ "1": {
926
+ "name": "punctuation.definition.entity.css"
927
+ },
928
+ "2": {
929
+ "name": "variable.other.sass"
930
+ }
931
+ }
238
932
  }
239
933
  }
240
934
  }