update vim to 7.4
[msysgit.git] / share / vim / vim73 / syntax / fan.vim
blobfc193af062452e9eea12388d55ee3be55ac595b8
1 " Vim syntax file
2 " Language:     Fantom
3 " Maintainer:   Kamil Toman <kamil.toman@gmail.com>
4 " Last Change:  2010 May 27
5 " Based on Java syntax file by Claudio Fleiner <claudio@fleiner.com>
7 " Quit when a syntax file was already loaded
8 if exists("b:current_syntax")
9   finish
10 endif
12 " keyword definitions
13 syn keyword fanExternal         using native
14 syn keyword fanError            goto void serializable volatile
15 syn keyword fanConditional      if else switch
16 syn keyword fanRepeat           do while for foreach each
17 syn keyword fanBoolean          true false
18 syn keyword fanConstant         null
19 syn keyword fanTypedef          this super
20 syn keyword fanOperator         new is isnot as
21 syn keyword fanLongOperator     plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare
22 syn keyword fanType             Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj
23 syn keyword fanStatement        return
24 syn keyword fanStorageClass     static const final
25 syn keyword fanSlot             virtual override once
26 syn keyword fanField            readonly
27 syn keyword fanExceptions       throw try catch finally
28 syn keyword fanAssert           assert
29 syn keyword fanTypedef          class enum mixin
30 syn match   fanFacet            "@[_a-zA-Z][_a-zA-Z0-9_]*\>"
31 syn keyword fanBranch           break continue
32 syn keyword fanScopeDecl        public internal protected private abstract
34 if exists("fan_space_errors")
35   if !exists("fan_no_trail_space_error")
36     syn match   fanSpaceError  "\s\+$"
37   endif
38   if !exists("fan_no_tab_space_error")
39     syn match   fanSpaceError  " \+\t"me=e-1
40   endif
41 endif
43 syn region  fanLabelRegion     transparent matchgroup=fanLabel start="\<case\>" matchgroup=NONE end=":" contains=fanNumber,fanCharacter
44 syn keyword fanLabel            default
45 syn keyword fanLabel            case
47 " The following cluster contains all fan groups except the contained ones
48 syn cluster fanTop add=fanExternal,fanError,fanConditional,fanRepeat,fanBoolean,fanConstant,fanTypedef,fanOperator,fanLongOperator,fanType,fanType,fanStatement,fanStorageClass,fanSlot,fanField,fanExceptions,fanAssert,fanClassDecl,fanTypedef,fanFacet,fanBranch,fanScopeDecl,fanLabelRegion,fanLabel
50 " Comments
51 syn keyword fanTodo              contained TODO FIXME XXX
52 syn region  fanComment           start="/\*"  end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell
53 syn match   fanCommentStar      contained "^\s*\*[^/]"me=e-1
54 syn match   fanCommentStar      contained "^\s*\*$"
55 syn match   fanLineComment      "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell
56 syn match   fanDocComment       "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell
57 hi def link fanCommentString fanString
58 hi def link fanComment2String fanString
59 hi def link fanCommentCharacter fanCharacter
61 syn cluster fanTop add=fanComment,fanLineComment,fanDocComment
63 " match the special comment /**/
64 syn match   fanComment           "/\*\*/"
66 " Strings and constants
67 syn match   fanSpecialError             contained "\\."
68 syn match   fanSpecialCharError         contained "[^']"
69 syn match   fanSpecialChar              contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"
70 syn match   fanStringSubst              contained "\$[A-Za-z][A-Za-z_.]*"
71 syn match   fanStringSubst              contained "\${[^}]*}"
72 syn region  fanString           start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
73 syn region  fanTripleString     start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell
74 syn region  fanDSL              start=+<|+ end=+|>+ 
75 syn match   fanUri               "`[^`]*`"
76 syn match   fanCharacter         "'[^']*'" contains=fanSpecialChar,fanSpecialCharError
77 syn match   fanCharacter         "'\\''" contains=fanSpecialChar
78 syn match   fanCharacter         "'[^\\]'"
79 syn match   fanNumber            "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
80 syn match   fanNumber            "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
81 syn match   fanNumber            "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
82 syn match   fanNumber            "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
84 syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError
86 " The default highlighting.
87 hi def link fanBranch                   Conditional
88 hi def link fanLabel                    Label
89 hi def link fanUserLabel                Label
90 hi def link fanConditional              Conditional
91 hi def link fanRepeat                   Repeat
92 hi def link fanExceptions               Exception
93 hi def link fanAssert                   Statement
94 hi def link fanStorageClass             StorageClass
95 hi def link fanSlot                     StorageClass
96 hi def link fanField                    StorageClass
97 hi def link fanScopeDecl                StorageClass
98 hi def link fanBoolean          Boolean
99 hi def link fanSpecial          Special
100 hi def link fanSpecialError             Error
101 hi def link fanSpecialCharError Error
102 hi def link fanTripleString             String
103 hi def link fanString                   String
104 hi def link fanDSL                      String
105 hi def link fanCharacter                String
106 hi def link fanStringSubst              Identifier
107 hi def link fanUri                      SpecialChar
108 hi def link fanSpecialChar              SpecialChar
109 hi def link fanNumber                   Number
110 hi def link fanError                    Error
111 hi def link fanStringError              Error
112 hi def link fanStatement                Statement
113 hi def link fanOperator         Operator
114 hi def link fanLongOperator             Operator
115 hi def link fanComment          Comment
116 hi def link fanDocComment               Comment
117 hi def link fanLineComment              Comment
118 hi def link fanConstant         Constant
119 hi def link fanTypedef          Typedef
120 hi def link fanTodo                     Todo
121 hi def link fanFacet                  PreProc
123 hi def link fanCommentTitle             SpecialComment
124 hi def link fanCommentStar              SpecialComment
125 hi def link fanType                     Identifier
126 hi def link fanExternal         Include
128 hi def link fanSpaceError               Error
130 let b:current_syntax = "fan"
132 " vim: ts=8