749 lines
17 KiB
JSON
749 lines
17 KiB
JSON
![]() |
{
|
||
|
"fileTypes": ["elm"],
|
||
|
"name": "elm",
|
||
|
"scopeName": "source.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#import"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module"
|
||
|
},
|
||
|
{
|
||
|
"include": "#debug"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comments"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(_)\\b",
|
||
|
"name": "keyword.unused.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-signature"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-declaration"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-alias-declaration"
|
||
|
},
|
||
|
{
|
||
|
"include": "#string-triple"
|
||
|
},
|
||
|
{
|
||
|
"include": "#string-quote"
|
||
|
},
|
||
|
{
|
||
|
"include": "#char"
|
||
|
},
|
||
|
{
|
||
|
"comment": "Floats are always decimal",
|
||
|
"match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",
|
||
|
"name": "constant.numeric.float.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b([0-9]+)\\b",
|
||
|
"name": "constant.numeric.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(0x[0-9a-fA-F]+)\\b",
|
||
|
"name": "constant.numeric.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#glsl"
|
||
|
},
|
||
|
{
|
||
|
"include": "#record-prefix"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-prefix"
|
||
|
},
|
||
|
{
|
||
|
"include": "#constructor"
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.update.elm",
|
||
|
"match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.bracket.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "record.name.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "keyword.pipe.elm"
|
||
|
},
|
||
|
"4": {
|
||
|
"name": "entity.name.record.field.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.update.elm",
|
||
|
"match": "(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.pipe.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.name.record.field.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.update.elm",
|
||
|
"match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.bracket.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "record.name.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.elm",
|
||
|
"match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.bracket.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.name.record.field.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.elm",
|
||
|
"match": "(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.separator.comma.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.name.record.field.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"match": "(\\}|\\{)",
|
||
|
"name": "punctuation.bracket.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#unit"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comma"
|
||
|
},
|
||
|
{
|
||
|
"include": "#parens"
|
||
|
},
|
||
|
{
|
||
|
"match": "(->)",
|
||
|
"name": "keyword.operator.arrow.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#infix_op"
|
||
|
},
|
||
|
{
|
||
|
"match": "(\\=|\\:|\\||\\\\)",
|
||
|
"name": "keyword.other.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+",
|
||
|
"name": "keyword.other.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(if|then|else|case|of|let|in)\\s+",
|
||
|
"name": "keyword.control.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#record-accessor"
|
||
|
},
|
||
|
{
|
||
|
"include": "#top_level_value"
|
||
|
},
|
||
|
{
|
||
|
"include": "#value"
|
||
|
},
|
||
|
{
|
||
|
"include": "#period"
|
||
|
},
|
||
|
{
|
||
|
"include": "#square_brackets"
|
||
|
}
|
||
|
],
|
||
|
"repository": {
|
||
|
"comma": {
|
||
|
"match": "(,)",
|
||
|
"name": "punctuation.separator.comma.elm"
|
||
|
},
|
||
|
"parens": {
|
||
|
"match": "(\\(|\\))",
|
||
|
"name": "punctuation.parens.elm"
|
||
|
},
|
||
|
"block_comment": {
|
||
|
"applyEndPatternLast": 1,
|
||
|
"begin": "\\{-(?!#)",
|
||
|
"captures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.comment.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "-\\}",
|
||
|
"name": "comment.block.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#block_comment"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"comments": {
|
||
|
"patterns": [
|
||
|
{
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.definition.comment.elm"
|
||
|
}
|
||
|
},
|
||
|
"begin": "--",
|
||
|
"end": "$",
|
||
|
"name": "comment.line.double-dash.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#block_comment"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"import": {
|
||
|
"name": "meta.import.elm",
|
||
|
"begin": "^\\b(import)\\s+",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.control.import.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\n(?!\\s)",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "(as|exposing)",
|
||
|
"name": "keyword.control.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module_chunk"
|
||
|
},
|
||
|
{
|
||
|
"include": "#period"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-exports"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"module": {
|
||
|
"begin": "^\\b((port |effect )?module)\\s+",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.other.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "\\n(?!\\s)",
|
||
|
"endCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.other.elm"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.declaration.module.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#module_chunk"
|
||
|
},
|
||
|
{
|
||
|
"include": "#period"
|
||
|
},
|
||
|
{
|
||
|
"match": "(exposing)",
|
||
|
"name": "keyword.other.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-exports"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"string-triple": {
|
||
|
"name": "string.quoted.triple.elm",
|
||
|
"begin": "\"\"\"",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "\"\"\"",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.elm"
|
||
|
}
|
||
|
},
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",
|
||
|
"name": "constant.character.escape.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\^[A-Z@\\[\\]\\\\\\^_]",
|
||
|
"name": "constant.character.escape.control.elm"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"string-quote": {
|
||
|
"name": "string.quoted.double.elm",
|
||
|
"begin": "\"",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.begin.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "\"",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.string.end.elm"
|
||
|
}
|
||
|
},
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",
|
||
|
"name": "constant.character.escape.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\^[A-Z@\\[\\]\\\\\\^_]",
|
||
|
"name": "constant.character.escape.control.elm"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"char": {
|
||
|
"name": "string.quoted.single.elm",
|
||
|
"begin": "'",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.char.begin.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "'",
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.char.end.elm"
|
||
|
}
|
||
|
},
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",
|
||
|
"name": "constant.character.escape.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\^[A-Z@\\[\\]\\\\\\^_]",
|
||
|
"name": "constant.character.escape.control.elm"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"debug": {
|
||
|
"match": "\\b(Debug)\\b",
|
||
|
"name": "invalid.illegal.debug.elm"
|
||
|
},
|
||
|
"module-exports": {
|
||
|
"begin": "(\\()",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.parens.module-export.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "(\\))",
|
||
|
"endCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.parens.module-export.elm"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.declaration.exports.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\b[a-z][a-zA-Z_'0-9]*",
|
||
|
"name": "entity.name.function.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[A-Z][A-Za-z_'0-9]*",
|
||
|
"name": "storage.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": ",",
|
||
|
"name": "punctuation.separator.comma.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comma"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\(\\.\\.\\)",
|
||
|
"name": "punctuation.parens.ellipses.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\.\\.",
|
||
|
"name": "punctuation.parens.ellipses.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#infix_op"
|
||
|
},
|
||
|
{
|
||
|
"comment": "So named because I don't know what to call this.",
|
||
|
"match": "\\(.*?\\)",
|
||
|
"name": "meta.other.unknown.elm"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"module_chunk": {
|
||
|
"match": "[A-Z][a-zA-Z0-9_]*",
|
||
|
"name": "support.module.elm"
|
||
|
},
|
||
|
"period": {
|
||
|
"match": "[.]",
|
||
|
"name": "keyword.other.period.elm"
|
||
|
},
|
||
|
"square_brackets": {
|
||
|
"match": "[\\[\\]]",
|
||
|
"name": "punctuation.definition.list.elm"
|
||
|
},
|
||
|
"record-prefix": {
|
||
|
"match": "([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)",
|
||
|
"name": "record.accessor.elm",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "record.name.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "keyword.other.period.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "entity.name.record.field.accessor.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"module-prefix": {
|
||
|
"match": "([A-Z][a-zA-Z0-9_]*)(\\.)",
|
||
|
"name": "meta.module.name.elm",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "support.module.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "keyword.other.period.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"constructor": {
|
||
|
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "constant.type-constructor.elm"
|
||
|
},
|
||
|
"value": {
|
||
|
"match": "\\b[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "meta.value.elm"
|
||
|
},
|
||
|
"unit": {
|
||
|
"match": "\\(\\)",
|
||
|
"name": "constant.unit.elm"
|
||
|
},
|
||
|
"top_level_value": {
|
||
|
"match": "^[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "entity.name.function.top_level.elm"
|
||
|
},
|
||
|
"record-accessor": {
|
||
|
"match": "(\\.)([a-z][a-zA-Z0-9_]*)",
|
||
|
"name": "meta.record.accessor",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.other.period.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.name.record.field.accessor.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"infix_op": {
|
||
|
"match": "(</>|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)",
|
||
|
"name": "keyword.operator.elm"
|
||
|
},
|
||
|
"type-declaration": {
|
||
|
"begin": "^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.type.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "storage.type.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "^(?=\\S)",
|
||
|
"name": "meta.function.type-declaration.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"name": "meta.record.field.elm",
|
||
|
"match": "^\\s*([A-Z][a-zA-Z0-9_]*)\\b",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "constant.type-constructor.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.elm",
|
||
|
"match": "(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "constant.type-constructor.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"match": "\\=",
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\-\\>",
|
||
|
"name": "keyword.operator.arrow.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-prefix"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "variable.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "storage.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comments"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-record"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"type-alias-declaration": {
|
||
|
"begin": "^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.type.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "keyword.type-alias.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "storage.type.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "^(?=\\S)",
|
||
|
"name": "meta.function.type-declaration.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\n\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\=",
|
||
|
"name": "keyword.operator.assignment.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-prefix"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "storage.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "variable.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comments"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-record"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"type-record": {
|
||
|
"begin": "(\\{)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.section.braces.begin"
|
||
|
}
|
||
|
},
|
||
|
"end": "(\\})",
|
||
|
"endCaptures": {
|
||
|
"1": {
|
||
|
"name": "punctuation.section.braces.end"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.function.type-record.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "->",
|
||
|
"name": "keyword.operator.arrow.elm"
|
||
|
},
|
||
|
{
|
||
|
"name": "meta.record.field.elm",
|
||
|
"match": "([a-z][a-zA-Z0-9_]*)\\s+(\\:)",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "entity.name.record.field.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "keyword.other.elm"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"match": "\\,",
|
||
|
"name": "punctuation.separator.comma.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-prefix"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "variable.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "storage.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comments"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-record"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"type-signature": {
|
||
|
"begin": "^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "keyword.other.port.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.name.function.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "keyword.other.colon.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "((^(?=[a-z]))|^$)",
|
||
|
"name": "meta.function.type-declaration.elm",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#type-signature-chunk"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"type-signature-chunk": {
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "->",
|
||
|
"name": "keyword.operator.arrow.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\s+",
|
||
|
"name": "punctuation.spaces.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#module-prefix"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[a-z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "variable.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b[A-Z][a-zA-Z0-9_]*\\b",
|
||
|
"name": "storage.type.elm"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\(\\)",
|
||
|
"name": "constant.unit.elm"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comma"
|
||
|
},
|
||
|
{
|
||
|
"include": "#parens"
|
||
|
},
|
||
|
{
|
||
|
"include": "#comments"
|
||
|
},
|
||
|
{
|
||
|
"include": "#type-record"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"glsl": {
|
||
|
"begin": "(\\[)(glsl)(\\|)",
|
||
|
"beginCaptures": {
|
||
|
"1": {
|
||
|
"name": "entity.glsl.bracket.elm"
|
||
|
},
|
||
|
"2": {
|
||
|
"name": "entity.glsl.name.elm"
|
||
|
},
|
||
|
"3": {
|
||
|
"name": "entity.glsl.bracket.elm"
|
||
|
}
|
||
|
},
|
||
|
"end": "(\\|\\])",
|
||
|
"endCaptures": {
|
||
|
"1": {
|
||
|
"name": "entity.glsl.bracket.elm"
|
||
|
}
|
||
|
},
|
||
|
"name": "meta.embedded.block.glsl",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "source.glsl"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|