UNPKG

oscript-vscode-plugin

Version:

Oscript support for writing Autonomous Agents in VS Code

147 lines (146 loc) 4.26 kB
{ "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", "name": "oscript.formula", "patterns": [ { "include": "#comments" }, { "include": "#keywords" }, { "include": "#operators" }, { "include": "#trigger" }, { "include": "#strings" }, { "include": "#variables" }, { "include": "#numbers" }, { "include": "#external-aa" }, { "include": "#object-keys" } ], "repository": { "keywords": { "patterns": [ { "name": "keyword.oscript.formula", "match": "\\b(true|false)\\b" }, { "name": "keyword.control.oscript.formula", "match": "\\b(if|else|return|bounce|require)\\b" }, { "name": "keyword.oscript.formula", "match": "\\b(params|trigger\\.data|trigger\\.outputs|trigger\\.output|trigger\\.address|trigger\\.unit|trigger\\.initial_address|trigger\\.initial_unit)\\b" }, { "name": "keyword.oscript.formula", "match": "(?<!\\.)\\b(var|response|response_unit|timestamp|mci|mc_unit|this_address|base|data_feed|in_data_feed|attestation|balance|address|amount|asset|attestors|ifseveral|ifnone|type|oracles|feed_name|min_mci|feed_value|what|pi|e|storage_size|unit|number_of_responses|previous_aa_responses|definition)\\b" }, { "name": "entity.name.function.oscript.formula", "match": "(?<!\\.)\\b(min|max|sqrt|ln|ceil|floor|round|abs|hypot|is_valid_signed_package|sha256|is_valid_sig|vrf_verify|json_parse|json_stringify|number_from_seed|length|is_valid_address|substring|starts_with|ends_with|contains|parse_date|timestamp_to_string|typeof|is_integer|is_valid_amount|is_aa|index_of|array_length|is_array|is_assoc|to_upper|to_lower|exists|delete|freeze|chash160|map|reduce|split|join|reverse|keys|replace|has_only|foreach|filter|log)\\b" } ] }, "trigger": { "patterns": [ { "name": "variable.oscript.formula", "match": "(?<=trigger\\.data)(\\.\\w+)+" } ] }, "external-aa": { "patterns": [ { "name": "keyword.oscript.formula", "match": "[A-Z0-9]{32}\\." } ] }, "operators": { "name": "keyword.operator.oscript.formula", "match": "((OR|NOT|AND|OTHERWISE|or|and|not|otherwise|!=|!!|==|<=|>=|\\+=|-=|\\*=|%=|/=|(\\|\\|=)|(\\|\\|))|[=><?:+*/%^!-])" }, "comments": { "patterns": [ { "name": "comment.oscript.formula", "match": "//.*$" }, { "name": "comment.oscript.formula", "begin": "/\\*", "end": "\\*/" } ] }, "strings": { "patterns": [ { "name": "string.quoted.oscript.formula", "begin": "'", "end": "(\\')|((?:[^\\\\\\n])$)", "patterns": [{ "include": "#string-character-escape" }] }, { "name": "string.quoted.oscript.formula", "begin": "\"", "end": "(\")|((?:[^\\\\\\n])$)", "patterns": [{ "include": "#string-character-escape" }] } ] }, "string-character-escape": { "name": "constant.character.escape.js", "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" }, "variables": { "patterns": [ { "name": "entity.name.type.oscript.formula", "match": "\\$\\w+(\\.\\w+)*" } ] }, "numbers": { "patterns": [ { "name": "constant.numeric.oscript.formula", "match": "\\b\\d+([eE][-+]?\\d+)?\\b" }, { "name": "constant.numeric.oscript.formula", "match": "\\b\\d*\\.\\d+([eE][-+]?\\d+)?\\b" } ] }, "object-keys": { "patterns": [ { "begin": "{", "beginCaptures": { "0": { "name": "keyword.operator.oscript.formula" } }, "end": "}", "endCaptures": { "0": { "name": "keyword.operator.oscript.formula" } }, "patterns": [ { "match": "(\\w+)\\s*(:)", "captures": { "1": { "name": "variable.name.oscript.formula"} } }, { "include": "#comments" }, { "include": "#keywords" }, { "include": "#operators" }, { "include": "#trigger" }, { "include": "#strings" }, { "include": "#variables" }, { "include": "#numbers" }, { "include": "#external-aa" }, { "include": "#object-keys" } ] } ] } }, "scopeName": "source.oscript.formula" }