1" Vim syntax file
2" Language:             Relax NG compact syntax
3" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
4" Latest Revision:      2007-06-17
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13setlocal iskeyword+=-,.
14
15syn keyword rncTodo         contained TODO FIXME XXX NOTE
16
17syn region  rncComment      display oneline start='^\s*#' end='$'
18                            \ contains=rncTodo,@Spell
19
20syn match   rncOperator     display '[-|,&+?*~]'
21syn match   rncOperator     display '\%(|&\)\=='
22syn match   rncOperator     display '>>'
23
24syn match   rncNamespace    display '\<\k\+:'
25
26syn match   rncQuoted       display '\\\k\+\>'
27
28syn match   rncSpecial      display '\\x{\x\+}'
29
30syn region rncAnnotation    transparent start='\[' end='\]'
31                            \ contains=ALLBUT,rncComment,rncTodo
32
33syn region  rncLiteral      display oneline start=+"+ end=+"+
34                            \ contains=rncSpecial
35syn region  rncLiteral      display oneline start=+'+ end=+'+
36syn region  rncLiteral      display oneline start=+"""+ end=+"""+
37                            \ contains=rncSpecial
38syn region  rncLiteral      display oneline start=+'''+ end=+'''+
39
40syn match   rncDelimiter    display '[{},()]'
41
42syn keyword rncKeyword      datatypes default div empty external grammar
43syn keyword rncKeyword      include inherit list mixed name namespace
44syn keyword rncKeyword      notAllowed parent start string text token
45
46syn match   rncIdentifier   display '\k\+\_s*\%(=\|&=\||=\)\@='
47                            \ nextgroup=rncOperator
48syn keyword rncKeyword      element attribute
49                            \ nextgroup=rncIdName skipwhite skipempty
50syn match   rncIdName       contained '\k\+'
51
52hi def link rncTodo         Todo
53hi def link rncComment      Comment
54hi def link rncOperator     Operator
55hi def link rncNamespace    Identifier
56hi def link rncQuoted       Special
57hi def link rncSpecial      SpecialChar
58hi def link rncAnnotation   Special
59hi def link rncLiteral      String
60hi def link rncDelimiter    Delimiter
61hi def link rncKeyword      Keyword
62hi def link rncIdentifier   Identifier
63hi def link rncIdName       Identifier
64
65let b:current_syntax = "rnc"
66
67let &cpo = s:cpo_save
68unlet s:cpo_save
69