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