comparison runtime/syntax/fan.vim @ 39:c16898406ff2

synchorinize version 7.3.081
author one@zeus.cr.ie.u-ryukyu.ac.jp
date Fri, 17 Dec 2010 17:43:06 +0900
parents
children
comparison
equal deleted inserted replaced
38:e06a1cd7230d 39:c16898406ff2
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>
6
7 " Quit when a syntax file was already loaded
8 if exists("b:current_syntax")
9 finish
10 endif
11
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
33
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
42
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
46
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
49
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
60
61 syn cluster fanTop add=fanComment,fanLineComment,fanDocComment
62
63 " match the special comment /**/
64 syn match fanComment "/\*\*/"
65
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]\>"
83
84 syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError
85
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
122
123 hi def link fanCommentTitle SpecialComment
124 hi def link fanCommentStar SpecialComment
125 hi def link fanType Identifier
126 hi def link fanExternal Include
127
128 hi def link fanSpaceError Error
129
130 let b:current_syntax = "fan"
131
132 " vim: ts=8