Sublime Text 2: Ruby Syntax Customization
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Solarized (light-custom)</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#FDF6E3</string>
<key>caret</key>
<string>#839496</string>
<key>foreground</key>
<string>#839496</string>
<key>invisibles</key>
<string>#073642</string>
<key>lineHighlight</key>
<string>#eee8d5</string>
<key>selection</key>
<string>#899090</string>
<key>selectionForeground</key>
<string>#ffffff</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>StringNumber</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regexp</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D33682</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable.language, variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class, entity.name.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable start</string>
<key>scope</key>
<string>punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Embedded code markers</string>
<key>scope</key>
<string>punctuation.section.embedded.begin, punctuation.section.embedded.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language, meta.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Support.construct</string>
<key>scope</key>
<string>support.function.construct, keyword.other.new</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>constant.character, constant.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict/>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict/>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag start/end</string>
<key>scope</key>
<string>punctuation.definition.tag.html, punctuation.definition.tag.begin, punctuation.definition.tag.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#93A1A1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Continuation</string>
<key>scope</key>
<string>punctuation.separator.continuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict/>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library Exception</string>
<key>scope</key>
<string>support.type.exception</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Special</string>
<key>scope</key>
<string>keyword.other.special-method</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Helper</string>
<key>scope</key>
<string>keyword.other.helper-method</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict/>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict/>
</dict>
<dict>
<key>name</key>
<string>Quoted String</string>
<key>scope</key>
<string>string.quoted.double, string.quoted.single</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Quotes</string>
<key>scope</key>
<string>punctuation.definition.string.begin, punctuation.definition.string.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: Property name (body)</string>
<key>scope</key>
<string>entity.name.tag.css, support.type.property-name.css, meta.property-name.css, support.type.property-name.scss</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: @ rules (purple)</string>
<key>scope</key>
<string>punctuation.definition.keyword.scss, punctuation.definition.keyword.css, keyword.control.at-rule.charset.css, keyword.control.at-rule.charset.scss, keyword.control.each.css, keyword.control.each.scss, keyword.control.else.css, keyword.control.else.scss, keyword.control.at-rule.import.css, keyword.control.at-rule.import.scss, keyword.control.at-rule.fontface.css, keyword.control.at-rule.fontface.scss, keyword.control.for.css, keyword.control.for.scss, keyword.control.at-rule.function.css, keyword.control.at-rule.function.scss, keyword.control.if.css, keyword.control.if.scss, keyword.control.at-rule.include.scss, keyword.control.at-rule.media.css, keyword.control.at-rule.media.scss, keyword.control.at-rule.font-face.css, keyword.control.at-rule.font-face.scss, meta.at-rule.import.css, variable.other.less, variable.declaration.less, variable.interpolation.less, meta.at-rule.media.scss</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6C71c4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: Numeric Value (blue)</string>
<key>scope</key>
<string>constant.numeric.css, keyword.other.unit.css, keyword.unit.css, constant.other.color.rgb-value.css, constant.numeric.scss, constant.other.color.rgb-value.scss, keyword.other.unit.scss, punctuation.definition.constant.scss, punctuation.definition.constant.css, constant.other.rgb-value.css</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: String, value and constants (azure)</string>
<key>scope</key>
<string>variable.parameter.url.scss, meta.property-value.css, meta.property-value.scss, support.constant.property-value.scss, support.constant.font-name.scss, string.quoted.single.css, string.quoted.double.css, constant.character.escaped.css, string.quoted.variable.parameter.url, punctuation.definition.string.begin.scss, punctuation.definition.string.begin.css, punctuation.definition.string.end.scss, punctuation.definition.string.end.css, support.constant.property-value.css</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: !Important (red)</string>
<key>scope</key>
<string>keyword.other.important.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: Standard color value (orange)</string>
<key>scope</key>
<string>support.constant.color, invalid.deprecated.color.w3c-non-standard-color-name.scss</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: : , () (body)</string>
<key>scope</key>
<string>punctuation.terminator.rule.css, punctuation.section.function.css, punctuation.section.function.scss, punctuation.separator.key-value.csspunctuation.scss, punctuation.css, keyword.operator.less, entity.name.tag.wildcard.scss, entity.name.tag.wildcard.css, entity.name.tag.reference.scss</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#657B83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: Selector > [] and non-spec tags (body)</string>
<key>scope</key>
<string>meta.selector.css</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#657B83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: Tag (green)</string>
<key>scope</key>
<string>entity.name.tag.css, entity.name.tag.scss</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS .class (yellow)</string>
<key>scope</key>
<string>entity.other.attribute-name.class.css, entity.other.less.mixin</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS: #id (yellow)</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.id</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS :pseudo (orange)</string>
<key>scope</key>
<string>entity.other.attribute-name.pseudo-element.css, entity.other.attribute-name.pseudo-class.css</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SCSS: Variables (pink)</string>
<key>scope</key>
<string>variable, variable.scss</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#D33682</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: Function Name</string>
<key>scope</key>
<string>meta.function.js, entity.name.function.js, support.function.dom.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: Source</string>
<key>scope</key>
<string>text.html.basic source.js.embedded.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: Function</string>
<key>scope</key>
<string>storage.type.function.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: Numeric Constant</string>
<key>scope</key>
<string>constant.numeric.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: []</string>
<key>scope</key>
<string>meta.brace.square.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS: Storage Type</string>
<key>scope</key>
<string>storage.type.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>()</string>
<key>scope</key>
<string>meta.brace.round, punctuation.definition.parameters.begin.js, punctuation.definition.parameters.end.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#93A1A1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>{}</string>
<key>scope</key>
<string>meta.brace.curly.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Doctype</string>
<key>scope</key>
<string>entity.name.tag.doctype.html, meta.tag.sgml.html, string.quoted.double.doctype.identifiers-and-DTDs.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Comment Block</string>
<key>scope</key>
<string>comment.block.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Script</string>
<key>scope</key>
<string>entity.name.tag.script.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Style</string>
<key>scope</key>
<string>source.css.embedded.html string.quoted.double.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Text</string>
<key>scope</key>
<string>text.html.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: =</string>
<key>scope</key>
<string>text.html.basic meta.tag.other.html, text.html.basic meta.tag.any.html, text.html.basic meta.tag.block.any, text.html.basic meta.tag.inline.any, text.html.basic meta.tag.structure.any.html, text.html.basic source.js.embedded.html, punctuation.separator.key-value.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#657B83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: something=</string>
<key>scope</key>
<string>text.html.basic entity.other.attribute-name.html</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#657B83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: "</string>
<key>scope</key>
<string>text.html.basic meta.tag.structure.any.html punctuation.definition.string.begin.html, punctuation.definition.string.begin.html, punctuation.definition.string.end.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: <tag></string>
<key>scope</key>
<string>entity.name.tag.block.any.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: style</string>
<key>scope</key>
<string>source.css.embedded.html entity.name.tag.style.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: <style></string>
<key>scope</key>
<string>entity.name.tag.style.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: {}</string>
<key>scope</key>
<string>text.html.basic, punctuation.section.property-list.css</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML: Embeddable</string>
<key>scope</key>
<string>source.css.embedded.html, comment.block.html</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Variable definition</string>
<key>scope</key>
<string>punctuation.definition.variable.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Function Name</string>
<key>scope</key>
<string>meta.function.method.with-arguments.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Variable</string>
<key>scope</key>
<string>variable.language.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Function</string>
<key>scope</key>
<string>entity.name.function.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Keyword Control</string>
<key>scope</key>
<string>keyword.control.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Class</string>
<key>scope</key>
<string>source.ruby.rails keyword.control.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Class Name</string>
<key>scope</key>
<string>entity.name.type.class.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Keyword</string>
<key>scope</key>
<string>keyword.control.ruby, keyword.control.class.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Support Class</string>
<key>scope</key>
<string>support.class.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Special Method</string>
<key>scope</key>
<string>keyword.other.special-method.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Constant</string>
<key>scope</key>
<string>constant.language.ruby, constant.numeric.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Constant Other</string>
<key>scope</key>
<string>variable.other.constant.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: :symbol</string>
<key>scope</key>
<string>constant.other.symbol.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Punctuation Section ''</string>
<key>scope</key>
<string>punctuation.section.embedded.ruby, punctuation.definition.string.begin.ruby, punctuation.definition.string.end.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B4755B</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: Special Method</string>
<key>scope</key>
<string>keyword.other.special-method.ruby</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Include</string>
<key>scope</key>
<string>keyword.control.import.include.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: erb =</string>
<key>scope</key>
<string>text.html.ruby meta.tag.inline.any.html, text.html.ruby</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Ruby: erb ""</string>
<key>scope</key>
<string>text.html.ruby punctuation.definition.string.begin, text.html.ruby punctuation.definition.string.end</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Quoted Single</string>
<key>scope</key>
<string>punctuation.definition.string.begin, punctuation.definition.string.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Class Names</string>
<key>scope</key>
<string>support.class.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#93A1A1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: []</string>
<key>scope</key>
<string>keyword.operator.index-start.php, keyword.operator.index-end.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Array</string>
<key>scope</key>
<string>meta.array.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Array()</string>
<key>scope</key>
<string>meta.array.php support.function.construct.php, meta.array.empty.php support.function.construct.php</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Array Construct</string>
<key>scope</key>
<string>support.function.construct.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Array Begin</string>
<key>scope</key>
<string>punctuation.definition.array.begin, punctuation.definition.array.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Numeric Constant</string>
<key>scope</key>
<string>constant.numeric.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: New</string>
<key>scope</key>
<string>keyword.other.new.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: ::</string>
<key>scope</key>
<string>keyword.operator.class</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#93A1A1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Other Property</string>
<key>scope</key>
<string>variable.other.property.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Class</string>
<key>scope</key>
<string>storage.modifier.extends.php, storage.type.class.php, keyword.operator.class.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Semicolon</string>
<key>scope</key>
<string>punctuation.terminator.expression.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Inherited Class</string>
<key>scope</key>
<string>meta.other.inherited-class.php</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Storage Type</string>
<key>scope</key>
<string>storage.type.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Function</string>
<key>scope</key>
<string>entity.name.function.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Function Construct</string>
<key>scope</key>
<string>support.function.construct.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Function Call</string>
<key>scope</key>
<string>entity.name.type.class.php, meta.function-call.php, meta.function-call.static.php, meta.function-call.object.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Comment</string>
<key>scope</key>
<string>keyword.other.phpdoc</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Source Emebedded</string>
<key>scope</key>
<string>source.php.embedded.block.html</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP: Storage Type Function</string>
<key>scope</key>
<string>storage.type.function.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: constant</string>
<key>scope</key>
<string>constant.numeric.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: Meta Preprocessor</string>
<key>scope</key>
<string>meta.preprocessor.c.include, meta.preprocessor.macro.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: Keyword</string>
<key>scope</key>
<string>keyword.control.import.define.c, keyword.control.import.include.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: Function Preprocessor</string>
<key>scope</key>
<string>entity.name.function.preprocessor.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: include <something.c></string>
<key>scope</key>
<string>meta.preprocessor.c.include string.quoted.other.lt-gt.include.c, meta.preprocessor.c.include punctuation.definition.string.begin.c, meta.preprocessor.c.include punctuation.definition.string.end.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: Function</string>
<key>scope</key>
<string>support.function.C99.c, support.function.any-method.c, entity.name.function.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#93A1A1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: "</string>
<key>scope</key>
<string>punctuation.definition.string.begin.c, punctuation.definition.string.end.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C: Storage Type</string>
<key>scope</key>
<string>storage.type.c</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff: header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#B58900</string>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>#EEE8D5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff: deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#EEE8D5</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff: changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#EEE8D5</string>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>diff: inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#EEE8D5</string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>reST raw</string>
<key>scope</key>
<string>text.restructuredtext markup.raw</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Other: Removal</string>
<key>scope</key>
<string>other.package.exclude, other.remove</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Other: Add</string>
<key>scope</key>
<string>other.add</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: {}</string>
<key>scope</key>
<string>punctuation.section.group.tex , punctuation.definition.arguments.begin.latex, punctuation.definition.arguments.end.latex, punctuation.definition.arguments.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: {text}</string>
<key>scope</key>
<string>meta.group.braces.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Other Math</string>
<key>scope</key>
<string>string.other.math.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: {var}</string>
<key>scope</key>
<string>variable.parameter.function.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Math \\</string>
<key>scope</key>
<string>punctuation.definition.constant.math.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Constant Math</string>
<key>scope</key>
<string>text.tex.latex constant.other.math.tex, constant.other.general.math.tex, constant.other.general.math.tex, constant.character.math.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Other Math String</string>
<key>scope</key>
<string>string.other.math.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: $</string>
<key>scope</key>
<string>punctuation.definition.string.begin.tex, punctuation.definition.string.end.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: \label</string>
<key>scope</key>
<string>keyword.control.label.latex, text.tex.latex constant.other.general.math.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: \label { }</string>
<key>scope</key>
<string>variable.parameter.definition.label.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Function</string>
<key>scope</key>
<string>support.function.be.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Support Function Section</string>
<key>scope</key>
<string>support.function.section.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Support Function</string>
<key>scope</key>
<string>support.function.general.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Comment</string>
<key>scope</key>
<string>punctuation.definition.comment.tex, comment.line.percentage.tex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tex: Reference Label</string>
<key>scope</key>
<string>keyword.control.ref.latex</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python: storage</string>
<key>scope</key>
<string>storage.type.class.python, storage.type.function.python, storage.modifier.global.python</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python: import</string>
<key>scope</key>
<string>keyword.control.import.python, keyword.control.import.from.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python: Support.exception</string>
<key>scope</key>
<string>support.type.exception.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: builtin</string>
<key>scope</key>
<string>support.function.builtin.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: variable</string>
<key>scope</key>
<string>variable.other.normal.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: DOT_FILES</string>
<key>scope</key>
<string>source.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: meta scope in loop</string>
<key>scope</key>
<string>meta.scope.for-in-loop.shell, variable.other.loop.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: ""</string>
<key>scope</key>
<string>punctuation.definition.string.end.shell, punctuation.definition.string.begin.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: Meta Block</string>
<key>scope</key>
<string>meta.scope.case-block.shell, meta.scope.case-body.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: []</string>
<key>scope</key>
<string>punctuation.definition.logical-expression.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell: Comment</string>
<key>scope</key>
<string>comment.line.number-sign.shell</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java: import</string>
<key>scope</key>
<string>keyword.other.import.java</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#CB4B16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java: meta-import</string>
<key>scope</key>
<string>storage.modifier.import.java</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java: Class</string>
<key>scope</key>
<string>meta.class.java storage.modifier.java</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java: /* comment */</string>
<key>scope</key>
<string>source.java comment.block</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java: /* @param */</string>
<key>scope</key>
<string>comment.block meta.documentation.tag.param.javadoc keyword.other.documentation.param.javadoc</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Perl: variables</string>
<key>scope</key>
<string>punctuation.definition.variable.perl, variable.other.readwrite.global.perl, variable.other.predefined.perl, keyword.operator.comparison.perl</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Perl: functions</string>
<key>scope</key>
<string>support.function.perl</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#859900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Perl: comments</string>
<key>scope</key>
<string>comment.line.number-sign.perl</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
<key>foreground</key>
<string>#586E75</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Perl: quotes</string>
<key>scope</key>
<string>punctuation.definition.string.begin.perl, punctuation.definition.string.end.perl</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Perl: \char</string>
<key>scope</key>
<string>constant.character.escape.perl</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#DC322F</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown punctuation</string>
<key>scope</key>
<string>markup.list, text.html.markdown punctuation.definition, meta.separator.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CB4b16</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown heading</string>
<key>scope</key>
<string>markup.heading</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#268BD2</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown text inside some block element</string>
<key>scope</key>
<string>markup.quote, meta.paragraph.list</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#2AA198</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown em</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown strong</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown reference</string>
<key>scope</key>
<string>markup.underline.link.markdown, meta.link.inline punctuation.definition.metadata, meta.link.reference.markdown punctuation.definition.constant, meta.link.reference.markdown constant.other.reference</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#B58900</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Markdown linebreak</string>
<key>scope</key>
<string>meta.paragraph.markdown meta.dummy.line-break</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#6C71c4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Annotations</string>
<key>scope</key>
<string>sublimelinter.notes</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#eee8d5</string>
<key>foreground</key>
<string>#eee8d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Outline</string>
<key>scope</key>
<string>sublimelinter.outline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#93a1a1</string>
<key>foreground</key>
<string>#93a1a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Error Underline</string>
<key>scope</key>
<string>sublimelinter.underline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#dc322f</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Outline</string>
<key>scope</key>
<string>sublimelinter.outline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#839496</string>
<key>foreground</key>
<string>#839496</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Warning Underline</string>
<key>scope</key>
<string>sublimelinter.underline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#b58900</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Outline</string>
<key>scope</key>
<string>sublimelinter.outline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#657b83</string>
<key>foreground</key>
<string>#657b83</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeLinter Violation Underline</string>
<key>scope</key>
<string>sublimelinter.underline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#cb4b16</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SublimeBracketHighlighter</string>
<key>scope</key>
<string>brackethighlighter.all</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#002b36</string>
<key>foreground</key>
<string>#cb4b16</string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>A4299D9B-1DE5-4BC4-87F6-A757E71B1597</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>comment</key>
<string>
TODO: unresolved issues
text:
"p << end
print me!
end"
symptoms:
not recognized as a heredoc
solution:
there is no way to distinguish perfectly between the << operator and the start
of a heredoc. Currently, we require assignment to recognize a heredoc. More
refinement is possible.
• Heredocs with indented terminators (<<-) are always distinguishable, however.
• Nested heredocs are not really supportable at present
text:
print <<-'THERE'
This is single quoted.
The above used #{Time.now}
THERE
symtoms:
From Programming Ruby p306; should be a non-interpolated heredoc.
text:
"a\332a"
symptoms:
'\332' is not recognized as slash3.. which should be octal 332.
solution:
plain regexp.. should be easy.
text:
val?(a):p(b)
val?'a':'b'
symptoms:
':p' is recognized as a symbol.. its 2 things ':' and 'p'.
:'b' has same problem.
solution:
ternary operator rule, precedence stuff, symbol rule.
but also consider 'a.b?(:c)' ??
</string>
<key>fileTypes</key>
<array>
<string>rb</string>
<string>rbx</string>
<string>rjs</string>
<string>Rakefile</string>
<string>rake</string>
<string>cgi</string>
<string>fcgi</string>
<string>gemspec</string>
<string>irbrc</string>
<string>capfile</string>
<string>Gemfile</string>
</array>
<key>firstLineMatch</key>
<string>^#!/.*\bruby</string>
<key>foldingStartMarker</key>
<string>(?x)^
(\s*+
(module|class|def(?!.*\bend\s*$)
|unless|if
|case
|begin
|for|while|until
|^=begin
|( "(\\.|[^"])*+" # eat a double quoted string
| '(\\.|[^'])*+' # eat a single quoted string
| [^#"'] # eat all but comments and strings
)*
( \s (do|begin|case)
| (?<!\$)[-+=&|*/~%^<>~] \s*+ (if|unless)
)
)\b
(?! [^;]*+ ; .*? \bend\b )
|( "(\\.|[^"])*+" # eat a double quoted string
| '(\\.|[^'])*+' # eat a single quoted string
| [^#"'] # eat all but comments and strings
)*
( \{ (?! [^}]*+ \} )
| \[ (?! [^\]]*+ \] )
)
).*$
| [#] .*? \(fold\) \s*+ $ # Sune’s special marker
</string>
<key>foldingStopMarker</key>
<string>(?x)
( (^|;) \s*+ end \s*+ ([#].*)? $
| (^|;) \s*+ end \. .* $
| ^ \s*+ [}\]] ,? \s*+ ([#].*)? $
| [#] .*? \(end\) \s*+ $ # Sune’s special marker
| ^=end
)</string>
<key>keyEquivalent</key>
<string>^~R</string>
<key>name</key>
<string>Ruby</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.class.ruby</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.class.ruby</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.ruby</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.separator.inheritance.ruby</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>variable.other.object.ruby</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(class)\s+(([.a-zA-Z0-9_:]+(\s*(<)\s*[.a-zA-Z0-9_:]+)?)|((<<)\s*[.a-zA-Z0-9_:]+))</string>
<key>name</key>
<string>meta.class.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.module.ruby</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.module.ruby</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.module.first.ruby</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.separator.inheritance.ruby</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.module.second.ruby</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.separator.inheritance.ruby</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>entity.other.inherited-class.module.third.ruby</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>punctuation.separator.inheritance.ruby</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(module)\s+(([A-Z]\w*(::))?([A-Z]\w*(::))?([A-Z]\w*(::))*[A-Z]\w*)</string>
<key>name</key>
<string>meta.module.ruby</string>
</dict>
<dict>
<key>comment</key>
<string>else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.</string>
<key>match</key>
<string>(?<!\.)\belse(\s)+if\b</string>
<key>name</key>
<string>invalid.deprecated.ruby</string>
</dict>
<dict>
<key>comment</key>
<string>everything being a reserved word, not a value and needing a 'end' is a..</string>
<key>match</key>
<string>(?<!\.)\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\b(?![?!])</string>
<key>name</key>
<string>keyword.control.ruby</string>
</dict>
<dict>
<key>comment</key>
<string>contextual smart pair support for block parameters</string>
<key>match</key>
<string>(?<!\.)\bdo\b\s*</string>
<key>name</key>
<string>keyword.control.start-block.ruby</string>
</dict>
<dict>
<key>comment</key>
<string>contextual smart pair support</string>
<key>match</key>
<string>(?<=\{)(\s+)</string>
<key>name</key>
<string>meta.syntax.ruby.start-block</string>
</dict>
<dict>
<key>comment</key>
<string> as above, just doesn't need a 'end' and does a logic operation</string>
<key>match</key>
<string>(?<!\.)\b(and|not|or)\b</string>
<key>name</key>
<string>keyword.operator.logical.ruby</string>
</dict>
<dict>
<key>comment</key>
<string> just as above but being not a logical operation</string>
<key>match</key>
<string>(?<!\.)\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\b(?![?!])|\bdefined\?|\bblock_given\?</string>
<key>name</key>
<string>keyword.control.pseudo-method.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\b(nil|true|false)\b(?![?!])</string>
<key>name</key>
<string>constant.language.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\b(__(FILE|LINE)__|self)\b(?![?!])</string>
<key>name</key>
<string>variable.language.ruby</string>
</dict>
<dict>
<key>comment</key>
<string> everything being a method but having a special function is a..</string>
<key>match</key>
<string>\b(initialize|new|loop|include|extend|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|module_function|public|protected)\b(?![?!])</string>
<key>name</key>
<string>keyword.other.special-method.ruby</string>
</dict>
<dict>
<key>comment</key>
<string> everything being a method but having a helper function is a..</string>
<key>match</key>
<string>\b(action_name|asset_path|asset_url|atom_feed|audio_path|audio_tag|audio_url|auto_discovery_link_tagbutton_tag|button_to|button_to_functioncache|cache_fragment_name|cache_if|cache_unless|capture|cdata_section|check_box|check_box_tag|collection_check_boxes|collection_radio_buttons|collection_select|color_field|color_field_tag|compute_asset_extname|compute_asset_host|compute_asset_path|concat|content_for|content_tag|content_tag_for|controller|controller_name|controller_path|convert_to_model|cookies|csrf_meta_tag|csrf_meta_tags|current_cycle|cycledate_field|date_field_tag|date_select|datetime_field|datetime_field_tag|datetime_local_field|datetime_local_field_tag|datetime_select|debug|distance_of_time_in_words|distance_of_time_in_words_to_now|div_for|dom_class|dom_idemail_field|email_field_tag|escape_javascript|escape_once|excerptfavicon_link_tag|field_set_tag|fields_for|file_field|file_field_tag|flash|font_path|font_url|form_for|form_taggrouped_collection_select|grouped_options_for_selectheaders|hidden_field|hidden_field_tag|highlightimage_alt|image_path|image_submit_tag|image_tag|image_urlj|javascript_cdata_section|javascript_include_tag|javascript_path|javascript_tag|javascript_urll|label|label_tag|link_to|link_to_function|link_to_if|link_to_unless|link_to_unless_current|localize|loggermail_to|month_field|month_field_tagnumber_field|number_field_tag|number_to_currency|number_to_human|number_to_human_size|number_to_percentage|number_to_phone|number_with_delimiter|number_with_precisionoption_groups_from_collection_for_select|options_for_select|options_from_collection_for_selectparams|password_field|password_field_tag|path_to_asset|path_to_audio|path_to_font|path_to_image|path_to_javascript|path_to_stylesheet|path_to_video|phone_field|phone_field_tag|pluralize|provideradio_button|radio_button_tag|range_field|range_field_tag|raw|render|request|request_forgery_protection_token|reset_cycle|responsesafe_concat|safe_join|sanitize|sanitize_css|search_field|search_field_tag|select|select_date|select_datetime|select_day|select_hour|select_minute|select_month|select_second|select_tag|select_time|select_year|session|simple_format|strip_links|strip_tags|stylesheet_link_tag|stylesheet_path|stylesheet_url|submit_tagt|tag|telephone_field|telephone_field_tag|text_area|text_area_tag|text_field|text_field_tag|time_ago_in_words|time_field|time_field_tag|time_select|time_tag|time_zone_options_for_select|time_zone_select|translate|truncateurl_field|url_field_tag|url_for|url_to_asset|url_to_audio|url_to_font|url_to_image|url_to_javascript|url_to_stylesheet|url_to_video|utf8_enforcer_tagvideo_path|video_tag|video_urlweek_field|week_field_tag|word_wrap)\b(?![?!])</string>
<key>name</key>
<string>keyword.other.helper-method.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>\b(require|gem)\b</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.other.special-method.ruby</string>
</dict>
</dict>
<key>end</key>
<string>$|(?=#)</string>
<key>name</key>
<string>meta.require.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(@)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.instance.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(@@)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.class.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(\$)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.global.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(\$)(!|@|&|`|'|\+|\d+|~|=|/|\\|,|;|\.|<|>|_|\*|\$|\?|:|"|-[0adFiIlpv])</string>
<key>name</key>
<string>variable.other.readwrite.global.pre-defined.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>\b(ENV)\[</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.other.constant.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>meta.environment-variable.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>\b[A-Z]\w*(?=((\.|::)[A-Za-z]|\[))</string>
<key>name</key>
<string>support.class.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\b[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.constant.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?=def\b) # an optimization to help Oniguruma fail fast
(?<=^|\s)(def)\s+ # the def keyword
( (?>[a-zA-Z_]\w*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
\s*(\() # the openning parenthesis for arguments
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.def.ruby</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.ruby</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>the method pattern comes from the symbol pattern, see there for a explaination</string>
<key>contentName</key>
<string>variable.parameter.function.ruby</string>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.ruby</string>
</dict>
</dict>
<key>name</key>
<string>meta.function.method.with-arguments.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?=def\b) # an optimization to help Oniguruma fail fast
(?<=^|\s)(def)\s+ # the def keyword
( (?>[a-zA-Z_]\w*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) # …or an operator method
[ \t] # the space separating the arguments
(?=[ \t]*[^\s#;]) # make sure arguments and not a comment follow
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.def.ruby</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>same as the previous rule, but without parentheses around the arguments</string>
<key>contentName</key>
<string>variable.parameter.function.ruby</string>
<key>end</key>
<string>$</string>
<key>name</key>
<string>meta.function.method.with-arguments.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.def.ruby</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.function.ruby</string>
</dict>
</dict>
<key>comment</key>
<string> the optional name is just to catch the def also without a method-name</string>
<key>match</key>
<string>(?x)
(?=def\b) # an optimization to help Oniguruma fail fast
(?<=^|\s)(def)\b # the def keyword
( \s+ # an optional group of whitespace followed by…
( (?>[a-zA-Z_]\w*(?>\.|::))? # a method name prefix
(?>[a-zA-Z_]\w*(?>[?!]|=(?!>))? # the method name
|===?|>[>=]?|<=>|<[<=]?|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?) ) )? # …or an operator method
</string>
<key>name</key>
<string>meta.function.method.without-arguments.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\b(0[xX]\h(?>_?\h)*|\d(?>_?\d)*(\.(?![^[:space:][:digit:]])(?>_?\d)*)?([eE][-+]?\d(?>_?\d)*)?|0[bB][01]+)\b</string>
<key>name</key>
<string>constant.numeric.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>:'</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.ruby</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>name</key>
<string>constant.other.symbol.single-quoted.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\['\\]</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>:"</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.ruby</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>name</key>
<string>constant.other.symbol.double-quoted.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>comment</key>
<string>Needs higher precidence than regular expressions.</string>
<key>match</key>
<string>/=</string>
<key>name</key>
<string>keyword.operator.assignment.augmented.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>single quoted string (does not allow interpolation)</string>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\'|\\\\</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>double quoted string (allows for interpolation)</string>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>`</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allows for interpolation)</string>
<key>end</key>
<string>`</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%x\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allow for interpolation)</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%x\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allow for interpolation)</string>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%x\<</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allow for interpolation)</string>
<key>end</key>
<string>\></string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%x\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allow for interpolation)</string>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%x([^\w])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>execute string (allow for interpolation)</string>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?:
^ # beginning of line
| (?<= # or look-behind on:
[=>~(?:\[,|&;]
| [\s;]if\s # keywords
| [\s;]elsif\s
| [\s;]while\s
| [\s;]unless\s
| [\s;]when\s
| [\s;]assert_match\s
| [\s;]or\s # boolean opperators
| [\s;]and\s
| [\s;]not\s
| [\s.]index\s # methods
| [\s.]scan\s
| [\s.]sub\s
| [\s.]sub!\s
| [\s.]gsub\s
| [\s.]gsub!\s
| [\s.]match\s
)
| (?<= # or a look-behind with line anchor:
^when\s # duplication necessary due to limits of regex
| ^if\s
| ^elsif\s
| ^while\s
| ^unless\s
)
)
\s*((/))(?![*+{}?])
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.classic.ruby</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (normal)
we only start a regexp if the character before it (excluding whitespace)
is what we think is before a regexp
</string>
<key>contentName</key>
<string>string.regexp.classic.ruby</string>
<key>end</key>
<string>((/[eimnosux]*))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%r\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (literal)</string>
<key>end</key>
<string>\}[eimnosux]*</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.mod-r.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly_r</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%r\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (literal)</string>
<key>end</key>
<string>\][eimnosux]*</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.mod-r.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets_r</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%r\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (literal)</string>
<key>end</key>
<string>\)[eimnosux]*</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.mod-r.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens_r</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%r\<</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (literal)</string>
<key>end</key>
<string>\>[eimnosux]*</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.mod-r.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt_r</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%r([^\w])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>regular expressions (literal)</string>
<key>end</key>
<string>\1[eimnosux]*</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.mod-r.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[QWSR]?\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation ()</string>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.upper.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[QWSR]?\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation []</string>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.upper.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[QWSR]?\<</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation <></string>
<key>end</key>
<string>\></string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.upper.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[QWSR]?\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation -- {}</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.ruby.mod</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly_i</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[QWSR]([^\w])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation -- wildcard</string>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.upper.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%([^\w\s=])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal capable of interpolation -- wildcard</string>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.other.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[qws]\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal incapable of interpolation -- ()</string>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.lower.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\)|\\\\</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[qws]\<</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal incapable of interpolation -- <></string>
<key>end</key>
<string>\></string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.lower.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\>|\\\\</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[qws]\[</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal incapable of interpolation -- []</string>
<key>end</key>
<string>\]</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.lower.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\]|\\\\</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[qws]\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal incapable of interpolation -- {}</string>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.lower.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\\}|\\\\</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%[qws]([^\w])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>literal incapable of interpolation -- wildcard</string>
<key>end</key>
<string>\1</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.literal.lower.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>comment</key>
<string>Cant be named because its not neccesarily an escape.</string>
<key>match</key>
<string>\\.</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>symbols</string>
<key>match</key>
<string>(?<!:)(:)(?>[a-zA-Z_]\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\|]|\*\*?|=?~|[-+]@?|\[\]=?|@@?[a-zA-Z_]\w*)</string>
<key>name</key>
<string>constant.other.symbol.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>symbols</string>
<key>match</key>
<string>(?>[a-zA-Z_]\w*(?>[?!])?)(:)(?!:)</string>
<key>name</key>
<string>constant.other.symbol.ruby.19syntax</string>
</dict>
<dict>
<key>begin</key>
<string>^=begin</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>multiline comments</string>
<key>end</key>
<string>^=end</string>
<key>name</key>
<string>comment.block.documentation.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(?:^[ \t]+)?(#).*$\n?</string>
<key>name</key>
<string>comment.line.number-sign.ruby</string>
</dict>
<dict>
<key>comment</key>
<string>
matches questionmark-letters.
examples (1st alternation = hex):
?\x1 ?\x61
examples (2nd alternation = octal):
?\0 ?\07 ?\017
examples (3rd alternation = escaped):
?\n ?\b
examples (4th alternation = meta-ctrl):
?\C-a ?\M-a ?\C-\M-\C-\M-a
examples (4th alternation = normal):
?a ?A ?0
?* ?" ?(
?. ?#
the negative lookbehind prevents against matching
p(42.tainted?)
</string>
<key>match</key>
<string>(?<!\w)\?(\\(x\h{1,2}(?!\h)\b|0[0-7]{0,2}(?![0-7])\b|[^x0MC])|(\\[MC]-)+\w|[^\s\\])</string>
<key>name</key>
<string>constant.numeric.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>^__END__\n</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.unquoted.program-block.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>__END__ marker</string>
<key>contentName</key>
<string>text.plain</string>
<key>end</key>
<string>(?=not)impossible</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(?=<?xml|<(?i:html\b)|!DOCTYPE (?i:html\b))</string>
<key>end</key>
<string>(?=not)impossible</string>
<key>name</key>
<string>text.html.embedded.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)HTML)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded HTML and indented terminator</string>
<key>contentName</key>
<string>text.html.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.html.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)SQL)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded SQL and indented terminator</string>
<key>contentName</key>
<string>text.sql.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.sql.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.sql</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)CSS)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded css and intented terminator</string>
<key>contentName</key>
<string>text.css.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.css.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.css</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)CPP)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded c++ and intented terminator</string>
<key>contentName</key>
<string>text.c++.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.cplusplus.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.c++</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)C)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded c++ and intented terminator</string>
<key>contentName</key>
<string>text.c.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.c.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.c</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)(?:JS|JAVASCRIPT))\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded javascript and intented terminator</string>
<key>contentName</key>
<string>text.js.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.js.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)JQUERY)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded javascript and intented terminator</string>
<key>contentName</key>
<string>text.js.jquery.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.js.jquery.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.js.jquery</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)(?:SH|SHELL))\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded shell and intented terminator</string>
<key>contentName</key>
<string>text.shell.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.shell.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.shell</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-("?)((?:[_\w]+_|)RUBY)\b\1)</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with embedded ruby and intented terminator</string>
<key>contentName</key>
<string>text.ruby.embedded.ruby</string>
<key>end</key>
<string>\s*\2$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.embedded.ruby.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>source.ruby</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?>\=\s*<<(\w+))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>end</key>
<string>^\1$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.heredoc.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?><<-(\w+))</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>heredoc with indented terminator</string>
<key>end</key>
<string>\s*\1$</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.ruby</string>
</dict>
</dict>
<key>name</key>
<string>string.unquoted.heredoc.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#heredoc</string>
</dict>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?<=\{|do|\{\s|do\s)(\|)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.variable.ruby</string>
</dict>
</dict>
<key>end</key>
<string>(\|)</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>[_a-zA-Z][_a-zA-Z0-9]*</string>
<key>name</key>
<string>variable.other.block.ruby</string>
</dict>
<dict>
<key>match</key>
<string>,</string>
<key>name</key>
<string>punctuation.separator.variable.ruby</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>=></string>
<key>name</key>
<string>punctuation.separator.key-value</string>
</dict>
<dict>
<key>match</key>
<string><<=|%=|&=|\*=|\*\*=|\+=|\-=|\^=|\|{1,2}=|<<</string>
<key>name</key>
<string>keyword.operator.assignment.augmented.ruby</string>
</dict>
<dict>
<key>match</key>
<string><=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \t])\?</string>
<key>name</key>
<string>keyword.operator.comparison.ruby</string>
</dict>
<dict>
<key>match</key>
<string>(?<=[ \t])!+|\bnot\b|&&|\band\b|\|\||\bor\b|\^</string>
<key>name</key>
<string>keyword.operator.logical.ruby</string>
</dict>
<dict>
<key>match</key>
<string>(%|&|\*\*|\*|\+|\-|/)</string>
<key>name</key>
<string>keyword.operator.arithmetic.ruby</string>
</dict>
<dict>
<key>match</key>
<string>=</string>
<key>name</key>
<string>keyword.operator.assignment.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\||~|>></string>
<key>name</key>
<string>keyword.operator.other.ruby</string>
</dict>
<dict>
<key>match</key>
<string>:</string>
<key>name</key>
<string>punctuation.separator.other.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\;</string>
<key>name</key>
<string>punctuation.separator.statement.ruby</string>
</dict>
<dict>
<key>match</key>
<string>,</string>
<key>name</key>
<string>punctuation.separator.object.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\.|::</string>
<key>name</key>
<string>punctuation.separator.method.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\{|\}</string>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\[|\]</string>
<key>name</key>
<string>punctuation.section.array.ruby</string>
</dict>
<dict>
<key>match</key>
<string>\(|\)</string>
<key>name</key>
<string>punctuation.section.function.ruby</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>escaped_char</key>
<dict>
<key>match</key>
<string>\\(?:[0-7]{1,3}|x[\da-fA-F]{1,2}|.)</string>
<key>name</key>
<string>constant.character.escape.ruby</string>
</dict>
<key>heredoc</key>
<dict>
<key>begin</key>
<string>^<<-?\w+</string>
<key>end</key>
<string>$</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<key>interpolated_ruby</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.embedded.ruby</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.ruby.embedded.source.empty</string>
</dict>
</dict>
<key>match</key>
<string>#\{(\})</string>
<key>name</key>
<string>source.ruby.embedded.source</string>
</dict>
<dict>
<key>begin</key>
<string>#\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.embedded.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>source.ruby.embedded.source</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_curly_and_self</string>
</dict>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(#@)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.instance.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(#@@)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.class.ruby</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(#\$)[a-zA-Z_]\w*</string>
<key>name</key>
<string>variable.other.readwrite.global.ruby</string>
</dict>
</array>
</dict>
<key>nest_brackets</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_brackets</string>
</dict>
</array>
</dict>
<key>nest_brackets_i</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets_i</string>
</dict>
</array>
</dict>
<key>nest_brackets_r</key>
<dict>
<key>begin</key>
<string>\[</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_brackets_r</string>
</dict>
</array>
</dict>
<key>nest_curly</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_curly</string>
</dict>
</array>
</dict>
<key>nest_curly_and_self</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_curly_and_self</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<key>nest_curly_i</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly_i</string>
</dict>
</array>
</dict>
<key>nest_curly_r</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_curly_r</string>
</dict>
</array>
</dict>
<key>nest_ltgt</key>
<dict>
<key>begin</key>
<string>\<</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\></string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_ltgt</string>
</dict>
</array>
</dict>
<key>nest_ltgt_i</key>
<dict>
<key>begin</key>
<string>\<</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\></string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt_i</string>
</dict>
</array>
</dict>
<key>nest_ltgt_r</key>
<dict>
<key>begin</key>
<string>\<</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\></string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_ltgt_r</string>
</dict>
</array>
</dict>
<key>nest_parens</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nest_parens</string>
</dict>
</array>
</dict>
<key>nest_parens_i</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens_i</string>
</dict>
</array>
</dict>
<key>nest_parens_r</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
<dict>
<key>include</key>
<string>#nest_parens_r</string>
</dict>
</array>
</dict>
<key>regex_sub</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#interpolated_ruby</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.arbitrary-repitition.ruby</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.arbitrary-repitition.ruby</string>
</dict>
</dict>
<key>match</key>
<string>(\{)\d+(,\d+)?(\})</string>
<key>name</key>
<string>string.regexp.arbitrary-repitition.ruby</string>
</dict>
<dict>
<key>begin</key>
<string>\[(?:\^?\])?</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.character-class.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\]</string>
<key>name</key>
<string>string.regexp.character-class.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\(</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.group.ruby</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>name</key>
<string>string.regexp.group.ruby</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regex_sub</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.ruby</string>
</dict>
</dict>
<key>comment</key>
<string>We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.</string>
<key>match</key>
<string>(?<=^|\s)(#)\s[[a-zA-Z0-9,. \t?!-][^\x{00}-\x{7F}]]*$</string>
<key>name</key>
<string>comment.line.number-sign.ruby</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.ruby</string>
<key>uuid</key>
<string>E00B62AC-6B1C-11D9-9B1F-000D93589AF6</string>
</dict>
</plist>