1" Vim syntax file 2" Language: kimwitu++ 3" Maintainer: Michael Piefel <piefel@informatik.hu-berlin.de> 4" Last Change: 2 May 2001 5 6" For version 5.x: Clear all syntax items 7" For version 6.x: Quit when a syntax file was already loaded 8if version < 600 9 syntax clear 10elseif exists("b:current_syntax") 11 finish 12endif 13 14" Read the C++ syntax to start with 15if version < 600 16 source <sfile>:p:h/cpp.vim 17else 18 runtime! syntax/cpp.vim 19 unlet b:current_syntax 20endif 21 22" kimwitu++ extentions 23 24" Don't stop at eol, messes around with CPP mode, but gives line spanning 25" strings in unparse rules 26syn region cCppString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat 27syn keyword cType integer real casestring nocasestring voidptr list 28syn keyword cType uview rview uview_enum rview_enum 29 30" avoid unparsing rule sth:view being scanned as label 31syn clear cUserCont 32syn match cUserCont "^\s*\I\i*\s*:$" contains=cUserLabel contained 33syn match cUserCont ";\s*\I\i*\s*:$" contains=cUserLabel contained 34syn match cUserCont "^\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained 35syn match cUserCont ";\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained 36 37" highlight phylum decls 38syn match kwtPhylum "^\I\i*:$" 39syn match kwtPhylum "^\I\i*\s*{\s*\(!\|\I\)\i*\s*}\s*:$" 40 41syn keyword kwtStatement with foreach afterforeach provided 42syn match kwtDecl "%\(uviewvar\|rviewvar\)" 43syn match kwtDecl "^%\(uview\|rview\|ctor\|dtor\|base\|storageclass\|list\|attr\|member\|option\)" 44syn match kwtOption "no-csgio\|no-unparse\|no-rewrite\|no-printdot\|no-hashtables\|smart-pointer\|weak-pointer" 45syn match kwtSep "^%}$" 46syn match kwtSep "^%{\(\s\+\I\i*\)*$" 47syn match kwtCast "\<phylum_cast\s*<"me=e-1 48syn match kwtCast "\<phylum_cast\s*$" 49 50 51" match views, remove paren error in brackets 52syn clear cErrInBracket 53syn match cErrInBracket contained ")" 54syn match kwtViews "\(\[\|<\)\@<=[ [:alnum:]_]\{-}:" 55 56" match rule bodies 57syn region kwtUnpBody transparent keepend extend fold start="->\s*\[" start="^\s*\[" skip="\$\@<!{\_.\{-}\$\@<!}" end="\s]\s\=;\=$" end="^]\s\=;\=$" end="}]\s\=;\=$" 58syn region kwtRewBody transparent keepend extend fold start="->\s*<" start="^\s*<" end="\s>\s\=;\=$" end="^>\s\=;\=$" 59 60" Define the default highlighting. 61" For version 5.7 and earlier: only when not done already 62" For version 5.8 and later: only when an item doesn't have highlighting yet 63if version >= 508 || !exists("did_kwt_syn_inits") 64 if version < 508 65 let did_kwt_syn_inits = 1 66 command -nargs=+ HiLink hi link <args> 67 else 68 command -nargs=+ HiLink hi def link <args> 69 endif 70 71 HiLink kwtStatement cppStatement 72 HiLink kwtDecl cppStatement 73 HiLink kwtCast cppStatement 74 HiLink kwtSep Delimiter 75 HiLink kwtViews Label 76 HiLink kwtPhylum Type 77 HiLink kwtOption PreProc 78 "HiLink cText Comment 79 80 delcommand HiLink 81endif 82 83syn sync lines=300 84 85let b:current_syntax = "kwt" 86 87" vim: ts=8 88