@@ -34,78 +34,11 @@ define(function(require, exports, module) {
34
34
var oop = require ( "../lib/oop" ) ;
35
35
var lang = require ( "../lib/lang" ) ;
36
36
var TextHighlightRules = require ( "./text_highlight_rules" ) . TextHighlightRules ;
37
+ var CssHighlightRules = require ( "./css_highlight_rules" ) ;
37
38
38
39
var ScssHighlightRules = function ( ) {
39
40
40
- var properties = lang . arrayToMap ( ( function ( ) {
41
-
42
- var browserPrefix = ( "-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-" ) . split ( "|" ) ;
43
-
44
- var prefixProperties = ( "appearance|background-clip|background-inline-policy|background-origin|" +
45
- "background-size|binding|border-bottom-colors|border-left-colors|" +
46
- "border-right-colors|border-top-colors|border-end|border-end-color|" +
47
- "border-end-style|border-end-width|border-image|border-start|" +
48
- "border-start-color|border-start-style|border-start-width|box-align|" +
49
- "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" +
50
- "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" +
51
- "column-rule-width|column-rule-style|column-rule-color|float-edge|" +
52
- "font-feature-settings|font-language-override|force-broken-image-icon|" +
53
- "image-region|margin-end|margin-start|opacity|outline|outline-color|" +
54
- "outline-offset|outline-radius|outline-radius-bottomleft|" +
55
- "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" +
56
- "outline-style|outline-width|padding-end|padding-start|stack-sizing|" +
57
- "tab-size|text-blink|text-decoration-color|text-decoration-line|" +
58
- "text-decoration-style|transform|transform-origin|transition|" +
59
- "transition-delay|transition-duration|transition-property|" +
60
- "transition-timing-function|user-focus|user-input|user-modify|user-select|" +
61
- "window-shadow|border-radius" ) . split ( "|" ) ;
62
-
63
- var properties = ( "azimuth|background-attachment|background-color|background-image|" +
64
- "background-position|background-repeat|background|border-bottom-color|" +
65
- "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" +
66
- "border-color|border-left-color|border-left-style|border-left-width|" +
67
- "border-left|border-right-color|border-right-style|border-right-width|" +
68
- "border-right|border-spacing|border-style|border-top-color|" +
69
- "border-top-style|border-top-width|border-top|border-width|border|bottom|" +
70
- "box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|" +
71
- "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" +
72
- "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" +
73
- "font-stretch|font-style|font-variant|font-weight|font|height|left|" +
74
- "letter-spacing|line-height|list-style-image|list-style-position|" +
75
- "list-style-type|list-style|margin-bottom|margin-left|margin-right|" +
76
- "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" +
77
- "min-width|opacity|orphans|outline-color|" +
78
- "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" +
79
- "padding-left|padding-right|padding-top|padding|page-break-after|" +
80
- "page-break-before|page-break-inside|page|pause-after|pause-before|" +
81
- "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" +
82
- "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" +
83
- "stress|table-layout|text-align|text-decoration|text-indent|" +
84
- "text-shadow|text-transform|top|unicode-bidi|vertical-align|" +
85
- "visibility|voice-family|volume|white-space|widows|width|word-spacing|" +
86
- "z-index" ) . split ( "|" ) ;
87
-
88
- //The return array
89
- var ret = [ ] ;
90
-
91
- //All prefixProperties will get the browserPrefix in
92
- //the begning by join the prefixProperties array with the value of browserPrefix
93
- for ( var i = 0 , ln = browserPrefix . length ; i < ln ; i ++ ) {
94
- Array . prototype . push . apply (
95
- ret ,
96
- ( ( browserPrefix [ i ] + prefixProperties . join ( "|" + browserPrefix [ i ] ) ) . split ( "|" ) )
97
- ) ;
98
- }
99
-
100
- //Add also prefixProperties and properties without any browser prefix
101
- Array . prototype . push . apply ( ret , prefixProperties ) ;
102
- Array . prototype . push . apply ( ret , properties ) ;
103
-
104
- return ret ;
105
-
106
- } ) ( ) ) ;
107
-
108
-
41
+ var properties = lang . arrayToMap ( CssHighlightRules . supportType . split ( "|" ) ) ;
109
42
110
43
var functions = lang . arrayToMap (
111
44
( "hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|" +
@@ -115,56 +48,9 @@ var ScssHighlightRules = function() {
115
48
"scale_color|transparentize|type_of|unit|unitless|unquote" ) . split ( "|" )
116
49
) ;
117
50
118
- var constants = lang . arrayToMap (
119
- ( "absolute|all-scroll|always|armenian|auto|baseline|below|bidi-override|" +
120
- "block|bold|bolder|border-box|both|bottom|break-all|break-word|capitalize|center|" +
121
- "char|circle|cjk-ideographic|col-resize|collapse|content-box|crosshair|dashed|" +
122
- "decimal-leading-zero|decimal|default|disabled|disc|" +
123
- "distribute-all-lines|distribute-letter|distribute-space|" +
124
- "distribute|dotted|double|e-resize|ellipsis|fixed|georgian|groove|" +
125
- "hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|" +
126
- "ideograph-alpha|ideograph-numeric|ideograph-parenthesis|" +
127
- "ideograph-space|inactive|inherit|inline-block|inline|inset|inside|" +
128
- "inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|" +
129
- "keep-all|left|lighter|line-edge|line-through|line|list-item|loose|" +
130
- "lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|" +
131
- "medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|" +
132
- "nw-resize|none|normal|not-allowed|nowrap|oblique|outset|outside|" +
133
- "overline|pointer|progress|relative|repeat-x|repeat-y|repeat|right|" +
134
- "ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|" +
135
- "solid|square|static|strict|super|sw-resize|table-footer-group|" +
136
- "table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|" +
137
- "transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|" +
138
- "vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|" +
139
- "zero" ) . split ( "|" )
140
- ) ;
51
+ var constants = lang . arrayToMap ( CssHighlightRules . supportConstant . split ( "|" ) ) ;
141
52
142
- var colors = lang . arrayToMap (
143
- ( "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|" +
144
- "blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|" +
145
- "chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|" +
146
- "darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|" +
147
- "darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|" +
148
- "darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|" +
149
- "darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|" +
150
- "dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|" +
151
- "ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|" +
152
- "hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|" +
153
- "lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|" +
154
- "lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|" +
155
- "lightsalmon|lightseagreen|lightskyblue|lightslategray|" +
156
- "lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|" +
157
- "magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|" +
158
- "mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|" +
159
- "mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|" +
160
- "moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|" +
161
- "orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|" +
162
- "papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|" +
163
- "red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|" +
164
- "seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|" +
165
- "springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|" +
166
- "wheat|white|whitesmoke|yellow|yellowgreen" ) . split ( "|" )
167
- ) ;
53
+ var colors = lang . arrayToMap ( CssHighlightRules . supportConstantColor . split ( "|" ) ) ;
168
54
169
55
var keywords = lang . arrayToMap (
170
56
( "@mixin|@extend|@include|@import|@media|@debug|@warn|@if|@for|@each|@while|@else|@font-face|@-webkit-keyframes|if|and|!default|module|def|end|declare" ) . split ( "|" )
@@ -216,7 +102,7 @@ var ScssHighlightRules = function() {
216
102
next : "qstring"
217
103
} , {
218
104
token : "constant.numeric" ,
219
- regex : numRe + "(?:em|ex|px|cm|mm| in|pt| pc|deg| rad|grad|ms|s|hz|khz |%)"
105
+ regex : numRe + "(?:ch|cm|deg| em|ex|fr|gd|grad|Hz| in|kHz|mm|ms| pc|pt|px| rad|rem|s|turn|vh|vmax|vmin|vm|vw |%)"
220
106
} , {
221
107
token : "constant.numeric" , // hex6 color
222
108
regex : "#[a-f0-9]{6}"
0 commit comments