{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "Hana", "patterns": [ { "include": "#keywords" }, { "include": "#comments" }, { "include": "#operators" }, { "include": "#numerics" }, { "include": "#booleans" }, { "include": "#strings" }, { "include": "#strings-single" }, { "include": "#variables" } ], "repository": { "keywords": { "patterns": [ { "name": "keyword.control.hana", "match": "\\b(if|else|while|for|then|to|step|function|record|continue|break|return|try|case|raise|begin|end)\\b" }, { "name": "keyword.other.control", "match": "\\b(as)\\b" }, { "name": "keyword.other.modules", "match": "\\buse\\b" }] }, "comments": { "patterns": [ { "name": "comment.line.hana", "match": "//.*" }, { "name": "comment.block.hana", "begin": "/\\*", "end": "\\*/" } ] }, "variables": { "patterns": [ { "name": "variable.language.hana", "match": "\\b(self|print|input)\\b" }, { "name": "variable.other.hana", "match": "\\b[\\_$a-z][\\_$a-zA-Z0-9\\?\\!]*\\b" }, { "name": "variable.other.object.hana", "match": "\\b[A-Z][\\_$a-zA-Z0-9\\?\\!]*\\b" } ] }, "operators": { "patterns": [ { "name": "keyword.operator.assignment.compound.hana", "match": "\\*\\=|\\/\\=|\\+\\=|\\-\\=" }, { "name": "keyword.operator.arithmetic.hana", "match": "\\+|-|\\*|\\/|mod" }, { "name": "keyword.operator.comparison.hana", "match": "==|\\!=" }, { "name": "keyword.operator.relational.hana", "match": "\\<\\=|\\>\\=|\\<|\\>" }, { "name": "keyword.operator.logical.hana", "match": "\\b(and|or|not|of|in)\\b" }, { "name": "keyword.operator.assignment.hana", "match": "\\=" }, { "name": "keyword.operator.member.hana", "match": "(\\.|::)" } ] }, "numerics": { "patterns": [ { "name": "constant.numeric.decimal.hana", "match": "\\b[0-9]+(\\.[0-9]+)?\\b" }, { "name": "constant.numeric.hex.hana", "match": "\\b0x[0-9a-fA-F]+\\b" } ] }, "booleans": { "patterns": [{ "name": "constant.boolean.hana", "match": "\\b(true|false)\\b" }] }, "strings": { "name": "string.quoted.double.hana", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.hana", "match": "\\\\." } ] }, "strings-single": { "name": "string.quoted.single.hana", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.hana", "match": "\\\\." } ] } }, "scopeName": "source.hana.scope" }