{"name":"Io","scopeName":"source.io","patterns":[{"match":"\\((\\))","captures":{"1":{"name":"meta.empty-parenthesis.io"}}},{"match":"\\,(\\))","captures":{"1":{"name":"meta.comma-parenthesis.io"}}},{"name":"keyword.control.io","match":"\\b(if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\b"},{"name":"comment.block.io","begin":"/\\*","end":"\\*/","captures":{"0":{"name":"punctuation.definition.comment.io"}}},{"begin":"(^[ \\t]+)?(?=//)","end":"(?!\\G)","patterns":[{"name":"comment.line.double-slash.io","begin":"//","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.io"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.io"}}},{"begin":"(^[ \\t]+)?(?=#)","end":"(?!\\G)","patterns":[{"name":"comment.line.number-sign.io","begin":"#","end":"\\n","beginCaptures":{"0":{"name":"punctuation.definition.comment.io"}}}],"beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.io"}}},{"name":"variable.language.io","match":"\\b(self|sender|target|proto|protos|parent)\\b"},{"name":"keyword.operator.io","match":"\u003c=|\u003e=|=|:=|\\*|\\||\\|\\||\\+|-|/|\u0026|\u0026\u0026|\u003e|\u003c|\\?|@|@@|\\b(and|or)\\b"},{"name":"constant.other.io","match":"\\bGL[\\w_]+\\b"},{"name":"support.class.io","match":"\\b([A-Z](\\w+)?)\\b"},{"name":"support.function.io","match":"\\b(clone|call|init|method|list|vector|block|(\\w+(?=\\s*\\()))\\b"},{"name":"support.function.open-gl.io","match":"\\b(gl(u|ut)?[A-Z]\\w+)\\b"},{"name":"string.quoted.triple.io","begin":"\"\"\"","end":"\"\"\"","patterns":[{"name":"constant.character.escape.io","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.io"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.io"}}},{"name":"string.quoted.double.io","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.io","match":"\\\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.io"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.io"}}},{"name":"constant.numeric.io","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b"},{"name":"variable.other.global.io","match":"(Lobby)\\b"},{"name":"constant.language.io","match":"\\b(TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\b"}]}
