UNPKG

tm-grammars

Version:
180 lines (179 loc) 4.03 kB
{ "displayName": "Gleam", "fileTypes": [ "gleam" ], "name": "gleam", "patterns": [ { "include": "#comments" }, { "include": "#keywords" }, { "include": "#strings" }, { "include": "#constant" }, { "include": "#entity" }, { "include": "#discards" } ], "repository": { "binary_number": { "match": "\\b0[Bb]0*1[01_]*\\b", "name": "constant.numeric.binary.gleam", "patterns": [ ] }, "comments": { "patterns": [ { "match": "//.*", "name": "comment.line.gleam" } ] }, "constant": { "patterns": [ { "include": "#binary_number" }, { "include": "#octal_number" }, { "include": "#hexadecimal_number" }, { "include": "#decimal_number" }, { "match": "\\p{upper}\\p{alnum}*", "name": "entity.name.type.gleam" } ] }, "decimal_number": { "match": "\\b(0*[1-9][0-9_]*|0)(\\.(0*[1-9][0-9_]*|0)?(e-?0*[1-9][0-9]*)?)?\\b", "name": "constant.numeric.decimal.gleam", "patterns": [ ] }, "discards": { "match": "\\b_\\p{word}+{0,1}\\b", "name": "comment.unused.gleam" }, "entity": { "patterns": [ { "begin": "\\b(\\p{lower}\\p{word}*)\\b\\s*\\(", "captures": { "1": { "name": "entity.name.function.gleam" } }, "end": "\\)", "patterns": [ { "include": "$self" } ] }, { "match": "\\b(\\p{lower}\\p{word}*):\\s", "name": "variable.parameter.gleam" }, { "match": "\\b(\\p{lower}\\p{word}*):", "name": "entity.name.namespace.gleam" } ] }, "hexadecimal_number": { "match": "\\b0[Xx]0*[1-9A-Za-z][0-9A-Za-z]*\\b", "name": "constant.numeric.hexadecimal.gleam", "patterns": [ ] }, "keywords": { "patterns": [ { "match": "\\b(as|use|case|if|fn|import|let|assert|pub|type|opaque|const|todo|panic|else|try|echo)\\b", "name": "keyword.control.gleam" }, { "match": "(<-|->)", "name": "keyword.operator.arrow.gleam" }, { "match": "\\|>", "name": "keyword.operator.pipe.gleam" }, { "match": "\\.\\.", "name": "keyword.operator.splat.gleam" }, { "match": "([!=]=)", "name": "keyword.operator.comparison.gleam" }, { "match": "([<>](?:=|)\\.)", "name": "keyword.operator.comparison.float.gleam" }, { "match": "(<=|>=|[<>])", "name": "keyword.operator.comparison.int.gleam" }, { "match": "(&&|\\|\\|)", "name": "keyword.operator.logical.gleam" }, { "match": "<>", "name": "keyword.operator.string.gleam" }, { "match": "\\|", "name": "keyword.operator.other.gleam" }, { "match": "([-*+/]\\.)", "name": "keyword.operator.arithmetic.float.gleam" }, { "match": "([-%*+/])", "name": "keyword.operator.arithmetic.int.gleam" }, { "match": "=", "name": "keyword.operator.assignment.gleam" } ] }, "octal_number": { "match": "\\b0[Oo]0*[1-7][0-7]*\\b", "name": "constant.numeric.octal.gleam", "patterns": [ ] }, "strings": { "begin": "\"", "end": "\"", "name": "string.quoted.double.gleam", "patterns": [ { "match": "\\\\.", "name": "constant.character.escape.gleam" } ] } }, "scopeName": "source.gleam" }