127 lines
2.7 KiB
JSON
127 lines
2.7 KiB
JSON
|
{
|
||
|
"fileTypes": ["jael"],
|
||
|
"name": "Jael",
|
||
|
"scopeName": "source.jael",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"include": "#expressions"
|
||
|
},
|
||
|
{
|
||
|
"match": "[:,\\.]",
|
||
|
"name": "punctuation.jael"
|
||
|
},
|
||
|
{
|
||
|
"begin": "{{-?",
|
||
|
"end": "}}",
|
||
|
"beginCaptures": {
|
||
|
"0": {
|
||
|
"name": "comment.jael"
|
||
|
}
|
||
|
},
|
||
|
"endCaptures": {
|
||
|
"0": {
|
||
|
"name": "comment.jael"
|
||
|
}
|
||
|
},
|
||
|
"patterns": [{ "include": "#expressions" }, { "include": "#operators" }]
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(block|declare|for-each|extend|if|include|switch)\\b",
|
||
|
"name": "keyword.control.jael"
|
||
|
},
|
||
|
{
|
||
|
"match": "<\\s*/?\\s*([A-Za-z_][A-Za-z0-9_]*)\\b",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "keyword.tag.jael"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"match": "@[A-Za-z_][A-Za-z0-9_]*",
|
||
|
"name": "storage.argument.jael"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(@?[A-Za-z_][A-Za-z0-9_]*)=",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "storage.name.jael"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"captures": {
|
||
|
"0": {
|
||
|
"name": "punctuation.definition.comment.jael"
|
||
|
}
|
||
|
},
|
||
|
"begin": "<!--",
|
||
|
"end": "-->",
|
||
|
"name": "comment.jael"
|
||
|
},
|
||
|
{
|
||
|
"include": "#operators"
|
||
|
}
|
||
|
],
|
||
|
"repository": {
|
||
|
"operators": {
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "((!?=)|\\+|\\*|-|/|\\?|(\\?\\.)|%|\\[|\\])",
|
||
|
"name": "keyword.operator.jael"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"expressions": {
|
||
|
"patterns": [
|
||
|
{
|
||
|
"match": "\\b[<>]\\b",
|
||
|
"name": "keyword.operator.jael"
|
||
|
},
|
||
|
{
|
||
|
"begin": "'",
|
||
|
"end": "'",
|
||
|
"name": "string.quoted.single.jael",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"name": "constant.character.escape.jael",
|
||
|
"match": "\\\\[bfnrt']"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"begin": "\"",
|
||
|
"end": "\"",
|
||
|
"name": "string.quoted.double.jael",
|
||
|
"patterns": [
|
||
|
{
|
||
|
"name": "constant.character.escape.jael",
|
||
|
"match": "\\\\[bfnrt\"]"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b(true|false|null)\\b",
|
||
|
"name": "constant.language.jael"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b-?[0-9]+(\\.[0-9]+)?([Ee][0-9]+)?\\b",
|
||
|
"name": "constant.numeric.jael"
|
||
|
},
|
||
|
{
|
||
|
"match": "\\b0x[A-Fa-f0-9]+\\b",
|
||
|
"name": "constant.numeric.jael"
|
||
|
},
|
||
|
{
|
||
|
"match": "([A-Za-z_][A-Za-z0-9_]*)\\s*\\(",
|
||
|
"captures": {
|
||
|
"1": {
|
||
|
"name": "entity.name.function.jael"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|