{ "scopeName": "source.hblang", "name": "hblang", "fileTypes": [ "hb" ], "patterns": [ { "include": "#all" } ], "repository": { "all": { "patterns": [ { "include": "#comment" }, { "include": "#string" }, { "include": "#struct" }, { "include": "#keyword" }, { "include": "#number" }, { "include": "#punctuation" }, { "include": "#function" }, { "include": "#operator" }, { "include": "#variable" }, { "include": "#type" }, { "include": "#array" } ] }, "parameter": { "patterns": [ { "name": "variable.parameter.hblang", "match": "\\b\\w+\\s*:\\s*(?:\\^)?[\\w\\$]+\\b" } ] }, "number": { "patterns": [ { "name": "constant.numeric.float.hblang", "match": "\\b\\d+\\.\\d+\\b" }, { "name": "constant.numeric.hex.hblang", "match": "0x[0-9A-Fa-f]+" }, { "name": "constant.numeric.binary.hblang", "match": "0b[0-1]+" }, { "name": "constant.numeric.octal.hblang", "match": "0o[0-7]+" }, { "name": "constant.numeric.decimal.hblang", "match": "\\b\\d+\\b" } ] }, "comment": { "patterns": [ { "name": "comment.block.hblang", "begin": "/\\*", "end": "\\*/" }, { "name": "comment.line.double-slash.hblang", "begin": "//", "end": "$" } ] }, "string": { "patterns": [ { "name": "string.quoted.double.hblang", "begin": "\"", "end": "\"", "patterns": [ { "name": "constant.character.escape.hblang", "match": "\\\\." } ] }, { "name": "string.quoted.single.hblang", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.hblang", "match": "\\\\." } ] } ] }, "keyword": { "patterns": [ { "name": "keyword.control.hblang", "match": "(?>=|>=|<=|\\^=|\\+=|-=|\\*=|\\/=|%=|\\|=|&=|\\^|\\*|&|<<|>>|\\+|\\-|\\/|%|\\||!|==|!=|<|>)" } ] }, "struct": { "patterns": [ { "name": "entity.name.type.struct.hblang", "match": "\\b[A-Z]\\w*\\b" } ] }, "punctuation": { "patterns": [ { "name": "punctuation.terminator.statement.hblang", "match": ";|\\.|,|(?