542 lines
12 KiB
JSON
542 lines
12 KiB
JSON
|
{
|
||
|
"information_for_contributors": [
|
||
|
"This file has been converted from https://github.com/atom/language-less/blob/master/grammars/less.cson",
|
||
|
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
|
||
|
"Once accepted there, we are happy to receive an update request."
|
||
|
],
|
||
|
"version": "https://github.com/atom/language-less/commit/87d4d59e8de6796b506b81a16e1dc1fafc99d30f",
|
||
|
"name": "Less",
|
||
|
"scopeName": "source.css.less",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#strings"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "entity.other.attribute-name.class.mixin.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "entity.other.attribute-name.class.css"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.definition.entity.css"
|
||
|
},
|
||
|
"4": {
|
||
|
"name": "variable.other.interpolation.less"
|
||
|
}
|
||
|
},
|
||
|
"match": "((\\.)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"0": {
|
||
|
"name": "entity.other.attribute-name.parent-selector.css"
|
||
|
},
|
||
|
"1": {
|
||
|
"name": "punctuation.definition.entity.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "(&)[a-zA-Z0-9_-]*"
|
||
|
},
|
||
|
{
|
||
|
"begin": "(format|local|url|attr|counter|counters)\\s*(\\()",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "support.function.misc.css"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.section.function.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\)",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.section.function.css"
|
||
|
}
|
||
|
},
|
||
|
"patterns": [
|
||
|
{
|
||
|
"begin": "'",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "'",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "string.quoted.single.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\.",
|
||
|
"name": "constant.character.escape.css"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"begin": "\"",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\"",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "string.quoted.double.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\(\\d{1,6}|.)",
|
||
|
"name": "constant.character.escape.css"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"match": "[^'\") \\t]+",
|
||
|
"name": "variable.parameter.misc.css"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?(?<!@){)",
|
||
|
"name": "constant.other.rgb-value.css"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "entity.other.attribute-name.id"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.definition.entity.css"
|
||
|
},
|
||
|
"4": {
|
||
|
"name": "variable.other.interpolation.less"
|
||
|
}
|
||
|
},
|
||
|
"match": "((#)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)",
|
||
|
"name": "meta.selector.css"
|
||
|
},
|
||
|
{
|
||
|
"begin": "/\\*",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.comment.begin.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\*/",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.comment.end.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "comment.block.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#numeric-values"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.definition.begin.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"
|
||
|
},
|
||
|
"8": {
|
||
|
"name": "punctuation.definition.end.entity.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",
|
||
|
"name": "meta.attribute-selector.css"
|
||
|
},
|
||
|
{
|
||
|
"begin": "((@)import\\b)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.control.at-rule.import.less"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.definition.keyword.less"
|
||
|
}
|
||
|
},
|
||
|
"end": ";",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.terminator.rule.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.at-rule.import.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "(?<=\\(|,|\\s)\\b(reference|optional|once|multiple|less|inline)\\b(?=\\)|,)",
|
||
|
"name": "keyword.control.import.option.less"
|
||
|
},
|
||
|
{
|
||
|
"include": "#brace_round"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#commas"
|
||
|
},
|
||
|
{
|
||
|
"include": "#strings"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.control.at-rule.fontface.css"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.definition.keyword.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "^\\s*((@)font-face\\b)",
|
||
|
"name": "meta.at-rule.fontface.css"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.control.at-rule.media.css"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.definition.keyword.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "^\\s*((@)media\\b)",
|
||
|
"name": "meta.at-rule.media.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#media-features"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)\\b",
|
||
|
"name": "support.constant.media-type.media.css"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(portrait|landscape)\\b",
|
||
|
"name": "support.constant.property-value.media-property.media.css"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "support.function.less"
|
||
|
}
|
||
|
},
|
||
|
"match": "(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()"
|
||
|
},
|
||
|
{
|
||
|
"begin": "(^[ \\t]+)?(?=//)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.whitespace.comment.leading.less"
|
||
|
}
|
||
|
},
|
||
|
"end": "(?!\\G)",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"begin": "//",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.comment.less"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\n",
|
||
|
"name": "comment.line.double-slash.less"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"match": "(@|\\-\\-)[\\w-]+(?=\\s*)",
|
||
|
"name": "variable.other.less",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.definition.variable.less"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"include": "#variable_interpolation"
|
||
|
},
|
||
|
{
|
||
|
"begin": "{",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.section.property-list.begin.bracket.curly.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "}",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.section.property-list.end.bracket.curly.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.property-list.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "source.css#pseudo-elements"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#pseudo-classes"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#tag-names"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#commas"
|
||
|
},
|
||
|
{
|
||
|
"include": "#variable_interpolation"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#property-names"
|
||
|
},
|
||
|
{
|
||
|
"include": "#property_values"
|
||
|
},
|
||
|
{
|
||
|
"include": "$self"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"match": "\\!\\s*important",
|
||
|
"name": "keyword.other.important.css"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\*|\\/|\\-|\\+|~|=|<=|>=|<|>",
|
||
|
"name": "keyword.operator.less"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(not|and|when)\\b",
|
||
|
"name": "keyword.control.logical.operator.less"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#tag-names"
|
||
|
},
|
||
|
{
|
||
|
"match": "(?<![\\w-])[a-z][\\w&&[^A-Z]]*+-[\\w-&&[^A-Z]]+",
|
||
|
"name": "entity.name.tag.custom.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#pseudo-elements"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#pseudo-classes"
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.section.property-list.begin.css"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "punctuation.section.property-list.end.css"
|
||
|
}
|
||
|
},
|
||
|
"match": "(\\{)(\\})",
|
||
|
"name": "meta.brace.curly.css"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\{|\\}",
|
||
|
"name": "meta.brace.curly.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "#brace_round"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\[|\\]",
|
||
|
"name": "meta.brace.square.less"
|
||
|
},
|
||
|
{
|
||
|
"match": ";",
|
||
|
"name": "punctuation.terminator.rule.css"
|
||
|
},
|
||
|
{
|
||
|
"match": ":",
|
||
|
"name": "punctuation.separator.key-value.css"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\btrue\\b",
|
||
|
"name": "constant.language.boolean.less"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\bdefault\\b",
|
||
|
"name": "support.function.default.less"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(isurl|isstring|isnumber|iskeyword|iscolor)\\b",
|
||
|
"name": "support.function.type-checking.less"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(isunit|ispixel|ispercentage|isem)\\b",
|
||
|
"name": "support.function.unit-checking.less"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#property-keywords"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#color-keywords"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#commas"
|
||
|
},
|
||
|
{
|
||
|
"include": "#less_builtin_functions"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#functions"
|
||
|
}
|
||
|
],
|
||
|
"repository": {
|
||
|
"variable_interpolation": {
|
||
|
"match": "@{[a-zA-Z0-9_-]+}",
|
||
|
"name": "variable.other.interpolation.less"
|
||
|
},
|
||
|
"strings": {
|
||
|
"patterns": [
|
||
|
{
|
||
|
"begin": "\"",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\"",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "string.quoted.double.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\([0-9A-Fa-f]{1,6}|.)",
|
||
|
"name": "constant.character.escape.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "#variable_interpolation"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"begin": "'",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "'",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "string.quoted.single.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\([0-9A-Fa-f]{1,6}|.)",
|
||
|
"name": "constant.character.escape.css"
|
||
|
},
|
||
|
{
|
||
|
"include": "#variable_interpolation"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"brace_round": {
|
||
|
"match": "\\(|\\)",
|
||
|
"name": "meta.brace.round.css"
|
||
|
},
|
||
|
"property_values": {
|
||
|
"begin": "(?<!&)(:)\\s*(?!(\\s*{))(?!.*(?<!@){)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.separator.key-value.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\s*(;)|\\s*(?=})",
|
||
|
"endCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.terminator.rule.css"
|
||
|
}
|
||
|
},
|
||
|
"contentName": "meta.property-value.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"begin": "url(\\()",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "meta.brace.round.css"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\)",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "meta.brace.round.css"
|
||
|
}
|
||
|
},
|
||
|
"name": "support.function.any-method.builtin.url.css",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#strings"
|
||
|
},
|
||
|
{
|
||
|
"match": "(\\b|\\.{0,2}/)[^)]*\\b",
|
||
|
"name": "string.url.css"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#property-keywords"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#color-keywords"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#commas"
|
||
|
},
|
||
|
{
|
||
|
"include": "#less_builtin_functions"
|
||
|
},
|
||
|
{
|
||
|
"include": "source.css#functions"
|
||
|
},
|
||
|
{
|
||
|
"include": "$self"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"less_builtin_functions": {
|
||
|
"match": "\\b(abs|acos|alpha|argb|asin|atan|average|blue|calc|ceil|color|contrast|convert|convert|cos|darken|data-uri|desaturate|difference|e|escape|exclusion|extract|fade|fadein|fadeout|floor|format|green|greyscale|hardlight|hsl|hsla|hsv|hsva|hsvhue|hsvsaturation|hsvvalue|hue|length|lighten|lightness|luma|max|min|mix|mod|multiply|negation|overlay|percentage|pi|pow|red|replace|round|saturate|saturation|screen|sin|softlight|spin|sqrt|tan|unit)\\b",
|
||
|
"name": "support.function.any-method.builtin.less"
|
||
|
}
|
||
|
}
|
||
|
}
|