{ "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" } ] }