Skip to content

Instantly share code, notes, and snippets.

@x8x
Created March 10, 2018 00:29
Show Gist options
  • Save x8x/99be6e9858afcb459b6e470aceb2e2f1 to your computer and use it in GitHub Desktop.
Save x8x/99be6e9858afcb459b6e470aceb2e2f1 to your computer and use it in GitHub Desktop.
TM-rebol-syntax
<?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>fileTypes</key>
<array>
<string>r</string>
</array>
<key>foldingStartMarker</key>
<string>\[{?(\s*;.*)*$</string>
<key>foldingStopMarker</key>
<string>\](\s*;.*)*$</string>
<key>keyEquivalent</key>
<string>@</string>
<key>name</key>
<string>Rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^#!/.*(-cs?|--cgi)$</string>
<key>name</key>
<string>comment.shebang</string>
</dict>
<dict>
<key>match</key>
<string>;.*$</string>
<key>name</key>
<string>comment.rebol</string>
</dict>
<dict>
<key>begin</key>
<string>comment\s*\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>comment.multiline.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested-comment-multiline</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>#\[(?:(\w+!)|(true|false|none))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>native.datatype.rebol</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>logic.rebol</string>
</dict>
</dict>
<key>end</key>
<string>]</string>
<key>name</key>
<string>series.literal.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$self</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>#"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>character.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\^.</string>
<key>name</key>
<string>character.escaped.rebol</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>#\[(true|false|none)]</string>
<key>name</key>
<string>logic.rebol</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\^.</string>
<key>name</key>
<string>string.escaped.rebol</string>
</dict>
<dict>
<key>match</key>
<string>&amp;([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);</string>
<key>name</key>
<string>constant.character.entity.html</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.multiline.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\^.</string>
<key>name</key>
<string>string.escaped.rebol</string>
</dict>
<dict>
<key>match</key>
<string>&amp;([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);</string>
<key>name</key>
<string>constant.character.entity.html</string>
</dict>
<dict>
<key>include</key>
<string>#nested-string-multiline</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>&lt;(?:/|%\ )?(?:([-_a-zA-Z0-9]+):)?([-_a-zA-Z0-9:]+)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.other.namespace.xml</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.tag.xml</string>
</dict>
</dict>
<key>end</key>
<string>(?:/|\ %)?&gt;</string>
<key>name</key>
<string>entity.tag.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#tagStuff</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>%"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.file.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>%[A-Fa-f0-9]{2}</string>
<key>name</key>
<string>constant.character.hex.rebol</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>%[^\s\n\[\]\(\)]*</string>
<key>name</key>
<string>string.file.rebol</string>
</dict>
<dict>
<key>match</key>
<string>[A-Za-z][\w]{1,7}:(/{0,3}[^\s\n\[\]\(\)]+|//)</string>
<key>name</key>
<string>string.url.rebol</string>
</dict>
<dict>
<key>match</key>
<string>[^\s\n:/\[\]\(\)]+@[^\s\n:/\[\]\(\)]+</string>
<key>name</key>
<string>string.email.rebol</string>
</dict>
<dict>
<key>begin</key>
<string>2#\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>binary.base2.rebol</string>
</dict>
<dict>
<key>begin</key>
<string>64#\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>binary.base64.rebol</string>
</dict>
<dict>
<key>begin</key>
<string>(16)?#\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>binary.base16.rebol</string>
</dict>
<dict>
<key>match</key>
<string>#[^\s\n\[\]\(\)]*</string>
<key>name</key>
<string>string.issue.rebol</string>
</dict>
<dict>
<key>match</key>
<string>\d{1,2}\-([A-Za-z]{3}|January|Febuary|March|April|May|June|July|August|September|October|November|December)\-\d{4}</string>
<key>name</key>
<string>date.rebol</string>
</dict>
<dict>
<key>match</key>
<string>([-+]?[:]\d{1,2}([aApP][mM])?)|([-+]?[:]\d{1,2}[.]\d{0,9})|([-+]?\d{1,2}[:]\d{1,2}([aApP][mM])?)|([-+]?\d{1,2}[:]\d{1,2}[.]\d{0,9})|([-+]?\d{1,2}[:]\d{1,2}[:]\d{1,2}([.]\d{0,9})?([aApP][mM])?)(?!\w)</string>
<key>name</key>
<string>time.rebol</string>
</dict>
<dict>
<key>match</key>
<string>([[:digit:]]{0,3}[.][[:digit:]]{0,3}[.][[:digit:]]{0,3}([.][[:digit:]]{0,3}){0,7})</string>
<key>name</key>
<string>tuple.rebol</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\w|\.)([-+]?((\d+\.?\d*)|(\.\d+))((e|E)(\+|-)?\d+)?)(?!\w)</string>
<key>name</key>
<string>number.rebol</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\w)[-+]?[[:digit:]]+[x][[:digit:]]+</string>
<key>name</key>
<string>pair.rebol</string>
</dict>
<dict>
<key>match</key>
<string>[A-Za-z=_][A-Za-z0-9=\-\!\?\_\.\*]*:</string>
<key>name</key>
<string>word.set.rebol</string>
</dict>
<dict>
<key>match</key>
<string>:[A-Za-z=_][A-Za-z0-9=\-\!\?\_\.\*]*</string>
<key>name</key>
<string>word.get.rebol</string>
</dict>
<dict>
<key>match</key>
<string>'[A-Za-z=_][A-Za-z0-9=\-\!\?\_\.\*]*</string>
<key>name</key>
<string>word.lit.rebol</string>
</dict>
<dict>
<key>match</key>
<string>\b(end\!|unset\!|error\!|datatype\!|context\!|native\!|action\!|routine\!|op\!|function\!|object\!|struct\!|library\!|port\!|any-type\!|any-word\!|any-function\!|number\!|series\!|any-string\!|any-block\!|symbol\!|word\!|set-word\!|get-word\!|lit-word\!|refinement\!|none\!|logic\!|integer\!|decimal\!|money\!|time\!|date\!|char\!|pair\!|event\!|tuple\!|bitset\!|string\!|issue\!|binary\!|file\!|email\!|url\!|image\!|tag\!|block\!|paren\!|path\!|set-path\!|lit-path\!|hash\!|list\!)(?!\w)</string>
<key>name</key>
<string>native.datatype.rebol</string>
</dict>
<dict>
<key>match</key>
<string>REBOL</string>
<key>name</key>
<string>native.header.rebol</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;!\w|-|/|\.)(about|abs|absolute|action\?|add|alert|alias|all|alter|and|and~|any|any-block\?|any-function\?|any-string\?|any-type\?|any-word\?|append|arccosine|arcsine|arctangent|array|as-binary|as-pair|as-string|ask|at|attempt|back|binary\?|bind|bind\?|bitset\?|block\?|break|brightness\?|browse|build-attach-body|build-markup|build-tag|call|caret-to-offset|case|catch|center-face|change|change-dir|char\?|charset|checksum|choose|clean-path|clear|clear-face|clear-fields|close|comment|complement|component\?|compose|compress|confine|confirm|connected\?|construct|context|copy|copy*|cosine|cp|crypt-strength\?|cvs-date|cvs-version|datatype\?|date\?|dbug|debase|decimal\?|decloak|decode-cgi|decode-url|decompress|deflag-face|dehex|delete|delete-dir|desktop|detab|dh-compute-key|dh-generate-key|dh-make-key|difference|dir\?|dirize|disarm|dispatch|divide|do|do-boot|do-browser|do-events|do-face|do-face-alt|do-thru|does|draw|dsa-generate-key|dsa-make-key|dsa-make-signature|dsa-verify-signature|dump-face|dump-obj|dump-pane|echo|edge-size\?|editor|eighth|either|else|email\?|emailer|empty\?|enbase|encloak|entab|equal\?|error\?|even\?|event\?|exclude|exists-thru\?|exists\?|exit|exp|extract|fifth|file\?|find|find-key-face|find-window|first|flag-face|flag-face\?|flash|focus|for|forall|foreach|forever|form|forskip|found\?|fourth|free|func|function|function\?|get|get-env|get-face|get-modes|get-net-info|get-style|get-word\?|greater-or-equal\?|greater\?|halt|has|hash\?|head|head\?|help|hide|hide-popup|hilight-all|hilight-text|hsv-to-rgb|if|image\?|import-email|in|in-window\?|index\?|info\?|inform|input|input\?|insert|insert-event-func|inside\?|install|integer\?|intersect|issue\?|join|last|launch|launch-thru|layout|length\?|lesser-or-equal\?|lesser\?|library\?|license|link-app\?|link-relative-path|link\?|list-dir|list\?|lit-path\?|lit-word\?|load|load-image|load-stock|load-stock-block|load-thru|local-request-file|log-10|log-2|log-e|logic\?|loop|lowercase|make|make-dir|make-face|max|maximum|maximum-of|min|minimum|minimum-of|mod|modified\?|modulo|mold|money\?|multiply|native|native\?|negate|negative\?|net-error|new-line|new-line\?|next|ninth|none\?|not|not-equal\?|notify|now|number\?|object\?|odd\?|offset-to-caret|offset\?|op\?|open|open-events|or|or~|outside\?|overlap\?|pair\?|paren\?|parse|parse-email-addrs|parse-header|parse-header-date|parse-xml|path|path-thru|path\?|pick|poke|port\?|positive\?|power|prin|print|probe|protect|protect-system|q|query|quit|random|read|read-cgi|read-io|read-net|read-thru|recycle|reduce|refinement\?|reform|rejoin|remainder|remold|remove|remove-each|remove-event-func|rename|repeat|repend|replace|request|request-color|request-date|request-dir|request-download|request-file|request-list|request-pass|request-text|resend|reset-face|resize-face|return|reverse|rgb-to-hsv|round|routine\?|rsa-encrypt|rsa-generate-key|rsa-make-key|run|same\?|save|save-user|screen-offset\?|script\?|scroll-drag|scroll-face|scroll-para|second|secure|select|send|series\?|set|set-face|set-font|set-modes|set-net|set-para|set-path\?|set-style|set-user-name|set-word\?|seventh|show|show-popup|sign\?|sine|sixth|size-text|size\?|skip|sort|source|span\?|split-path|square-root|stats|strict-equal\?|strict-not-equal\?|string\?|struct\?|stylize|subtract|suffix\?|switch|system|tag\?|tail|tail\?|tangent|tenth|textinfo|third|throw|throw-on-error|time\?|to|to-binary|to-bitset|to-block|to-char|to-datatype|to-date|to-decimal|to-email|to-error|to-file|to-get-word|to-hash|to-hex|to-idate|to-image|to-integer|to-issue|to-itime|to-library|to-list|to-lit-path|to-lit-word|to-local-file|to-logic|to-money|to-none|to-pair|to-paren|to-path|to-port|to-rebol-file|to-refinement|to-set-path|to-set-word|to-string|to-tag|to-time|to-tuple|to-url|to-word|trace|trim|try|tuple\?|type\?|unfocus|uninstall|union|unique|unless|unlight-text|unprotect|unset|unset\?|until|unview|update|upgrade|uppercase|url\?|Usage|use|value\?|vbug|view|viewed\?|wait|what|what-dir|while|win-offset\?|within\?|word\?|write|write-io|write-user|xor|xor~|zero\?|/local|thru|end|ifs)(?!(\w|-|\.))|(^|\s)(\+|-|\*\*?|//?|=|&gt;=?|&lt;(=|&gt;)?)($|\s)</string>
<key>name</key>
<string>native.rebol</string>
</dict>
<dict>
<key>match</key>
<string>\b(true|on|yes|false|off|no|none)(?!(\w|-|/|\.))</string>
<key>name</key>
<string>logic.rebol</string>
</dict>
<dict>
<key>match</key>
<string>/[A-Za-z=_][A-Za-z0-9=\-\!\?\_\.\*]*</string>
<key>name</key>
<string>word.refine.rebol</string>
</dict>
<dict>
<key>match</key>
<string>[A-Za-z=_][A-Za-z0-9=_\-\!\?\.\*]*</string>
<key>name</key>
<string>word.rebol</string>
</dict>
<dict>
<key>match</key>
<string>(&lt;[^&lt;&gt;]+&gt;)|(\[|\]|\(|\))</string>
<key>name</key>
<string>tag.rebol</string>
</dict>
<dict>
<key>match</key>
<string>/</string>
<key>name</key>
<string>slash.tag.rebol</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>doublequotedString</key>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double.xml</string>
</dict>
<key>nested-comment-multiline</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>comment.multiline.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#nested-comment-multiline</string>
</dict>
</array>
</dict>
<key>nested-string-multiline</key>
<dict>
<key>begin</key>
<string>\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>string.multiline.rebol</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\^.</string>
<key>name</key>
<string>string.escaped.rebol</string>
</dict>
<dict>
<key>match</key>
<string>&amp;([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);</string>
<key>name</key>
<string>constant.character.entity.html</string>
</dict>
<dict>
<key>include</key>
<string>#nested-string-multiline</string>
</dict>
</array>
</dict>
<key>singlequotedString</key>
<dict>
<key>begin</key>
<string>'</string>
<key>end</key>
<string>'</string>
<key>name</key>
<string>string.quoted.single.xml</string>
</dict>
<key>tagStuff</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.other.namespace.xml</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.other.attribute-name.xml</string>
</dict>
</dict>
<key>match</key>
<string> (?:([-_a-zA-Z0-9]+):)?([_a-zA-Z-]+)</string>
</dict>
<dict>
<key>include</key>
<string>#doublequotedString</string>
</dict>
<dict>
<key>include</key>
<string>#singlequotedString</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.rebol</string>
<key>uuid</key>
<string>5E7960E3-61EC-445D-BC90-94C8039D5614</string>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment