Someone asked, so I tracked down the KATE highlighter.

I've attached rebol.vim - ships with vim 7.1 (could perhaps use a duff over) - 
and rebol.xml for KATE.  Place this 
in /usr/share/apps/katepart/syntax/rebol.xml  (Debian 4, KDE 3.5.9)  Also 
comes with a highlight tester.  This file could definitely use a good 
duffing.

Note;  I snagged this off some KDE mail archive a long time ago ...  I may 
well be in breach of the author's copyrights for this and if so I apologize.  
It is licensed LGPL, but the file was never published outside the mailing as 
far as I know; unaccepted by the KATE team back in the day for failing some 
XML conformance test.  I'm assuming it's ok to copy as that seemed to be 
Roland's intent.

Roland Hadinger did the posting ... which I found linked here, but this isn't 
the archive where I originally found it:

http://markmail.org/message/z6cvjfjmv6n47o4i#query:
+page:1+mid:owsauba3h4fpi23k+state:results

Personally I don't care about perfection with highlighters.  This works for 
me, and I tote it around from system to system.  KATE features outweigh the 
downside of some of the problems (and slash path confusion is one major 
drawback ... but again, I rarely care).  Running an editor with rebol in an 
embedded konsole terminal session is just cool.  KATE will send cd commands 
to the terminal to change to the directory of the current source file, pretty 
neat.

Cheers,
Brian
 
On September 13, 2008 02:30:54 pm Brian Tiffin wrote:
> If anyone likes KATE; there is an xml you can snag off of an email archive
> for a REBOL syntax highlighter.  I'll track it down if anyone likes.
> ... 


-- Binary/unsupported file stripped by Ecartis --
-- Type: text/xml
-- File: rebol.xml


-- Attached file included as plaintext by Ecartis --
-- File: highlight.r

REBOL [
    Title:   "Test file for REBOL syntax hilighting"
    Author:  "Roland Hadinger ([EMAIL PROTECTED])"
    Date:    "2005-06-09"
    License: "LGPL"
]

ctx-test: context [

    do system/options/home/local/include/split-lines.r
    
    tuples: [
        datatype       255.107.30  bold   normal 
        char           141.131.255 normal normal 
        decimal        126.168.255 normal normal 
        integer        136.154.255 normal normal
        ...
    ]

    chars: [
        "amp"  #"&"     none
        "quot" #"^""    none
        "lt"   #"<"     none
        "gt"   #">"     none
        "nbsp" #"^(A0)" none
        ...
    ]

    strings: [
        "euro"    none      "sbquo"   none      "bdquo"   "hellip"
        "dagger"  "Dagger"  none      "permil"  none      "lsaquo"
        none      none      none      none      none      "lsquo"
        "rsquo"   "ldquo"   "rdquo"   "bull"    "ndash"   "mdash"
        ...
    ]

    pairs: [
        -0087x00419 -0095x00391 -0090x00375 -0068x00375 -0058x00364 -0015x00372 
        00002x00408 00031x00421 00031x00441 00065x00431 00133x00460 00195x00427 
        00225x00446 00225x00480 00226x00517 00202x00544 00111x00546 00095x00574 
        -0016x00464 -0011x00436 -0091x00433 none
        ...
    ]
   
    dates: [
        05-06-07                   none
        2005/04/19/16:56:42+02:00  none 
        2005-September-19          none
        3171-Confusion-14          none
        99999-99-99/99:99:99+99:99 none
    ]
    
    integers: [
        1'000'000'000   none
        1000000000      none
        +1'000'000'000  none
        +1000000000     none
        -1'000'000'000  none
        -1000000000     none
    ]
    
    decimals: [
        0. none
        .0 none
        1.0 none
        2.718281828459045235428168107993940338929 none
        3.141'592'653'589'793'238'462'643'383'279 none
        1'000'000'000.0 none
        1.0e100 none
        1.0E100 none
        1.0e+100 none
        1.0e-100 none
    ]
    
    files: [
        %build/index.r             none
        %demos/index.r             none
        %docs/index.r              none
        %sync/index.r              none
        %work/index.r              none
        %"/C/Program Files/Rebol/" none
    ]
    
    binaries: [
        #{
        FF000000CE444444004444440044444400444444CE444444FF000000CE444444
        0044444400B3B3B300B3B3B300B3B3B300444444CE4444440044444400B3B3B3
        00B3B3B300B3B3B300B3B3B300B3B3B3004444440044444400B3B3B300B3B3B3
        00D2D2D200E1E1E100E1E1E1004444440044444400B3B3B300D2D2D200D2D2D2
        00E1E1E100E1E1E1004444440044444400B3B3B300D2D2D200D2D2D200E1E1E1
        00E1E1E1004444440044444400B3B3B300D2D2D200D2D2D200E1E1E100E1E1E1
        004444440044444400B3B3B300D2D2D200D2D2D200E1E1E100E1E1E100444444
        0044444400B3B3B300D2D2D200D2D2D200D2D2D200E1E1E10044444400444444
        00B3B3B300B3B3B300D2D2D200D2D2D200D2D2D2004444440044444400B3B3B3
        00D2D2D200D2D2D200E1E1E100E1E1E1004444440044444400B3B3B300E1E1E1
        00E1E1E100E9E9E900E1E1E100444444CE4444440044444400E9E9E900E9E9E9
        00E9E9E900444444CE444444FF000000CE444444004444440044444400444444
        CE444444FF000000
        } none

        64#{
        /wAAAM5EREQAREREAERERABERETORERE/wAAAM5EREQAREREALOzswCzs7MAs7Oz
        AERERM5EREQAREREALOzswCzs7MAs7OzALOzswCzs7MAREREAERERACzs7MAs7Oz
        ANLS0gDh4eEA4eHhAERERABEREQAs7OzANLS0gDS0tIA4eHhAOHh4QBEREQARERE
        ALOzswDS0tIA0tLSAOHh4QDh4eEAREREAERERACzs7MA0tLSANLS0gDh4eEA4eHh
        AERERABEREQAs7OzANLS0gDS0tIA4eHhAOHh4QBEREQAREREALOzswDS0tIA0tLS
        ANLS0gDh4eEAREREAERERACzs7MAs7OzANLS0gDS0tIA0tLSAERERABEREQAs7Oz
        ANLS0gDS0tIA4eHhAOHh4QBEREQAREREALOzswDh4eEA4eHhAOnp6QDh4eEARERE
        zkRERABEREQA6enpAOnp6QDp6ekAREREzkRERP8AAADOREREAERERABEREQARERE
        zkRERP8AAAA=
        } none

        2#{
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        0000000000000000000000000000000000000000000000000000000000000000
        } none

    ]

    issue: #1000-00-ABCXYZabcxyz
    
    money: US$2'000'000.00
    
    email: [EMAIL PROTECTED] none
    
    tags:[
        <h1> </h1>
        <img src="example.gif" alt="example" />
        <multiline
        tag> ;; doesn't work
    ]
    
    emit: none
    emit?: false
    
    emit-html-entities: func [data /local str f] [
        str: copy ""
        foreach c either block? data [form reduce data] [data] [
            insert tail str either f: find/skip/case at head char-entities 2 c 
2 [
                rejoin [#"&" pick f -1 ";"]
            ][
                c
            ]
        ]
        emit str
    ]

    to-color: func [tuple /local result][
        result: copy "#"
        repeat n 3 [insert tail result back back tail to-hex pick tuple n]
        result
    ]
   
    feed-on-value: func [
        value
        /local lines
    ][
        any [
            if all [
                preceding-word
                word? :value
                find [func function does has context object!] :value
                not found? find/skip words preceding-word 3
            ][
            
                repend words [preceding-word rejoin ["#line" preceding-pos] 
false] ; hier noch Datei
                preceding-word: none
                preceding-pos: none
            ]
            all [
                preceding-word
                word? :value
                find [make] :value
            ]
            if set-word? :value [attempt [preceding-word: to-word value 
preceding-pos: line-number]]
            if lit-word? :value [attempt [preceding-word: to-word value 
preceding-pos: line-number]]
            if set-path? :value [attempt [preceding-word: to-word last value 
preceding-pos: line-number]]
            (preceding-word: preceding-pos: none)
        ]
    ]

    set 'test-func func [
        text [string!] "Source code text"
        /local str new value blk-rule
    ][
        out: make string! 3 * length? text
        
        clear words
        
        set [value text] load/next/header detab text

        foreach e reduce [false true] [

            emit: func [data] pick [[repend out data] []] emit?: e
            emit {<pre>}
        
            line-number: 1
            
            preceding-word: none
            preceding-pos:  none
            previous-style: none
            
            if emit? [emit-line-number]
            emit-lines copy/part head text text "header" emit?

            parse/all text blk-rule: [ ;PARSE
                some [
                    str:
                    some [" " | tab] new: (if emit? [emit copy/part str new])
                    | newline (emit-new-line)
                    | #";" [thru newline | to end] new: (emit-style none 
copy/part str new)
                    | [#"[" | #"("] (emit-lines copy/part str 1 "op" emit?) 
;blk-rule
                    | [#"]" | #")"] (emit-lines copy/part str 1 "op" emit?)
                    | skip (
                        set [value new] load/next str
                        if not emit? [feed-on-value :value index? str]
                        emit-value :value str new
                    ) :new
                ]
            ]
        ]
        if previous-style [emit {</span>}]
        emit {</span></pre>}

        out
    ]

    set 'color-code-css func [
        /local css
    ][
        css: make string! 10000
        css: append css
{
#content ^{
  border-right:0;
^}
a,pre ^{
  color:#FFFFFF;
  font-family:"Courier New",monospace;
  font-style:normal;
  font-size:7pt;
^}
pre ^{
  font-weight:normal;
  margin:0 0 0 -25px;
  padding:0 0 0 0;
^}
span.line ^{
  color:#555555;
  font-weight:bold;
^}
span.line5 ^{
  color:#FFFFFF;
  font-weight:bold;
^}
}
        foreach [style color font-weight font-style] styles [
            css: repend css [
                {span.} style
                { ^{^/  color:} to-color color
                {;^/  font-style:} font-style
                {;^/  font-weight:} font-weight
                {;^/^}^/}
            ]
        ]
        css
    ]

    set 'site-color-code func [
        file outfile level
        /local str code up-dir
    ][
        either (find/last file %.r) = skip tail file -2 [
            code: color-code read file
        ][
            code: rejoin [{<pre>} read file {</pre>}]
        ]
        up-dir: copy ""
        loop level [append up-dir "../"]

        str: rejoin [
{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>

<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
  <meta name="author" content="Roland Hadinger" />
  <title>errru.net</title>
  <link rel="stylesheet" type="text/css" href="} up-dir {stylesheet.css" />
  <link rel="stylesheet" type="text/css" href="} up-dir {syntax.css" />
</head>
<body>

<div id="pageframe">
  <div id="header">
    <a href="http://www.errru.net/";><img src="} up-dir {images/header.png" 
width="620" height="136" alt="header" /></a>
  </div>
  <div id="content">
    } code {
  </div>
  <div id="footer">
    <img src="} up-dir {images/footer.png" width="620" height="44" alt="footer" 
/>
  </div>
</div>

</body>
</html>
}
        ]
        if any [not exists? outfile str <> read outfile] [
            write outfile str
        ]
    ]
]

;; Lists of all keywords

;; datatypes

action! any-block! any-function! any-string! any-type! any-word! binary! bitset!
block! char! datatype! date! decimal! email! end! error! event! file! function!
get-word! hash! image! integer! issue! library! list! lit-path! lit-word! logic!
money! native! none! number! object! op! pair! paren! path! port! refinement!
routine! series! set-path! set-word! string! struct! symbol! tag! time! tuple!
unset! url! word! 

;; operators

&gt; &gt;= &lt; &lt;&gt; &lt;= * ** + - / // = == =? and or xor 

;; actions

abs absolute add and~ at back change clear complement copy copy* cp divide
eighth fifth find first fourth head insert last make max maximum min minimum
multiply negate next ninth or~ path pick poke power random remainder remove
second select seventh sixth skip sort subtract tail tenth third to trim xor~ 

;; actions?

action? any-block? any-function? any-string? any-type? any-word? binary? bitset?
block? char? datatype? date? decimal? email? empty? equal? error? even? event?
file? function? get-word? greater-or-equal? greater? hash? head? image? index?
integer? issue? length? lesser-or-equal? lesser? library? list? lit-path?
lit-word? logic? money? native? negative? none? not-equal? number? object? odd?
op? pair? paren? path? port? positive? refinement? routine? same? series?
set-path? set-word? strict-equal? strict-not-equal? string? struct? tag? tail?
time? tuple? unset? url? word? zero? 

;; natives

alias all any arccosine arcsine arctangent as-binary as-string bind break browse
call caret-to-offset case catch checksum close comment compose compress
construct cosine debase decloak decompress dehex detab dh-compute-key
dh-generate-key dh-make-key difference disarm do do-browser draw
dsa-generate-key dsa-make-key dsa-make-signature dsa-verify-signature either
else enbase encloak entab exclude exit exp foreach form free get get-env
get-modes halt hide hsv-to-rgb if in intersect launch load local-request-file
log-10 log-2 log-e loop lowercase maximum-of minimum-of mold native new-line not
now offset-to-caret open parse prin print protect query quit read read-io
recycle reduce remove-each repeat return reverse rgb-to-hsv rsa-encrypt
rsa-generate-key rsa-make-key run save secure set set-modes show sine size-text
square-root stats tangent textinfo throw to-hex to-local-file to-rebol-file
trace try union unique unless unprotect unset until update uppercase use wait
while write write-io 

;; natives?

connected? crypt-strength? input? new-line? script? type? value? 

;; functions

? ?? about alert alter append array as-pair ask attempt build-attach-body
build-markup build-tag center-face change-dir charset choose clean-path
clear-face clear-fields confine confirm context cvs-date cvs-version dbug
decode-cgi decode-url deflag-face delete delete-dir desktop dirize dispatch
do-boot do-events do-face do-face-alt do-thru does dump-face dump-obj dump-pane
echo editor emailer extract find-key-face find-window flag-face flash focus for
forall forever forskip func function get-face get-net-info get-style has help
hide-popup hilight-all hilight-text import-email inform input insert-event-func
install join launch-thru layout license link-relative-path list-dir load-image
load-stock load-stock-block load-thru make-dir make-face mod modulo net-error
notify open-events parse-email-addrs parse-header parse-header-date parse-xml
path-thru probe protect-system read-cgi read-net read-thru reform rejoin remold
remove-event-func rename repend replace request request-color request-date
request-dir request-download request-file request-list request-pass request-text
resend reset-face resize-face round save-user scroll-drag scroll-face
scroll-para send set-face set-font set-net set-para set-style set-user-name
show-popup source split-path stylize switch throw-on-error 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-idate to-image to-integer to-issue to-itime to-library
to-list to-lit-path to-lit-word to-logic to-money to-none to-pair to-paren
to-path to-port to-refinement to-set-path to-set-word to-string to-tag to-time
to-tuple to-url to-word unfocus uninstall unlight-text unview upgrade Usage vbug
view what what-dir write-user 

;; functions?

brightness? component? dir? edge-size? exists-thru? exists? flag-face? found?
in-window? info? inside? link-app? link? modified? offset? outside? overlap?
screen-offset? sign? size? span? suffix? viewed? win-offset? within? 

;; vid-facets
[ ;VID
    as-is bevel bold bottom center colors doc edge effect effects feel font
    font-color font-name font-size frame help ibevel italic keycode left middle
    no-wrap of para plain rate right shadow texts top underline user-data with 
wrap 
]    
    ;; vid-styles
[ ;VID  
    ANIM AREA ARROW BACKDROP BACKTILE BANNER BAR BASE-TEXT blank-face BODY BOX 
BTN
    BTN-CANCEL BTN-ENTER BTN-HELP BUTTON CHECK CHECK-LINE CHECK-MARK CHOICE CODE
    DROP-DOWN face FIELD H1 H2 H3 H4 H5 ICON IMAGE INFO KEY LAB LABEL LBL LED 
LIST
    LOGO-BAR PANEL PROGRESS RADIO RADIO-LINE ROTARY SCROLLER SENSOR SLIDER TEXT
    TEXT-LIST TITLE TOG TOGGLE TT TXT VH1 VH2 VH3 VH4 VLAB VTEXT 
]    
    ;; vid-words
[ ;VID   
    across at backcolor backeffect below do guide indent origin pad return size
    space style styles tab tabs 
]    
    ;; parse-words
[ ;PARSE   
    any break copy end none opt set skip some thru to | 
]    
    ;; draw-words
[ ;DRAW   
    anti-alias arc arrow bevel-join bilinear box butt-cap circle clip conic 
curve
    diamond ellipse even-odd fill-pen fill-rule font gamma image image-filter
    invert-matrix line line-cap line-join line-pattern line-width linear matrix
    miter-join miter-join-revert nearest non-zero pen polygon pop push radial
    reset-matrix rotate round-cap round-join scale shape skew spline 
sqrt-xy-axis
    square-cap text transform translate triangle xy-axis 
]    
    ;; shape-words
[ ;SHAPE   
    arc curv curve hline line move qcurv qcurve vline 
]    
    ;; effect-words
[ ;EFFECT   
    add alphamul arrow aspect blur colorize contrast crop cross difference draw
    emboss extend fit flip gradcol gradient gradmul grayscale grid hsv invert 
key
    luma merge mix multiply oval reflect rotate sharpen tile tile-view tint 
]
;; integers

zero 

;; decimals

pi 

;; strings

crlf font-fixed font-sans-serif font-serif 

;; chars

backslash backspace bs cr escape lf newline newpage null slash tab 

;; objects

blank-face ctx-access ctx-emailer ctx-prefs ctx-text dtw-skin error-object face
header-rules mail-list-rules net-utils REBOL req-dir req-file req-funcs
Root-Protocol sound svv svvc svvf System user-prefs xml-language 

;; logics

alive? false net-watch no off on rebol-command? rebol-encap? rebol-link?
rebol-pro? rebol-view? true view? yes 

;; tuples

aqua bar-color base-color beige black blue brick brown button-color coal coffee
crimson cyan forest gold gray green ivory khaki leaf linen magenta main-color
maroon mint navy oldrab olive orange over-color papaya pewter pink purple reblue
rebolor red sienna silver sky snow tan teal violet water wheat white yellow 



-- Attached file included as plaintext by Ecartis --
-- File: rebol.vim

" Vim syntax file
" Language:     Rebol
" Maintainer:   Mike Williams <[EMAIL PROTECTED]>
" Filenames:    *.r
" Last Change:  27th June 2002
" URL:          http://www.eandem.co.uk/mrw/vim
"

" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

" Rebol is case insensitive
syn case ignore

" As per current users documentation
if version < 600
  set isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
else
  setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
endif

" Yer TODO highlighter
syn keyword     rebolTodo       contained TODO

" Comments
syn match       rebolComment    ";.*$" contains=rebolTodo

" Words
syn match       rebolWord       "\a\k*"
syn match       rebolWordPath   "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1

" Booleans
syn keyword     rebolBoolean    true false on off yes no

" Values
" Integers
syn match       rebolInteger    "\<[+-]\=\d\+\('\d*\)*\>"
" Decimals
syn match       rebolDecimal    
"[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\="
syn match       rebolDecimal    "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\="
" Time
syn match       rebolTime       
"[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>"
syn match       rebolTime       "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>"
" Dates
" DD-MMM-YY & YYYY format
syn match       rebolDate       
"\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>"
" DD-month-YY & YYYY format
syn match       rebolDate       
"\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>"
" DD-MM-YY & YY format
syn match       rebolDate       "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>"
" YYYY-MM-YY format
syn match       rebolDate       "\d\{4}-\d\{1,2}-\d\{1,2}\>"
" DD.MM.YYYY format
syn match       rebolDate       "\d\{1,2}\.\d\{1,2}\.\d\{4}\>"
" Money
syn match       rebolMoney      "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\="
" Strings
syn region      rebolString     oneline start=+"+ skip=+^"+ end=+"+ 
contains=rebolSpecialCharacter
syn region      rebolString     start=+[^#]{+ end=+}+ skip=+{[^}]*}+ 
contains=rebolSpecialCharacter
" Binary
syn region      rebolBinary     start=+\d*#{+ end=+}+ contains=rebolComment
" Email
syn match       rebolEmail      "\<[EMAIL PROTECTED](\k\+\.\)*\k\+\>"
" File
syn match       rebolFile       "%\(\k\+/\)*\k\+[/]\=" 
contains=rebolSpecialCharacter
syn region      rebolFile       oneline start=+%"+ end=+"+ 
contains=rebolSpecialCharacter
" URLs
syn match       rebolURL        
"http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*"
syn match       rebolURL        "file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+"
syn match       rebolURL        "ftp://\(\k\+:[EMAIL 
PROTECTED])\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+"
syn match       rebolURL        "mailto:\k\+\(\.\k\+\)[EMAIL 
PROTECTED](\.\k\+\)*"
" Issues
syn match       rebolIssue      "#\(\d\+-\)*\d\+"
" Tuples
syn match       rebolTuple      "\(\d\+\.\)\{2,}"

" Characters
syn match       rebolSpecialCharacter contained "\^[^[:space:][]"
syn match       rebolSpecialCharacter contained "%\d\+"


" Operators
" Math operators
syn match       rebolMathOperator  "\(\*\{1,2}\|+\|-\|/\{1,2}\)"
syn keyword     rebolMathFunction  abs absolute add arccosine arcsine 
arctangent cosine
syn keyword     rebolMathFunction  divide exp log-10 log-2 log-e max maximum min
syn keyword     rebolMathFunction  minimum multiply negate power random 
remainder sine
syn keyword     rebolMathFunction  square-root subtract tangent
" Binary operators
syn keyword     rebolBinaryOperator complement and or xor ~
" Logic operators
syn match       rebolLogicOperator "[<>=]=\="
syn match       rebolLogicOperator "<>"
syn keyword     rebolLogicOperator not
syn keyword     rebolLogicFunction all any
syn keyword     rebolLogicFunction head? tail?
syn keyword     rebolLogicFunction negative? positive? zero? even? odd?
syn keyword     rebolLogicFunction binary? block? char? date? decimal? email? 
empty?
syn keyword     rebolLogicFunction file? found? function? integer? issue? 
logic? money?
syn keyword     rebolLogicFunction native? none? object? paren? path? port? 
series?
syn keyword     rebolLogicFunction string? time? tuple? url? word?
syn keyword     rebolLogicFunction exists? input? same? value?

" Datatypes
syn keyword     rebolType       binary! block! char! date! decimal! email! file!
syn keyword     rebolType       function! integer! issue! logic! money! native!
syn keyword     rebolType       none! object! paren! path! port! string! time!
syn keyword     rebolType       tuple! url! word!
syn keyword     rebolTypeFunction type?

" Control statements
syn keyword     rebolStatement  break catch exit halt reduce return shield
syn keyword     rebolConditional if else
syn keyword     rebolRepeat     for forall foreach forskip loop repeat while 
until do

" Series statements
syn keyword     rebolStatement  change clear copy fifth find first format 
fourth free
syn keyword     rebolStatement  func function head insert last match next parse 
past
syn keyword     rebolStatement  pick remove second select skip sort tail third 
trim length?

" Context
syn keyword     rebolStatement  alias bind use

" Object
syn keyword     rebolStatement  import make make-object rebol info?

" I/O statements
syn keyword     rebolStatement  delete echo form format import input load mold 
prin
syn keyword     rebolStatement  print probe read save secure send write
syn keyword     rebolOperator   size? modified?

" Debug statement
syn keyword     rebolStatement  help probe trace

" Misc statements
syn keyword     rebolStatement  func function free

" Constants
syn keyword     rebolConstant   none


" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_rebol_syntax_inits")
  if version < 508
    let did_rebol_syntax_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

  HiLink rebolTodo     Todo

  HiLink rebolStatement Statement
  HiLink rebolLabel     Label
  HiLink rebolConditional Conditional
  HiLink rebolRepeat    Repeat

  HiLink rebolOperator  Operator
  HiLink rebolLogicOperator rebolOperator
  HiLink rebolLogicFunction rebolLogicOperator
  HiLink rebolMathOperator rebolOperator
  HiLink rebolMathFunction rebolMathOperator
  HiLink rebolBinaryOperator rebolOperator
  HiLink rebolBinaryFunction rebolBinaryOperator

  HiLink rebolType     Type
  HiLink rebolTypeFunction rebolOperator

  HiLink rebolWord     Identifier
  HiLink rebolWordPath rebolWord
  HiLink rebolFunction  Function

  HiLink rebolCharacter Character
  HiLink rebolSpecialCharacter SpecialChar
  HiLink rebolString    String

  HiLink rebolNumber   Number
  HiLink rebolInteger  rebolNumber
  HiLink rebolDecimal  rebolNumber
  HiLink rebolTime     rebolNumber
  HiLink rebolDate     rebolNumber
  HiLink rebolMoney    rebolNumber
  HiLink rebolBinary   rebolNumber
  HiLink rebolEmail    rebolString
  HiLink rebolFile     rebolString
  HiLink rebolURL      rebolString
  HiLink rebolIssue    rebolNumber
  HiLink rebolTuple    rebolNumber
  HiLink rebolFloat    Float
  HiLink rebolBoolean  Boolean

  HiLink rebolConstant Constant

  HiLink rebolComment   Comment

  HiLink rebolError     Error

  delcommand HiLink
endif

if exists("my_rebol_file")
  if file_readable(expand(my_rebol_file))
    execute "source " . my_rebol_file
  endif
endif

let b:current_syntax = "rebol"

" vim: ts=8


-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to