rebol.vim (7167B)
1 " Vim syntax file 2 " Language: Rebol 3 " Maintainer: Mike Williams <mrw@eandem.co.uk> 4 " Filenames: *.r 5 " Last Change: 27th June 2002 6 " URL: http://www.eandem.co.uk/mrw/vim 7 " 8 9 " quit when a syntax file was already loaded 10 if exists("b:current_syntax") 11 finish 12 endif 13 14 " Rebol is case insensitive 15 syn case ignore 16 17 " As per current users documentation 18 setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~ 19 20 " Yer TODO highlighter 21 syn keyword rebolTodo contained TODO 22 23 " Comments 24 syn match rebolComment ";.*$" contains=rebolTodo 25 26 " Words 27 syn match rebolWord "\a\k*" 28 syn match rebolWordPath "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1 29 30 " Booleans 31 syn keyword rebolBoolean true false on off yes no 32 33 " Values 34 " Integers 35 syn match rebolInteger "\<[+-]\=\d\+\('\d*\)*\>" 36 " Decimals 37 syn match rebolDecimal "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\=" 38 syn match rebolDecimal "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\=" 39 " Time 40 syn match rebolTime "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>" 41 syn match rebolTime "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>" 42 " Dates 43 " DD-MMM-YY & YYYY format 44 syn match rebolDate "\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>" 45 " DD-month-YY & YYYY format 46 syn match rebolDate "\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>" 47 " DD-MM-YY & YY format 48 syn match rebolDate "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>" 49 " YYYY-MM-YY format 50 syn match rebolDate "\d\{4}-\d\{1,2}-\d\{1,2}\>" 51 " DD.MM.YYYY format 52 syn match rebolDate "\d\{1,2}\.\d\{1,2}\.\d\{4}\>" 53 " Money 54 syn match rebolMoney "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\=" 55 " Strings 56 syn region rebolString oneline start=+"+ skip=+^"+ end=+"+ contains=rebolSpecialCharacter 57 syn region rebolString start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=rebolSpecialCharacter 58 " Binary 59 syn region rebolBinary start=+\d*#{+ end=+}+ contains=rebolComment 60 " Email 61 syn match rebolEmail "\<\k\+@\(\k\+\.\)*\k\+\>" 62 " File 63 syn match rebolFile "%\(\k\+/\)*\k\+[/]\=" contains=rebolSpecialCharacter 64 syn region rebolFile oneline start=+%"+ end=+"+ contains=rebolSpecialCharacter 65 " URLs 66 syn match rebolURL "http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*" 67 syn match rebolURL "file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+" 68 syn match rebolURL "ftp://\(\k\+:\k\+@\)\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+" 69 syn match rebolURL "mailto:\k\+\(\.\k\+\)*@\k\+\(\.\k\+\)*" 70 " Issues 71 syn match rebolIssue "#\(\d\+-\)*\d\+" 72 " Tuples 73 syn match rebolTuple "\(\d\+\.\)\{2,}" 74 75 " Characters 76 syn match rebolSpecialCharacter contained "\^[^[:space:][]" 77 syn match rebolSpecialCharacter contained "%\d\+" 78 79 80 " Operators 81 " Math operators 82 syn match rebolMathOperator "\(\*\{1,2}\|+\|-\|/\{1,2}\)" 83 syn keyword rebolMathFunction abs absolute add arccosine arcsine arctangent cosine 84 syn keyword rebolMathFunction divide exp log-10 log-2 log-e max maximum min 85 syn keyword rebolMathFunction minimum multiply negate power random remainder sine 86 syn keyword rebolMathFunction square-root subtract tangent 87 " Binary operators 88 syn keyword rebolBinaryOperator complement and or xor ~ 89 " Logic operators 90 syn match rebolLogicOperator "[<>=]=\=" 91 syn match rebolLogicOperator "<>" 92 syn keyword rebolLogicOperator not 93 syn keyword rebolLogicFunction all any 94 syn keyword rebolLogicFunction head? tail? 95 syn keyword rebolLogicFunction negative? positive? zero? even? odd? 96 syn keyword rebolLogicFunction binary? block? char? date? decimal? email? empty? 97 syn keyword rebolLogicFunction file? found? function? integer? issue? logic? money? 98 syn keyword rebolLogicFunction native? none? object? paren? path? port? series? 99 syn keyword rebolLogicFunction string? time? tuple? url? word? 100 syn keyword rebolLogicFunction exists? input? same? value? 101 102 " Datatypes 103 syn keyword rebolType binary! block! char! date! decimal! email! file! 104 syn keyword rebolType function! integer! issue! logic! money! native! 105 syn keyword rebolType none! object! paren! path! port! string! time! 106 syn keyword rebolType tuple! url! word! 107 syn keyword rebolTypeFunction type? 108 109 " Control statements 110 syn keyword rebolStatement break catch exit halt reduce return shield 111 syn keyword rebolConditional if else 112 syn keyword rebolRepeat for forall foreach forskip loop repeat while until do 113 114 " Series statements 115 syn keyword rebolStatement change clear copy fifth find first format fourth free 116 syn keyword rebolStatement func function head insert last match next parse past 117 syn keyword rebolStatement pick remove second select skip sort tail third trim length? 118 119 " Context 120 syn keyword rebolStatement alias bind use 121 122 " Object 123 syn keyword rebolStatement import make make-object rebol info? 124 125 " I/O statements 126 syn keyword rebolStatement delete echo form format import input load mold prin 127 syn keyword rebolStatement print probe read save secure send write 128 syn keyword rebolOperator size? modified? 129 130 " Debug statement 131 syn keyword rebolStatement help probe trace 132 133 " Misc statements 134 syn keyword rebolStatement func function free 135 136 " Constants 137 syn keyword rebolConstant none 138 139 140 " Define the default highlighting. 141 " Only when an item doesn't have highlighting yet 142 143 hi def link rebolTodo Todo 144 145 hi def link rebolStatement Statement 146 hi def link rebolLabel Label 147 hi def link rebolConditional Conditional 148 hi def link rebolRepeat Repeat 149 150 hi def link rebolOperator Operator 151 hi def link rebolLogicOperator rebolOperator 152 hi def link rebolLogicFunction rebolLogicOperator 153 hi def link rebolMathOperator rebolOperator 154 hi def link rebolMathFunction rebolMathOperator 155 hi def link rebolBinaryOperator rebolOperator 156 hi def link rebolBinaryFunction rebolBinaryOperator 157 158 hi def link rebolType Type 159 hi def link rebolTypeFunction rebolOperator 160 161 hi def link rebolWord Identifier 162 hi def link rebolWordPath rebolWord 163 hi def link rebolFunction Function 164 165 hi def link rebolCharacter Character 166 hi def link rebolSpecialCharacter SpecialChar 167 hi def link rebolString String 168 169 hi def link rebolNumber Number 170 hi def link rebolInteger rebolNumber 171 hi def link rebolDecimal rebolNumber 172 hi def link rebolTime rebolNumber 173 hi def link rebolDate rebolNumber 174 hi def link rebolMoney rebolNumber 175 hi def link rebolBinary rebolNumber 176 hi def link rebolEmail rebolString 177 hi def link rebolFile rebolString 178 hi def link rebolURL rebolString 179 hi def link rebolIssue rebolNumber 180 hi def link rebolTuple rebolNumber 181 hi def link rebolFloat Float 182 hi def link rebolBoolean Boolean 183 184 hi def link rebolConstant Constant 185 186 hi def link rebolComment Comment 187 188 hi def link rebolError Error 189 190 191 if exists("my_rebol_file") 192 if file_readable(expand(my_rebol_file)) 193 execute "source " . my_rebol_file 194 endif 195 endif 196 197 let b:current_syntax = "rebol" 198 199 " vim: ts=8