fileTypes io foldingStartMarker (/\*\*|\([^\)]*$|if\() foldingStopMarker (\*\*/|^\s*\)) keyEquivalent ^~I name Io patterns captures 1 name meta.empty-parenthesis.io comment we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob match \((\)) captures 1 name meta.comma-parenthesis.io comment We want to do the same for ,) -- Seckar; same as above -- Rob match \,(\)) match \b(if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\b name keyword.control.io begin /\* captures 0 name punctuation.definition.comment.io end \*/ name comment.block.io captures 1 name punctuation.definition.comment.io match (//).*$\n? name comment.line.double-slash.io captures 1 name punctuation.definition.comment.io match (#).*$\n? name comment.line.number-sign.io comment I wonder if some of this isn't variable.other.language? --Allan; scoping this as variable.language to match Objective-C's handling of 'self', which is inconsistent with C++'s handling of 'this' but perhaps intentionally so -- Rob match \b(self|sender|target|proto|protos|parent)\b name variable.language.io match <=|>=|=|:=|\*|\||\|\||\+|-|/|&|&&|>|<|\?|@|@@|\b(and|or)\b name keyword.operator.io match \bGL[\w_]+\b name constant.other.io match \b([A-Z](\w+)?)\b name support.class.io match \b(clone|call|init|method|list|vector|block|(\w+(?=\s*\()))\b name support.function.io match \b(gl(u|ut)?[A-Z]\w+)\b name support.function.open-gl.io begin """ beginCaptures 0 name punctuation.definition.string.begin.io end """ endCaptures 0 name punctuation.definition.string.end.io name string.quoted.triple.io patterns match \\. name constant.character.escape.io begin " beginCaptures 0 name punctuation.definition.string.begin.io end " endCaptures 0 name punctuation.definition.string.end.io name string.quoted.double.io patterns match \\. name constant.character.escape.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 constant.numeric.io match (Lobby)\b name variable.other.global.io match \b(TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\b name constant.language.io scopeName source.io uuid BD798537-3548-47F3-A6AB-7FB95C45DB83