const lang = Object.freeze({ "displayName": "Smalltalk", "fileTypes": ["st"], "foldingStartMarker": "\\[", "foldingStopMarker": "^\\s*\\]|^\\s\\]", "name": "smalltalk", "patterns": [{ "match": "\\$.", "name": "constant.character.smalltalk" }, { "match": "\\b(class)\\b", "name": "storage.type.$1.smalltalk" }, { "match": "\\b(extend|super|self)\\b", "name": "storage.modifier.$1.smalltalk" }, { "match": "\\b(yourself|new|Smalltalk)\\b", "name": "keyword.control.$1.smalltalk" }, { "match": ":=", "name": "keyword.operator.assignment.smalltalk" }, { "comment": "Parse the variable declaration like: |a b c|", "match": "/^:\\w*\\s*\\|/", "name": "constant.other.block.smalltalk" }, { "captures": { "1": { "name": "punctuation.definition.instance-variables.begin.smalltalk" }, "2": { "patterns": [{ "match": "\\w+", "name": "support.type.variable.declaration.smalltalk" }] }, "3": { "name": "punctuation.definition.instance-variables.end.smalltalk" } }, "match": "(\\|)(\\s*\\w[\\w ]*)(\\|)" }, { "captures": { "1": { "patterns": [{ "match": ":\\w+", "name": "entity.name.function.block.smalltalk" }] } }, "comment": "Parse the blocks like: [ :a :b | ...... ]", "match": "\\[((\\s+|:\\w+)*)\\|" }, { "include": "#numeric" }, { "match": "<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^", "name": "keyword.operator.comparison.smalltalk" }, { "match": "(\\*|\\+|\\-|/|\\\\)", "name": "keyword.operator.arithmetic.smalltalk" }, { "match": "(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b", "name": "keyword.operator.logical.smalltalk" }, { "comment": "Fake reserved word -> main Smalltalk messages", "match": "(?[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", "name": "constant.other.messages.smalltalk" }, { "captures": { "1": { "name": "punctuation.definition.constant.smalltalk" } }, "comment": "symbols", "match": "(#)[a-zA-Z_][a-zA-Z0-9_:]*", "name": "constant.other.symbol.smalltalk" }, { "begin": "#\\[", "beginCaptures": [{ "name": "punctuation.definition.constant.begin.smalltalk" }], "end": "\\]", "endCaptures": [{ "name": "punctuation.definition.constant.end.smalltalk" }], "name": "meta.array.byte.smalltalk", "patterns": [{ "match": "[0-9]+(r[a-zA-Z0-9]+)?", "name": "constant.numeric.integer.smalltalk" }, { "match": "[^\\s\\]]+", "name": "invalid.illegal.character-not-allowed-here.smalltalk" }] }, { "begin": "#\\(", "beginCaptures": [{ "name": "punctuation.definition.constant.begin.smalltalk" }], "comment": "Array Constructor", "end": "\\)", "endCaptures": [{ "name": "punctuation.definition.constant.end.smalltalk" }], "name": "constant.other.array.smalltalk" }, { "begin": "'", "beginCaptures": [{ "name": "punctuation.definition.string.begin.smalltalk" }], "end": "'", "endCaptures": [{ "name": "punctuation.definition.string.end.smalltalk" }], "name": "string.quoted.single.smalltalk" }, { "match": "\\b[A-Z]\\w*\\b", "name": "variable.other.constant.smalltalk" }], "repository": { "numeric": { "patterns": [{ "match": "(?