const lang = Object.freeze({ "displayName": "Clarity", "name": "clarity", "patterns": [{ "include": "#expression" }, { "include": "#define-constant" }, { "include": "#define-data-var" }, { "include": "#define-map" }, { "include": "#define-function" }, { "include": "#define-fungible-token" }, { "include": "#define-non-fungible-token" }, { "include": "#define-trait" }, { "include": "#use-trait" }], "repository": { "built-in-func": { "begin": "(?x) (\\() \\s* (\\-|\\+|<\\=|>\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+", "beginCaptures": { "1": { "name": "punctuation.built-in-function.start.clarity" }, "2": { "name": "keyword.declaration.built-in-function.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.built-in-function.end.clarity" } }, "name": "meta.built-in-function", "patterns": [{ "include": "#expression" }, { "include": "#user-func" }] }, "comment": { "match": "(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $", "name": "comment.line.semicolon.clarity" }, "data-type": { "patterns": [{ "include": "#comment" }, { "comment": "numerics", "match": "\\b(uint|int)\\b", "name": "entity.name.type.numeric.clarity" }, { "comment": "principal", "match": "\\b(principal)\\b", "name": "entity.name.type.principal.clarity" }, { "comment": "bool", "match": "\\b(bool)\\b", "name": "entity.name.type.bool.clarity" }, { "captures": { "1": { "name": "punctuation.string_type-def.start.clarity" }, "2": { "name": "entity.name.type.string_type.clarity" }, "3": { "name": "constant.numeric.string_type-len.clarity" }, "4": { "name": "punctuation.string_type-def.end.clarity" } }, "match": "(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))" }, { "captures": { "1": { "name": "punctuation.buff-def.start.clarity" }, "2": { "name": "entity.name.type.buff.clarity" }, "3": { "name": "constant.numeric.buf-len.clarity" }, "4": { "name": "punctuation.buff-def.end.clarity" } }, "match": "(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))" }, { "begin": "(?x) (\\() \\s* (optional)\\s+", "beginCaptures": { "1": { "name": "punctuation.optional-def.start.clarity" }, "2": { "name": "storage.type.modifier" } }, "comment": "optional", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.optional-def.end.clarity" } }, "name": "meta.optional-def", "patterns": [{ "include": "#data-type" }] }, { "begin": "(?x) (\\() \\s* (response)\\s+", "beginCaptures": { "1": { "name": "punctuation.response-def.start.clarity" }, "2": { "name": "storage.type.modifier" } }, "comment": "response", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.response-def.end.clarity" } }, "name": "meta.response-def", "patterns": [{ "include": "#data-type" }] }, { "begin": "(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+", "beginCaptures": { "1": { "name": "punctuation.list-def.start.clarity" }, "2": { "name": "entity.name.type.list.clarity" }, "3": { "name": "constant.numeric.list-len.clarity" } }, "comment": "list", "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.list-def.end.clarity" } }, "name": "meta.list-def", "patterns": [{ "include": "#data-type" }] }, { "begin": "(\\{)", "beginCaptures": { "1": { "name": "punctuation.tuple-def.start.clarity" } }, "end": "(\\})", "endCaptures": { "1": { "name": "punctuation.tuple-def.end.clarity" } }, "name": "meta.tuple-def", "patterns": [{ "match": "([a-zA-Z][\\w\\?\\!\\-]*)(?=:)", "name": "entity.name.tag.tuple-data-type-key.clarity" }, { "include": "#data-type" }] }] }, "define-constant": { "begin": "(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-constant.start.clarity" }, "2": { "name": "keyword.declaration.define-constant.clarity" }, "3": { "name": "entity.name.constant-name.clarity variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-constant.end.clarity" } }, "name": "meta.define-constant", "patterns": [{ "include": "#expression" }] }, "define-data-var": { "begin": "(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-data-var.start.clarity" }, "2": { "name": "keyword.declaration.define-data-var.clarity" }, "3": { "name": "entity.name.data-var-name.clarity variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-data-var.end.clarity" } }, "name": "meta.define-data-var", "patterns": [{ "include": "#data-type" }, { "include": "#expression" }] }, "define-function": { "begin": "(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-function.start.clarity" }, "2": { "name": "keyword.declaration.define-function.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-function.end.clarity" } }, "name": "meta.define-function", "patterns": [{ "include": "#expression" }, { "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s*", "beginCaptures": { "1": { "name": "punctuation.function-signature.start.clarity" }, "2": { "name": "entity.name.function.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.function-signature.end.clarity" } }, "name": "meta.define-function-signature", "patterns": [{ "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.function-argument.start.clarity" }, "2": { "name": "variable.parameter.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.function-argument.end.clarity" } }, "name": "meta.function-argument", "patterns": [{ "include": "#data-type" }] }] }, { "include": "#user-func" }] }, "define-fungible-token": { "captures": { "1": { "name": "punctuation.define-fungible-token.start.clarity" }, "2": { "name": "keyword.declaration.define-fungible-token.clarity" }, "3": { "name": "entity.name.fungible-token-name.clarity variable.other.clarity" }, "4": { "name": "constant.numeric.fungible-token-total-supply.clarity" }, "5": { "name": "punctuation.define-fungible-token.end.clarity" } }, "match": "(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) (?:\\s+(u\\d+))?" }, "define-map": { "begin": "(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-map.start.clarity" }, "2": { "name": "keyword.declaration.define-map.clarity" }, "3": { "name": "entity.name.map-name.clarity variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-map.end.clarity" } }, "name": "meta.define-map", "patterns": [{ "include": "#data-type" }, { "include": "#expression" }] }, "define-non-fungible-token": { "begin": "(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-non-fungible-token.start.clarity" }, "2": { "name": "keyword.declaration.define-non-fungible-token.clarity" }, "3": { "name": "entity.name.non-fungible-token-name.clarity variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-non-fungible-token.end.clarity" } }, "name": "meta.define-non-fungible-token", "patterns": [{ "include": "#data-type" }] }, "define-trait": { "begin": "(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.define-trait.start.clarity" }, "2": { "name": "keyword.declaration.define-trait.clarity" }, "3": { "name": "entity.name.trait-name.clarity variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-trait.end.clarity" } }, "name": "meta.define-trait", "patterns": [{ "begin": "(?x) (\\() \\s*", "beginCaptures": { "1": { "name": "punctuation.define-trait-body.start.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.define-trait-body.end.clarity" } }, "name": "meta.define-trait-body", "patterns": [{ "include": "#expression" }, { "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\!\\?\\-]*) \\s+", "beginCaptures": { "1": { "name": "punctuation.trait-function.start.clarity" }, "2": { "name": "entity.name.function.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.trait-function.end.clarity" } }, "name": "meta.trait-function", "patterns": [{ "include": "#data-type" }, { "begin": "(?x) (\\() \\s*", "beginCaptures": { "1": { "name": "punctuation.trait-function-args.start.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.trait-function-args.end.clarity" } }, "name": "meta.trait-function-args", "patterns": [{ "include": "#data-type" }] }] }] }] }, "expression": { "patterns": [{ "include": "#comment" }, { "include": "#keyword" }, { "include": "#literal" }, { "include": "#let-func" }, { "include": "#built-in-func" }, { "include": "#get-set-func" }] }, "get-set-func": { "begin": "(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s*", "beginCaptures": { "1": { "name": "punctuation.get-set-func.start.clarity" }, "2": { "name": "keyword.control.clarity" }, "3": { "name": "variable.other.clarity" } }, "end": "(\\))", "endCaptures": { "1": { "name": "punctuation.get-set-func.end.clarity" } }, "name": "meta.get-set-func", "patterns": [{ "include": "#expression" }] }, "keyword": { "match": "(?