diff options
Diffstat (limited to 'ext/syntaxes/sloth.tmLanguage.json')
| -rw-r--r-- | ext/syntaxes/sloth.tmLanguage.json | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/ext/syntaxes/sloth.tmLanguage.json b/ext/syntaxes/sloth.tmLanguage.json new file mode 100644 index 0000000..c5cd3db --- /dev/null +++ b/ext/syntaxes/sloth.tmLanguage.json @@ -0,0 +1,97 @@ +{ + "scopeName": "source.sloth", + "patterns": [ + { "include": "#comments" }, + { "include": "#literals" }, + { "include": "#types" }, + { "include": "#decorator" } + ], + "repository": { + "literals": { + "patterns": [ + { + "match": "(0x[0-9a-fA-F]+|0b[01]+|0o[0-7]+|\\d+)(\\.\\d+)?", + "name": "constant.numeric" + }, + { + "match": "'.'", + "name": "constant.character" + }, + { + "match": "\\\\(u.{4}|\\S)", + "name": "constant.character.escape" + }, + { + "match": "true|false", + "name": "constant.language" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double" + }, + { + "begin": "\\s*(/)(?![/*])(?=(?:[^/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+/(?![/*])[gimy]*(?!\\s*[a-zA-Z0-9_$]))", + "end": "(?<!\\\\)\\/", + "name": "string.regexp" + } + ] + }, + "comments": { + "patterns": [ + { + "match": "^\\s*##.*$", + "name": "comment.block.documentation" + }, + { + "match": "#.*$", + "name": "comment.line.number-sign" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "return|if|match|for|while|break|continue", + "name": "keyword.control" + }, + { + "match": "\\+|\\-|\\*|\\/|\\%", + "name": "keyword.operator" + }, + { + "match": "pub|fn", + "name": "keyword.other" + }, + { + "match": "let|const|type", + "name": "storage.type" + }, + { + "match": "mut", + "name": "storage.modifier" + } + ] + }, + "types": { + "patterns": [ + { + "match": "[uif](8|16|32|64|128)", + "name": "entity.name.type.numeric" + }, + { + "match": "([^[:alpha:]]|^)(char)([^[:alpha:]]|$)", + "name": "entity.name.type.primitive" + }, + { + "match": "([^[:alpha:]]|^)(String|Regex)([^[:alpha:]]|$)", + "name": "entity.name.type" + } + ] + }, + "decorator": { + "match": "@[^(]+", + "name": "entity.name.function.decorator" + } + } +} |
