neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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