UNPKG

tm-grammars

Version:
219 lines (218 loc) 5.35 kB
{ "displayName": "Berry", "name": "berry", "patterns": [ { "include": "#controls" }, { "include": "#strings" }, { "include": "#comment-block" }, { "include": "#comments" }, { "include": "#keywords" }, { "include": "#function" }, { "include": "#member" }, { "include": "#identifier" }, { "include": "#number" }, { "include": "#operator" } ], "repository": { "comment-block": { "begin": "#-", "end": "-#", "name": "comment.berry", "patterns": [ { } ] }, "comments": { "begin": "#", "end": "\\n", "name": "comment.line.berry", "patterns": [ { } ] }, "controls": { "patterns": [ { "match": "\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b", "name": "keyword.control.berry" } ] }, "function": { "patterns": [ { "match": "\\b([A-Z_a-z][0-9A-Z_a-z]*(?=\\s*\\())", "name": "entity.name.function.berry" } ] }, "identifier": { "patterns": [ { "match": "\\b[A-Z_a-z]\\w+\\b", "name": "identifier.berry" } ] }, "keywords": { "patterns": [ { "match": "\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\b", "name": "keyword.berry" } ] }, "member": { "patterns": [ { "captures": { "0": { "name": "entity.other.attribute-name.berry" } }, "match": "\\.([A-Z_a-z][0-9A-Z_a-z]*)" } ] }, "number": { "patterns": [ { "match": "0x\\h+|\\d+|(\\d+\\.?|\\.\\d)\\d*([Ee][-+]?\\d+)?", "name": "constant.numeric.berry" } ] }, "operator": { "patterns": [ { "match": "[-\\]!%\\&(-+./:<=>\\[^|~]", "name": "keyword.operator.berry" } ] }, "strings": { "patterns": [ { "begin": "f(?=[\"'])", "patterns": [ { "begin": "\"", "end": "\"", "name": "string.quoted.other.berry", "patterns": [ { "match": "(\\\\x\\h{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)", "name": "constant.character.escape.berry" }, { "match": "\\{\\{[^}]*}}", "name": "string.quoted.other.berry" }, { "begin": "\\{", "end": "}", "name": "keyword.other.unit.berry", "patterns": [ { "include": "#keywords" }, { "include": "#numbers" }, { "include": "#identifier" }, { "include": "#operator" }, { "include": "#member" }, { "include": "#function" } ] } ] }, { "begin": "'", "end": "'", "name": "string.quoted.other.berry", "patterns": [ { "match": "(\\\\x\\h{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)", "name": "constant.character.escape.berry" }, { "match": "\\{\\{[^}]*}}", "name": "string.quoted.other.berry" }, { "begin": "\\{", "end": "}", "name": "keyword.other.unit.berry", "patterns": [ { "include": "#keywords" }, { "include": "#numbers" }, { "include": "#identifier" }, { "include": "#operator" }, { "include": "#member" }, { "include": "#function" } ] } ] } ], "while": "\\G|^[\\t ]*(?=[\"'])" }, { "begin": "([\"'])", "end": "\\1", "name": "string.quoted.double.berry", "patterns": [ { "match": "(\\\\x\\h{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)", "name": "constant.character.escape.berry" } ] } ] } }, "scopeName": "source.berry" }