codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: Fantom3" Maintainer: Kamil Toman <kamil.toman@gmail.com>4" Last Change: 2010 May 275" Based on Java syntax file by Claudio Fleiner <claudio@fleiner.com>6 7" Quit when a syntax file was already loaded8if exists("b:current_syntax")9 finish10endif11 12" keyword definitions13syn keyword fanExternal using native14syn keyword fanError goto void serializable volatile15syn keyword fanConditional if else switch16syn keyword fanRepeat do while for foreach each17syn keyword fanBoolean true false18syn keyword fanConstant null19syn keyword fanTypedef this super20syn keyword fanOperator new is isnot as21syn keyword fanLongOperator plus minus mult div mod get set slice lshift rshift and or xor inverse negate increment decrement equals compare22syn keyword fanType Void Bool Int Float Decimal Str Duration Uri Type Range List Map Obj23syn keyword fanStatement return24syn keyword fanStorageClass static const final25syn keyword fanSlot virtual override once26syn keyword fanField readonly27syn keyword fanExceptions throw try catch finally28syn keyword fanAssert assert29syn keyword fanTypedef class enum mixin30syn match fanFacet "@[_a-zA-Z][_a-zA-Z0-9_]*\>"31syn keyword fanBranch break continue32syn keyword fanScopeDecl public internal protected private abstract33 34if exists("fan_space_errors")35 if !exists("fan_no_trail_space_error")36 syn match fanSpaceError "\s\+$"37 endif38 if !exists("fan_no_tab_space_error")39 syn match fanSpaceError " \+\t"me=e-140 endif41endif42 43syn region fanLabelRegion transparent matchgroup=fanLabel start="\<case\>" matchgroup=NONE end=":" contains=fanNumber,fanCharacter44syn keyword fanLabel default45syn keyword fanLabel case46 47" The following cluster contains all fan groups except the contained ones48syn 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,fanLabel49 50" Comments51syn keyword fanTodo contained TODO FIXME XXX52syn region fanComment start="/\*" end="\*/" contains=@fanCommentSpecial,fanTodo,fanComment,@Spell53syn match fanCommentStar contained "^\s*\*[^/]"me=e-154syn match fanCommentStar contained "^\s*\*$"55syn match fanLineComment "//.*" contains=@fanCommentSpecial2,fanTodo,@Spell56syn match fanDocComment "\*\*.*" contains=@fanCommentSpecial2,fanTodo,@Spell57hi def link fanCommentString fanString58hi def link fanComment2String fanString59hi def link fanCommentCharacter fanCharacter60 61syn cluster fanTop add=fanComment,fanLineComment,fanDocComment62 63" match the special comment /**/64syn match fanComment "/\*\*/"65 66" Strings and constants67syn match fanSpecialError contained "\\."68syn match fanSpecialCharError contained "[^']"69syn match fanSpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\|\$\)"70syn match fanStringSubst contained "\$[A-Za-z][A-Za-z_.]*"71syn match fanStringSubst contained "\${[^}]*}"72syn region fanString start=+"+ end=+"+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell73syn region fanTripleString start=+"""+ end=+"""+ contains=fanSpecialChar,fanSpecialError,fanStringSubst,@Spell74syn region fanDSL start=+<|+ end=+|>+ 75syn match fanUri "`[^`]*`"76syn match fanCharacter "'[^']*'" contains=fanSpecialChar,fanSpecialCharError77syn match fanCharacter "'\\''" contains=fanSpecialChar78syn match fanCharacter "'[^\\]'"79syn match fanNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"80syn match fanNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="81syn match fanNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"82syn match fanNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"83 84syn cluster fanTop add=fanString,fanCharacter,fanNumber,fanSpecial,fanStringError85 86" The default highlighting.87hi def link fanBranch Conditional88hi def link fanLabel Label89hi def link fanUserLabel Label90hi def link fanConditional Conditional91hi def link fanRepeat Repeat92hi def link fanExceptions Exception93hi def link fanAssert Statement94hi def link fanStorageClass StorageClass95hi def link fanSlot StorageClass96hi def link fanField StorageClass97hi def link fanScopeDecl StorageClass98hi def link fanBoolean Boolean99hi def link fanSpecial Special100hi def link fanSpecialError Error101hi def link fanSpecialCharError Error102hi def link fanTripleString String103hi def link fanString String104hi def link fanDSL String105hi def link fanCharacter String106hi def link fanStringSubst Identifier107hi def link fanUri SpecialChar108hi def link fanSpecialChar SpecialChar109hi def link fanNumber Number110hi def link fanError Error111hi def link fanStringError Error112hi def link fanStatement Statement113hi def link fanOperator Operator114hi def link fanLongOperator Operator115hi def link fanComment Comment116hi def link fanDocComment Comment117hi def link fanLineComment Comment118hi def link fanConstant Constant119hi def link fanTypedef Typedef120hi def link fanTodo Todo121hi def link fanFacet PreProc122 123hi def link fanCommentTitle SpecialComment124hi def link fanCommentStar SpecialComment125hi def link fanType Identifier126hi def link fanExternal Include127 128hi def link fanSpaceError Error129 130let b:current_syntax = "fan"131 132" vim: ts=8133 