<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>io</string>
	</array>
	<key>foldingStartMarker</key>
	<string>(/\*\*|\([^\)]*$|if\()</string>
	<key>foldingStopMarker</key>
	<string>(\*\*/|^\s*\))</string>
	<key>keyEquivalent</key>
	<string>^~I</string>
	<key>name</key>
	<string>Io</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.empty-parenthesis.io</string>
				</dict>
			</dict>
			<key>comment</key>
			<string>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</string>
			<key>match</key>
			<string>\((\))</string>
		</dict>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.comma-parenthesis.io</string>
				</dict>
			</dict>
			<key>comment</key>
			<string>We want to do the same for ,) -- Seckar; same as above -- Rob</string>
			<key>match</key>
			<string>\,(\))</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(if|unless|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|select|reject|detect|continue|break|while|do|return|yield|pause|resume)\b</string>
			<key>name</key>
			<string>keyword.control.io</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#block_comment</string>
		</dict>
		<dict>
			<key>match</key>
			<string>//.*$\n?</string>
			<key>name</key>
			<string>comment.line.double-slash.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>#.*$\n?</string>
			<key>name</key>
			<string>comment.line.number-sign.io</string>
		</dict>
		<dict>
			<key>comment</key>
			<string>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</string>
			<key>match</key>
			<string>\b(self|call|sender|target|proto|protos)\b</string>
			<key>name</key>
			<string>keyword.language.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>&lt;=|&gt;=|=|:=|\*|\||\|\||\+|-|/|\^|%|&amp;|&amp;&amp;|&gt;|&lt;|\?|@|@@|\b(and|or|return)\b</string>
			<key>name</key>
			<string>keyword.operator.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\bGL[\w_]+\b</string>
			<key>name</key>
			<string>constant.other.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b([A-Z]\w+)\b</string>
			<key>name</key>
			<string>support.class.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(clone|call|init|method|list|vector|block|(\w+(?=\s*\()))\b</string>
			<key>name</key>
			<string>support.function.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(gl(u|ut)?[A-Z]\w+)\b</string>
			<key>name</key>
			<string>support.function.OpenGL.io</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>"""</string>
			<key>end</key>
			<string>"""</string>
			<key>name</key>
			<string>string.quoted.triple.io</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#interpolated_string</string>
				</dict>
			</array>
			<key>swallow</key>
			<string>\\.|"</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>"</string>
			<key>end</key>
			<string>"</string>
			<key>name</key>
			<string>string.quoted.double.io</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#interpolated_string</string>
				</dict>
			</array>
			<key>swallow</key>
			<string>\\.</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\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</string>
			<key>name</key>
			<string>constant.numeric.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(Lobby)\b</string>
			<key>name</key>
			<string>variable.other.global.io</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(true|false|nil)\b</string>
			<key>name</key>
			<string>constant.language.io</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>block_comment</key>
		<dict>
			<key>begin</key>
			<string>/\*</string>
			<key>end</key>
			<string>\*/</string>
			<key>name</key>
			<string>comment.block.io</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#block_comment</string>
				</dict>
			</array>
		</dict>
		<key>interpolated_string</key>
		<dict>
			<key>begin</key>
			<string>#\{</string>
			<key>end</key>
			<string>\}</string>
			<key>name</key>
			<string>string.embedded.source</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#block_comment</string>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.io</string>
	<key>uuid</key>
	<string>BD798537-3548-47F3-A6AB-7FB95C45DB83</string>
</dict>
</plist>
