{"name":"Smalltalk","scopeName":"source.smalltalk","patterns":[{"name":"storage.type.$1.smalltalk","match":"\\b(class)\\b"},{"name":"storage.modifier.$1.smalltalk","match":"\\b(extend|super|self)\\b"},{"name":"keyword.control.$1.smalltalk","match":"\\b(yourself|new|Smalltalk)\\b"},{"name":"keyword.operator.assignment.smalltalk","match":":="},{"name":"constant.other.block.smalltalk","match":"/^:\\w*\\s*\\|/"},{"match":"(\\|)(\\s*\\w[\\w ]*)(\\|)","captures":{"1":{"name":"punctuation.definition.instance-variables.begin.smalltalk"},"2":{"patterns":[{"name":"support.type.variable.declaration.smalltalk","match":"\\w+"}]},"3":{"name":"punctuation.definition.instance-variables.end.smalltalk"}}},{"match":"\\[((\\s+|:\\w+)*)\\|","captures":{"1":{"patterns":[{"name":"entity.name.function.block.smalltalk","match":":\\w+"}]}}},{"name":"keyword.operator.comparison.smalltalk","match":"\u003c(?!\u003c|=)|\u003e(?!\u003c|=|\u003e)|\u003c=|\u003e=|=|==|~=|~~|\u003e\u003e|\\^"},{"name":"keyword.operator.arithmetic.smalltalk","match":"(\\*|\\+|\\-|/|\\\\)"},{"name":"keyword.operator.logical.smalltalk","match":"(?\u003c=[ \\t])!+|\\bnot\\b|\u0026|\\band\\b|\\||\\bor\\b"},{"name":"keyword.control.smalltalk","match":"(?\u003c!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])"},{"name":"keyword.control.conditionals.smalltalk","match":"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:"},{"name":"meta.class.smalltalk","match":"(\\w+)(\\s+(subclass:))\\s*(\\w*)","captures":{"1":{"name":"entity.other.inherited-class.smalltalk"},"3":{"name":"keyword.control.smalltalk"},"4":{"name":"entity.name.type.class.smalltalk"}}},{"name":"comment.block.smalltalk","begin":"\"","end":"\"","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.smalltalk"}},"endCaptures":{"0":{"name":"punctuation.definition.comment.end.smalltalk"}}},{"name":"constant.language.boolean.smalltalk","match":"\\b(true|false)\\b"},{"name":"constant.language.nil.smalltalk","match":"\\b(nil)\\b"},{"name":"constant.other.messages.smalltalk","match":"(?\u003e[a-zA-Z_]\\w*(?\u003e[?!])?)(:)(?!:)","captures":{"1":{"name":"punctuation.definition.constant.smalltalk"}}},{"name":"constant.other.symbol.smalltalk","match":"(#)[a-zA-Z_][a-zA-Z0-9_:]*","captures":{"1":{"name":"punctuation.definition.constant.smalltalk"}}},{"name":"constant.other.bytearray.smalltalk","begin":"#\\[","end":"\\]","beginCaptures":{"0":{"name":"punctuation.definition.constant.begin.smalltalk"}},"endCaptures":{"0":{"name":"punctuation.definition.constant.end.smalltalk"}}},{"name":"constant.other.array.smalltalk","begin":"#\\(","end":"\\)","beginCaptures":{"0":{"name":"punctuation.definition.constant.begin.smalltalk"}},"endCaptures":{"0":{"name":"punctuation.definition.constant.end.smalltalk"}}},{"name":"string.quoted.single.smalltalk","begin":"'","end":"'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.smalltalk"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.smalltalk"}}},{"name":"constant.numeric.smalltalk","match":"\\b(0[xX][0-9A-Fa-f](?\u003e_?[0-9A-Fa-f])*|\\d(?\u003e_?\\d)*(\\.(?![^[:space:][:digit:]])(?\u003e_?\\d)*)?([eE][-+]?\\d(?\u003e_?\\d)*)?|0[bB][01]+)\\b"},{"name":"variable.other.constant.smalltalk","match":"\\b[A-Z]\\w*\\b"}]}
