various fixes for carto bundle

nohash
Konstantin Käfer 14 years ago
parent bdadc12137
commit 01e8bb07b3

@ -37,7 +37,7 @@
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escaped.css</string>
<string>constant.character.escaped.mss</string>
</dict>
</array>
</dict>
@ -62,13 +62,20 @@
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.mss</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.class.mss</string>
</dict>
</dict>
<key>match</key>
<string>(\.[a-zA-Z0-9_-]+)[\s,{;]</string>
<string>(\.)([a-zA-Z0-9_-]+)</string>
<key>name</key>
<string>meta.selector.class.mss</string>
</dict>
<dict>
<key>begin</key>
@ -78,27 +85,32 @@
<key>end</key>
<string>\)</string>
<key>name</key>
<string>support.function.any-method.builtin.css</string>
<string>support.function.any-method.builtin.mss</string>
</dict>
<dict>
<key>match</key>
<string>(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b</string>
<key>name</key>
<string>constant.other.rgb-value.css</string>
<string>constant.other.rgb-value.mss</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.mss</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.id</string>
</dict>
</dict>
<key>match</key>
<string>#[a-zA-Z0-9_-]+</string>
<string>(#)([a-zA-Z0-9_-]+)</string>
<key>name</key>
<string>meta.selector.css</string>
<string>meta.selector.id.mss</string>
</dict>
<dict>
<key>begin</key>
@ -106,19 +118,19 @@
<key>end</key>
<string>\*/</string>
<key>name</key>
<string>comment.block.css</string>
<string>comment.block.mss</string>
</dict>
<dict>
<key>match</key>
<string>(-|\+)?\s*[0-9]+(\.[0-9]+)?</string>
<key>name</key>
<string>constant.numeric.css</string>
<string>constant.numeric.mss</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|%</string>
<string>(?&lt;=[\d])(px)\b|%</string>
<key>name</key>
<string>keyword.unit.css</string>
<string>keyword.unit.mss</string>
</dict>
<dict>
<key>captures</key>
@ -126,13 +138,18 @@
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.css</string>
<string>punctuation.definition.entity.mss</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attachment.mss</string>
</dict>
</dict>
<key>match</key>
<string>(:+)\b(after|before|first-child|first-letter|first-line|selection)\b</string>
<string>(::)([a-zA-Z0-9_/-]+)\b</string>
<key>name</key>
<string>entity.other.attribute-name.pseudo-element.css</string>
<string>meta.selector.attachment.mss</string>
</dict>
<dict>
<key>captures</key>
@ -140,57 +157,63 @@
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.css</string>
</dict>
<string>punctuation.definition.entity.mss</string>
</dict>
<key>match</key>
<string>(:)\b(active|hover|link|visited|focus)\b</string>
<key>10</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.pseudo-class.css</string>
<string>punctuation.definition.string.end.mss</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<key>11</key>
<dict>
<key>name</key>
<string>punctuation.definition.entity.css</string>
<string>punctuation.definition.entity.mss</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.attribute.css</string>
<string>meta.tag.mss.zoomfilter</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.separator.operator.css</string>
<string>variable.other.less</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>string.unquoted.attribute-value.css</string>
<string>punctuation.separator.operator.mss</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>string.quoted.double.attribute-value.css</string>
<string>constant.numeric.mss</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.css</string>
<string>string.quoted.attribute-value.mss</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.css</string>
<string>punctuation.definition.string.begin.mss</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.mss</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.mss</string>
</dict>
</dict>
<key>match</key>
<string>(?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?&gt;(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\])</string>
<string>(\[)\s*(?:(zoom)|(\w+?))\s*(!?=|&gt;=?|&lt;=?)\s*(?:(\d+)|((")(?:[^"\\]|\\.)*(")|(')(?:[^'\\]|\\.)*(')|[a-zA-Z0-9_][a-zA-Z0-9_-]*))\s*(\])</string>
<key>name</key>
<string>meta.attribute-selector.css</string>
<string>meta.attribute-selector.mss</string>
</dict>
<dict>
<key>captures</key>
@ -198,18 +221,18 @@
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.at-rule.import.css</string>
<string>keyword.control.at-rule.import.mss</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.css</string>
<string>punctuation.definition.keyword.mss</string>
</dict>
</dict>
<key>match</key>
<string>^\s*((@)import\b)</string>
<key>name</key>
<string>meta.at-rule.import.css</string>
<string>meta.at-rule.import.mss</string>
</dict>
<dict>
<key>captures</key>
@ -217,7 +240,7 @@
<key>1</key>
<dict>
<key>name</key>
<string>support.type.property-name.css</string>
<string>support.type.property-name.mss</string>
</dict>
</dict>
<key>match</key>
@ -227,7 +250,7 @@
<key>match</key>
<string>\b(miter|round|bevel|butt|round|square|point|line|arrow|ellipse|png|jpg|svg|normal|grain_merge|grain_merge2|multiply|multiply2|divide|divide2|screen|hard_light|fast|bilinear|bilinear8|centroid|interior|point|line|vertex|interior|none|uppercase|lowercase)\b</string>
<key>name</key>
<string>support.constant.property-value.css</string>
<string>support.constant.property-value.mss</string>
</dict>
<dict>
<key>comment</key>
@ -235,7 +258,7 @@
<key>match</key>
<string>\b(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|grey|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen|transparent)\b</string>
<key>name</key>
<string>support.constant.color.w3c-standard-color-name.css</string>
<string>support.constant.color.w3c-standard-color-name.mss</string>
</dict>
<dict>
<key>match</key>
@ -247,25 +270,7 @@
<key>match</key>
<string>\b(rgb|rgba|hsl|hsla|url)\b</string>
<key>name</key>
<string>support.function.any-method.builtin.css</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>support.function.any-method.vendor.css</string>
</dict>
</dict>
<key>match</key>
<string>(-(?:webkit|moz|khtml|o|icab)-(?:gradient|linear-gradient))</string>
</dict>
<dict>
<key>match</key>
<string>\b(color-stop|from|to)\b</string>
<key>name</key>
<string>support.function.any-method.webkit.gradient.css</string>
<string>support.function.any-method.builtin.mss</string>
</dict>
<dict>
<key>captures</key>

@ -21,9 +21,9 @@ var keyword_names = _.reduce(carto.tree.Reference.data.symbolizers,
}, []);
fs.writeFile('carto.tmLanguage', _.template(tm_tmpl, {
color_names: color_names.join('|'),
keyword_names: keyword_names.join('|'),
property_names: property_names.join('|')
color_names: color_names.filter(function(a) { return a; }).join('|'),
keyword_names: keyword_names.filter(function(a) { return a; }).join('|'),
property_names: property_names.filter(function(a) { return a; }).join('|')
}), function(err) {
if (!err) console.log('tmLanguage created');
});

@ -4,112 +4,120 @@
foldingStartMarker = '/\*\*(?!\*)|\{\s*($|/\*(?!.*?\*/.*\S))';
foldingStopMarker = '(?<!\*)\*\*/|^\s*\}';
patterns = (
{ name = 'keyword.control.mss.elements';
{ name = 'keyword.control.carto.elements';
match = '\b(Map)\b';
},
{ name = 'string.quoted.double.mss';
{ name = 'string.quoted.double.carto';
begin = '"';
end = '"';
patterns = (
{ name = 'constant.character.escaped.css';
{ name = 'constant.character.escaped.carto';
match = '\\.';
},
);
},
{ name = 'string.quoted.single.mss';
{ name = 'string.quoted.single.carto';
begin = "'";
end = "'";
patterns = (
{ name = 'constant.character.escaped.mss';
{ name = 'constant.character.escaped.carto';
match = '\\.';
},
);
},
{ match = '(\.[a-zA-Z0-9_-]+)[\s,{;]';
captures = { 1 = { name = 'entity.other.attribute-name.class.mss'; }; };
{ name = 'meta.selector.class.carto';
match = '(\.)([a-zA-Z0-9_-]+)';
captures = {
1 = { name = 'punctuation.definition.entity.carto'; };
2 = { name = 'entity.other.class.carto'; };
};
},
{ name = 'meta.selector.id.carto';
match = '(#)([a-zA-Z0-9_-]+)';
captures = {
1 = { name = 'punctuation.definition.entity.carto'; };
2 = { name = 'keyword.control.id.carto'; };
};
},
{ name = 'support.function.any-method.builtin.css';
{ name = 'meta.selector.attachment.carto';
match = '(::)([a-zA-Z0-9_/-]+)\b';
captures = {
1 = { name = 'punctuation.definition.entity.carto'; };
2 = { name = 'entity.other.attachment.carto'; };
};
},
{ name = 'meta.attribute-selector.carto';
match = '(\[)\s*(?:(zoom)|((")(?:[^"\\]|\\.)*(")|('')(?:[^''\\]|\\.)*('')|[a-zA-Z0-9_][a-zA-Z0-9_-]*))\s*(!?=|>=?|<=?)\s*(?:(\d+)|((")(?:[^"\\]|\\.)*(")|('')(?:[^''\\]|\\.)*('')|[a-zA-Z0-9_][a-zA-Z0-9_-]*))\s*(\])';
captures = {
1 = { name = 'punctuation.definition.entity.carto'; };
2 = { name = 'meta.tag.zoomfilter.carto'; };
3 = { name = 'variable.other.carto'; };
4 = { name = 'punctuation.definition.string.begin.carto'; };
5 = { name = 'punctuation.definition.string.end.carto'; };
6 = { name = 'punctuation.definition.string.begin.carto'; };
7 = { name = 'punctuation.definition.string.end.carto'; };
8 = { name = 'punctuation.separator.operator.carto'; };
9 = { name = 'constant.numeric.carto'; };
10 = { name = 'string.quoted.attribute-value.carto'; };
11 = { name = 'punctuation.definition.string.begin.carto'; };
12 = { name = 'punctuation.definition.string.end.carto'; };
13 = { name = 'punctuation.definition.string.begin.carto'; };
14 = { name = 'punctuation.definition.string.end.carto'; };
15 = { name = 'punctuation.definition.entity.carto'; };
};
},
{ name = 'support.function.any-method.builtin.carto';
contentName = 'variable.parameter.url';
begin = 'url\(';
end = '\)';
},
{ name = 'constant.other.rgb-value.css';
{ name = 'constant.other.rgb-value.carto';
match = '(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b';
},
{ name = 'meta.selector.css';
match = '#[a-zA-Z0-9_-]+';
captures = { 0 = { name = 'entity.other.attribute-name.id'; }; };
},
{ name = 'comment.block.css';
{ name = 'comment.block.carto';
begin = '/\*';
end = '\*/';
},
{ name = 'constant.numeric.css';
{ name = 'constant.numeric.carto';
match = '(-|\+)?\s*[0-9]+(\.[0-9]+)?';
},
{ name = 'keyword.unit.css';
match = '(?<=[\d])(px|pt|cm|mm|in|em|ex|pc)\b|%';
},
{ name = 'entity.other.attribute-name.pseudo-element.css';
match = '(:+)\b(after|before|first-child|first-letter|first-line|selection)\b';
captures = { 1 = { name = 'punctuation.definition.entity.css'; }; };
{ name = 'keyword.unit.carto';
match = '(?<=[\d])(px)\b|%';
},
{ name = 'entity.other.attribute-name.pseudo-class.css';
match = '(:)\b(active|hover|link|visited|focus)\b';
captures = { 1 = { name = 'punctuation.definition.entity.css'; }; };
},
{ name = 'meta.attribute-selector.css';
match = '(?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?>([''"])(?:[^\\]|\\.)*?(\6)))))?\s*(\])';
captures = {
1 = { name = 'punctuation.definition.entity.css'; };
2 = { name = 'entity.other.attribute-name.attribute.css'; };
3 = { name = 'punctuation.separator.operator.css'; };
4 = { name = 'string.unquoted.attribute-value.css'; };
5 = { name = 'string.quoted.double.attribute-value.css'; };
6 = { name = 'punctuation.definition.string.begin.css'; };
7 = { name = 'punctuation.definition.string.end.css'; };
};
},
{ name = 'meta.at-rule.import.css';
{ name = 'meta.at-rule.import.carto';
match = '^\s*((@)import\b)';
captures = {
1 = { name = 'keyword.control.at-rule.import.css'; };
2 = { name = 'punctuation.definition.keyword.css'; };
1 = { name = 'keyword.control.at-rule.import.carto'; };
2 = { name = 'punctuation.definition.keyword.carto'; };
};
},
{ match = '\b(<%= property_names %>)\s*:';
captures = { 1 = { name = 'support.type.property-name.css'; }; };
captures = { 1 = { name = 'support.type.property-name.carto'; }; };
},
{ name = 'support.constant.property-value.css';
{ name = 'meta.property-value.carto';
match = '\b(<%= keyword_names %>)\b';
},
{ name = 'support.constant.color.w3c-standard-color-name.css';
{ name = 'constant.color.w3c-standard-color-name.carto';
comment = 'http://www.w3.org/TR/CSS21/syndata.html#value-def-color';
match = '\b(<%= color_names %>)\b';
},
{ name = 'support.function.any-method.builtin.less';
{ name = 'support.function.any-method.builtin.carto';
match = '\b(saturate|desaturate|lighten|darken|grayscale)\b';
},
{ name = 'support.function.any-method.builtin.css';
{ name = 'support.function.any-method.builtin.carto';
match = '\b(rgb|rgba|hsl|hsla|url)\b';
},
{ match = '(-(?:webkit|moz|khtml|o|icab)-(?:gradient|linear-gradient))';
captures = { 1 = { name = 'support.function.any-method.vendor.css'; }; };
},
{ name = 'support.function.any-method.webkit.gradient.css';
match = '\b(color-stop|from|to)\b';
},
{ match = '(\.[a-zA-Z0-9_-]+)\s*(;|\()';
captures = { 1 = { name = 'support.function.less'; }; };
captures = { 1 = { name = 'support.function.carto'; }; };
},
{ name = 'comment.line.double-slash.less';
{ name = 'comment.line.double-slash.carto';
begin = '//';
end = '$\n?';
},
{ name = 'variable.other.less';
{ name = 'variable.other.carto';
match = '@[a-zA-Z0-9_-][\w-]*';
},
{ name = 'keyword.operator.less';
{ name = 'keyword.operator.carto';
match = '\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|(?<!\()/=|%=|\+=|\-=|&=|\^=|\/\b';
},
{ name = 'meta.brace.curly.js';

Loading…
Cancel
Save