1" Vim syntax file 2" Language: Zimbu 3" Maintainer: Bram Moolenaar 4" Last Change: 2014 Nov 23 5 6if exists("b:current_syntax") 7 finish 8endif 9 10syn include @Ccode syntax/c.vim 11 12syn keyword zimbuTodo TODO FIXME XXX contained 13syn match zimbuNoBar "|" contained 14syn match zimbuParam "|[^| ]\+|" contained contains=zimbuNoBar 15syn match zimbuNoBacktick "`" contained 16syn match zimbuCode "`[^`]\+`" contained contains=zimbuNoBacktick 17syn match zimbuComment "#.*$" contains=zimbuTodo,zimbuParam,zimbuCode,@Spell 18syn match zimbuComment "/\*.\{-}\*/" contains=zimbuTodo,zimbuParam,zimbuCode,@Spell 19 20syn match zimbuChar "'\\\=.'" 21 22syn keyword zimbuBasicType bool status 23syn keyword zimbuBasicType int1 int2 int3 int4 int5 int6 int7 24syn keyword zimbuBasicType int9 int10 int11 int12 int13 int14 int15 25syn keyword zimbuBasicType int int8 int16 int32 int64 bigInt 26syn keyword zimbuBasicType nat nat8 byte nat16 nat32 nat64 bigNat 27syn keyword zimbuBasicType nat1 nat2 nat3 nat4 nat5 nat6 nat7 28syn keyword zimbuBasicType nat9 nat10 nat11 nat12 nat13 nat14 nat15 29syn keyword zimbuBasicType float float32 float64 float80 float128 30syn keyword zimbuBasicType fixed1 fixed2 fixed3 fixed4 fixed5 fixed6 31syn keyword zimbuBasicType fixed7 fixed8 fixed9 fixed10 fixed11 fixed12 32syn keyword zimbuBasicType fixed13 fixed14 fixed15 33 34syn keyword zimbuCompType string varString 35syn keyword zimbuCompType byteString varByteString 36syn keyword zimbuCompType tuple array list dict dictList set callback 37syn keyword zimbuCompType sortedList multiDict multiDictList multiSet 38syn keyword zimbuCompType complex complex32 complex64 complex80 complex128 39syn keyword zimbuCompType proc func def thread evalThread lock cond pipe 40 41syn keyword zimbuType VAR dyn type USE GET 42syn match zimbuType "IO.File" 43syn match zimbuType "IO.Stat" 44 45syn keyword zimbuStatement IF ELSE ELSEIF IFNIL WHILE REPEAT FOR IN TO STEP 46syn keyword zimbuStatement DO UNTIL SWITCH WITH 47syn keyword zimbuStatement TRY CATCH FINALLY 48syn keyword zimbuStatement GENERATE_IF GENERATE_ELSE GENERATE_ELSEIF 49syn keyword zimbuStatement GENERATE_ERROR 50syn keyword zimbuStatement BUILD_IF BUILD_ELSE BUILD_ELSEIF 51syn keyword zimbuStatement CASE DEFAULT FINAL ABSTRACT VIRTUAL DEFINE REPLACE 52syn keyword zimbuStatement IMPLEMENTS EXTENDS PARENT LOCAL 53syn keyword zimbuStatement PART ALIAS TYPE CONNECT WRAP 54syn keyword zimbuStatement BREAK CONTINUE PROCEED 55syn keyword zimbuStatement RETURN EXIT THROW DEFER 56syn keyword zimbuStatement IMPORT AS OPTIONS MAIN 57syn keyword zimbuStatement INTERFACE PIECE INCLUDE MODULE ENUM BITS 58syn keyword zimbuStatement SHARED STATIC 59syn keyword zimbuStatement LAMBDA 60syn match zimbuStatement "\<\(FUNC\|PROC\|DEF\)\>" 61syn match zimbuStatement "\<CLASS\>" 62syn match zimbuStatement "}" 63 64syn match zimbuAttribute "@backtrace=no\>" 65syn match zimbuAttribute "@backtrace=yes\>" 66syn match zimbuAttribute "@abstract\>" 67syn match zimbuAttribute "@earlyInit\>" 68syn match zimbuAttribute "@default\>" 69syn match zimbuAttribute "@define\>" 70syn match zimbuAttribute "@replace\>" 71syn match zimbuAttribute "@final\>" 72syn match zimbuAttribute "@primitive\>" 73syn match zimbuAttribute "@notOnExit\>" 74 75syn match zimbuAttribute "@private\>" 76syn match zimbuAttribute "@protected\>" 77syn match zimbuAttribute "@public\>" 78syn match zimbuAttribute "@local\>" 79syn match zimbuAttribute "@file\>" 80syn match zimbuAttribute "@directory\>" 81syn match zimbuAttribute "@read=private\>" 82syn match zimbuAttribute "@read=protected\>" 83syn match zimbuAttribute "@read=public\>" 84syn match zimbuAttribute "@read=file\>" 85syn match zimbuAttribute "@read=directory\>" 86syn match zimbuAttribute "@items=private\>" 87syn match zimbuAttribute "@items=protected\>" 88syn match zimbuAttribute "@items=public\>" 89syn match zimbuAttribute "@items=file\>" 90syn match zimbuAttribute "@items=directory\>" 91 92syn keyword zimbuMethod NEW EQUAL COPY COMPARE SIZE GET SET INIT EARLYINIT 93 94syn keyword zimbuOperator IS ISNOT ISA ISNOTA 95 96syn keyword zimbuModule ARG CHECK E GC IO LOG PROTO SYS HTTP ZC ZWT T TIME THREAD 97 98syn match zimbuImport "\.\zsPROTO" 99syn match zimbuImport "\.\zsCHEADER" 100 101"syn match zimbuString +"\([^"\\]\|\\.\)*\("\|$\)+ contains=zimbuStringExpr 102syn region zimbuString start=+"+ skip=+[^"\\]\|\\.+ end=+"\|$+ contains=zimbuStringExpr 103syn match zimbuString +R"\([^"]\|""\)*\("\|$\)+ 104syn region zimbuLongString start=+''"+ end=+"''+ 105syn match zimbuStringExpr +\\([^)]*)+hs=s+2,he=e-1 contained contains=zimbuString,zimbuParenPairOuter 106syn region zimbuParenPairOuter start=+(+ms=s+1 end=+)+me=e-1 contained contains=zimbuString,zimbuParenPair 107syn region zimbuParenPair start=+(+ end=+)+ contained contains=zimbuString,zimbuParenPair 108 109syn keyword zimbuFixed TRUE FALSE NIL THIS THISTYPE FAIL OK 110syn keyword zimbuError NULL 111 112" trailing whitespace 113syn match zimbuSpaceError display excludenl "\S\s\+$"ms=s+1 114" mixed tabs and spaces 115syn match zimbuSpaceError display " \+\t" 116syn match zimbuSpaceError display "\t\+ " 117 118syn match zimbuUses contained "\<uses([a-zA-Z_ ,]*)" 119syn match zimbuBlockgc contained "blockgc" 120syn match zimbuBlockComment contained " #.*" 121 122syn region zimbuCregion matchgroup=zimbuCblock start="^>>>" end="^<<<.*" contains=@Ccode,zimbuUses,zimbuBlockgc,zimbuBlockComment keepend 123 124" Assume long strings and C regions don't take more than 200 lines. 125syn sync minlines=200 126 127" When we find the start of a long string, without a # or " before it, we are 128" sure to be inside a long string. 129syn sync match zimbuLongStringSync grouphere zimbuLongString +^[^"#]*''\"+ 130 131hi def link zimbuBasicType Type 132hi def link zimbuCompType Type 133hi def link zimbuType Type 134hi def link zimbuStatement Statement 135hi def link zimbuOperator Statement 136hi def link zimbuMethod PreProc 137hi def link zimbuModule PreProc 138hi def link zimbuImport PreProc 139hi def link zimbuUses PreProc 140hi def link zimbuBlockgc PreProc 141hi def link zimbuAttribute PreProc 142hi def link zimbuString Constant 143hi def link zimbuLongString Special 144hi def link zimbuChar Constant 145hi def link zimbuFixed Constant 146hi def link zimbuComment Comment 147hi def link zimbuCommentStart zimbuComment 148hi def link zimbuBlockComment Comment 149hi def link zimbuCblock Comment 150hi def link zimbuTodo Todo 151hi def link zimbuParam Constant 152hi def link zimbuCode Statement 153hi def link zimbuNoBar Ignore 154hi def link zimbuNoBacktick Ignore 155hi def link zimbuSpaceError Error 156hi def link zimbuError Error 157 158let b:current_syntax = "zimbu" 159 160" vim: ts=8 161