--- /dev/null
+<?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>name</key>
+ <string>Jai</string>
+ <key>scopeName</key>
+ <string>source.onyx</string>
+ <key>fileTypes</key>
+ <array>
+ <string>onyx</string>
+ </array>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#comments</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#types</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#keywords</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#functions_and_declarations</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#strings</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string_escaped_char</string>
+ </dict>
+ </array>
+ <key>repository</key>
+ <dict>
+ <key>block_comment</key>
+ <dict>
+ <key>name</key>
+ <string>comment.block.onyx</string>
+ <key>begin</key>
+ <string>/\*</string>
+ <key>end</key>
+ <string>\*/</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#block_comment</string>
+ <key>name</key>
+ <string>comment.block.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ <key>line_comment</key>
+ <dict>
+ <key>begin</key>
+ <string>(^[ \t]+)?((?=//)|(?=#!))</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.whitespace.comment.leading.onyx</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>(?!\G)</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>//</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.onyx</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>\n</string>
+ <key>name</key>
+ <string>comment.line.double-slash.onyx</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>(?>\\\s*\n)</string>
+ <key>name</key>
+ <string>punctuation.separator.continuation.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>begin</key>
+ <string>#!</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.comment.onyx</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>\n</string>
+ <key>name</key>
+ <string>comment.line.double-slash.onyx</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>(?>\\\s*\n)</string>
+ <key>name</key>
+ <string>punctuation.separator.continuation.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ <key>comments</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#block_comment</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\*/.*\n</string>
+ <key>name</key>
+ <string>invalid.illegal.stray-comment-end.onyx</string>
+ </dict>
+
+ <dict>
+ <key>include</key>
+ <string>#line_comment</string>
+ </dict>
+ </array>
+ </dict>
+ <key>keywords</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\b(if|else|elseif|for|while|defer|return|do)\b</string>
+ <key>name</key>
+ <string>keyword.control.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(break|continue|fallthrough|switch|case)\b</string>
+ <key>name</key>
+ <string>keyword.control.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(use|macro|package)\b</string>
+ <key>name</key>
+ <string>keyword.control.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(it|it_index)\b</string>
+ <key>name</key>
+ <string>keyword.other.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(null|null_proc|null_str|true|false)\b</string>
+ <key>name</key>
+ <string>constant.language.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(\d(\d|_)*(.\d(\d|_)*)?)((e|E)(\+|-)?\d+)?[ijk]?\b</string>
+ <key>name</key>
+ <string>constant.numeric.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b((0b(0|1|_)+)|(0o(\d|_)+)|(0d(\d|_)+)|(0[xXh](\h|_)+))[ijk]?\b</string>
+ <key>name</key>
+ <string>constant.numeric.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>---</string>
+ <key>name</key>
+ <string>constant.numeric.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(struct|enum)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(cast)\b</string>
+ <key>name</key>
+ <string>keyword.function.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>([#]\s*\b([[:alpha:]_]+[[:alnum:]_]*)\b)</string>
+ <key>name</key>
+ <string>keyword.tag.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>@[^\s;]+</string>
+ <key>name</key>
+ <string>keyword.tag.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ <key>types</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\b(struct|enum)\b(?:(\{)(\}))?</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\$\s*(\b([[:alpha:]_]+[[:alnum:]_]*)\b)</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <!-- Basic Types -->
+ <dict>
+ <key>match</key>
+ <string>\b(i8|i16|i32|i64)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(u8|u16|u32|u64)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(f32|f64)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(bool)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(str|cstr)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(i8x16|i16x8|i32x4|i64x2|f32x4|f64x2|v128)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(void)\b</string>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ <key>functions_and_declarations</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\b(sizeof|alignof|typeof)\b\s*\(</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.function.onyx</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[!]?\s*[\(]</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>support.function.onyx</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*(struct|enum)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>meta.type.onyx entity.name.type.onyx</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>storage.type.onyx</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*([#]\s*type)</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>meta.type.onyx entity.name.type.onyx</string>
+ </dict>
+ <key>2</key>
+ <dict>
+ <key>name</key>
+ <string>keyword.tag.onyx</string>
+ </dict>
+ </dict>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\b(\b[[:alpha:]_]+[[:alnum:]_]*\b)\s*[:]\s*[:]\s*</string>
+ <key>captures</key>
+ <dict>
+ <key>1</key>
+ <dict>
+ <key>name</key>
+ <string>meta.constant.onyx entity.name.type.onyx</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+ <key>string_escaped_char</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>match</key>
+ <string>\\(\\|[abefnrut"0]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|[0-7]{3})</string>
+ <key>name</key>
+ <string>constant.character.escape.onyx</string>
+ </dict>
+ <dict>
+ <key>match</key>
+ <string>\\.</string>
+ <key>name</key>
+ <string>invalid.illegal.unknown-escape.onyx</string>
+ </dict>
+ </array>
+ </dict>
+ <key>strings</key>
+ <dict>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>begin</key>
+ <string>"</string>
+ <key>beginCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.begin.onyx</string>
+ </dict>
+ </dict>
+ <key>end</key>
+ <string>"</string>
+ <key>endCaptures</key>
+ <dict>
+ <key>0</key>
+ <dict>
+ <key>name</key>
+ <string>punctuation.definition.string.end.onyx</string>
+ </dict>
+ </dict>
+ <key>name</key>
+ <string>string.quoted.double.onyx</string>
+ <key>patterns</key>
+ <array>
+ <dict>
+ <key>include</key>
+ <string>#string_placeholder</string>
+ </dict>
+ <dict>
+ <key>include</key>
+ <string>#string_escaped_char</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ </dict>
+ </dict>
+</dict>
+</plist>