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