config/sublime/Packages/R/R.tmLanguage
2012-08-01 21:04:05 -07:00

220 lines
5.1 KiB
Text

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>R</string>
<string>r</string>
<string>s</string>
<string>S</string>
<string>Rprofile</string>
</array>
<key>foldingStartMarker</key>
<string>(\(\s*$|\{\s*$)</string>
<key>foldingStopMarker</key>
<string>(^\s*\)|^\s*\})</string>
<key>keyEquivalent</key>
<string>^~R</string>
<key>name</key>
<string>R</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.r</string>
</dict>
</dict>
<key>match</key>
<string>(#).*$\n?</string>
<key>name</key>
<string>comment.line.number-sign.r</string>
</dict>
<dict>
<key>match</key>
<string>\b(logical|numeric|character|complex|matrix|array|data\.frame|list|factor)(?=\s*\()</string>
<key>name</key>
<string>storage.type.r</string>
</dict>
<dict>
<key>match</key>
<string>\b(function|if|break|next|repeat|else|for|return|switch|while|in|invisible)\b</string>
<key>name</key>
<string>keyword.control.r</string>
</dict>
<dict>
<key>match</key>
<string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b</string>
<key>name</key>
<string>constant.numeric.r</string>
</dict>
<dict>
<key>match</key>
<string>\b(TRUE|FALSE|NULL|NA|Inf|NaN)\b</string>
<key>name</key>
<string>constant.language.r</string>
</dict>
<dict>
<key>match</key>
<string>\b(pi|letters|LETTERS|month\.abb|month\.name)\b</string>
<key>name</key>
<string>support.constant.misc.r</string>
</dict>
<dict>
<key>match</key>
<string>(\-|\+|\*|\/|%\/%|%%|%\*%|%in%|%o%|%x%|\^)</string>
<key>name</key>
<string>keyword.operator.arithmetic.r</string>
</dict>
<dict>
<key>match</key>
<string>(=|&lt;-|&lt;&lt;-|-&gt;|-&gt;&gt;)</string>
<key>name</key>
<string>keyword.operator.assignment.r</string>
</dict>
<dict>
<key>match</key>
<string>(==|!=|&lt;&gt;|&lt;|&gt;|&lt;=|&gt;=)</string>
<key>name</key>
<string>keyword.operator.comparison.r</string>
</dict>
<dict>
<key>match</key>
<string>(!|&amp;{1,2}|[|]{1,2})</string>
<key>name</key>
<string>keyword.operator.logical.r</string>
</dict>
<dict>
<key>match</key>
<string>(\.\.\.|\$|:|\~)</string>
<key>name</key>
<string>keyword.other.r</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.r</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.r</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.r</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.r</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.r</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.r</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.r</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.r</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.r</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.r</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>keyword.control.r</string>
</dict>
</dict>
<key>match</key>
<string>([a-zA-Z._][a-zA-Z0-9._]*)\s*(&lt;-)\s*(function)</string>
<key>name</key>
<string>meta.function.r</string>
</dict>
<dict>
<key>match</key>
<string>([a-zA-Z._][a-zA-Z0-9._]*)\s*\(</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.parameter.r</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.assignment.r</string>
</dict>
</dict>
<key>match</key>
<string>([a-zA-Z._][a-zA-Z0-9._]*)\s*(=)(?=[^=])</string>
</dict>
<dict>
<key>match</key>
<string>\b([a-zA-Z._][a-zA-Z0-9._]*)\b</string>
<key>name</key>
<string>variable.other.r</string>
</dict>
</array>
<key>scopeName</key>
<string>source.r</string>
<key>uuid</key>
<string>B2E6B78D-6E70-11D9-A369-000D93B3A10E</string>
</dict>
</plist>