Skip to content

Commit 30f082e

Browse files
committed
Use updated CSS properties for SASS/SCSS highlighting
1 parent 51f53ef commit 30f082e

File tree

1 file changed

+5
-119
lines changed

1 file changed

+5
-119
lines changed

lib/ace/mode/scss_highlight_rules.js

+5-119
Original file line numberDiff line numberDiff line change
@@ -34,78 +34,11 @@ define(function(require, exports, module) {
3434
var oop = require("../lib/oop");
3535
var lang = require("../lib/lang");
3636
var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
37+
var CssHighlightRules = require("./css_highlight_rules");
3738

3839
var ScssHighlightRules = function() {
3940

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("|"));
10942

11043
var functions = lang.arrayToMap(
11144
("hsl|hsla|rgb|rgba|url|attr|counter|counters|abs|adjust_color|adjust_hue|" +
@@ -115,56 +48,9 @@ var ScssHighlightRules = function() {
11548
"scale_color|transparentize|type_of|unit|unitless|unquote").split("|")
11649
);
11750

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("|"));
14152

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("|"));
16854

16955
var keywords = lang.arrayToMap(
17056
("@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() {
216102
next : "qstring"
217103
}, {
218104
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|%)"
220106
}, {
221107
token : "constant.numeric", // hex6 color
222108
regex : "#[a-f0-9]{6}"

0 commit comments

Comments
 (0)