1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: kimwitu++ 3b6b046b2SBram Moolenaar" Maintainer: Michael Piefel <[email protected]> 4071d4279SBram Moolenaar" Last Change: 2 May 2001 5071d4279SBram Moolenaar 689bcfda6SBram Moolenaar" quit when a syntax file was already loaded 789bcfda6SBram Moolenaarif exists("b:current_syntax") 8071d4279SBram Moolenaar finish 9071d4279SBram Moolenaarendif 10071d4279SBram Moolenaar 11071d4279SBram Moolenaar" Read the C++ syntax to start with 12071d4279SBram Moolenaarruntime! syntax/cpp.vim 13071d4279SBram Moolenaarunlet b:current_syntax 14071d4279SBram Moolenaar 15071d4279SBram Moolenaar" kimwitu++ extentions 16071d4279SBram Moolenaar 17071d4279SBram Moolenaar" Don't stop at eol, messes around with CPP mode, but gives line spanning 18071d4279SBram Moolenaar" strings in unparse rules 19071d4279SBram Moolenaarsyn region cCppString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat 20071d4279SBram Moolenaarsyn keyword cType integer real casestring nocasestring voidptr list 21071d4279SBram Moolenaarsyn keyword cType uview rview uview_enum rview_enum 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" avoid unparsing rule sth:view being scanned as label 24071d4279SBram Moolenaarsyn clear cUserCont 25071d4279SBram Moolenaarsyn match cUserCont "^\s*\I\i*\s*:$" contains=cUserLabel contained 26071d4279SBram Moolenaarsyn match cUserCont ";\s*\I\i*\s*:$" contains=cUserLabel contained 27071d4279SBram Moolenaarsyn match cUserCont "^\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained 28071d4279SBram Moolenaarsyn match cUserCont ";\s*\I\i*\s*:[^:]"me=e-1 contains=cUserLabel contained 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" highlight phylum decls 31071d4279SBram Moolenaarsyn match kwtPhylum "^\I\i*:$" 32071d4279SBram Moolenaarsyn match kwtPhylum "^\I\i*\s*{\s*\(!\|\I\)\i*\s*}\s*:$" 33071d4279SBram Moolenaar 34071d4279SBram Moolenaarsyn keyword kwtStatement with foreach afterforeach provided 35071d4279SBram Moolenaarsyn match kwtDecl "%\(uviewvar\|rviewvar\)" 36071d4279SBram Moolenaarsyn match kwtDecl "^%\(uview\|rview\|ctor\|dtor\|base\|storageclass\|list\|attr\|member\|option\)" 37071d4279SBram Moolenaarsyn match kwtOption "no-csgio\|no-unparse\|no-rewrite\|no-printdot\|no-hashtables\|smart-pointer\|weak-pointer" 38071d4279SBram Moolenaarsyn match kwtSep "^%}$" 39071d4279SBram Moolenaarsyn match kwtSep "^%{\(\s\+\I\i*\)*$" 40071d4279SBram Moolenaarsyn match kwtCast "\<phylum_cast\s*<"me=e-1 41071d4279SBram Moolenaarsyn match kwtCast "\<phylum_cast\s*$" 42071d4279SBram Moolenaar 43071d4279SBram Moolenaar 44071d4279SBram Moolenaar" match views, remove paren error in brackets 45071d4279SBram Moolenaarsyn clear cErrInBracket 46071d4279SBram Moolenaarsyn match cErrInBracket contained ")" 47071d4279SBram Moolenaarsyn match kwtViews "\(\[\|<\)\@<=[ [:alnum:]_]\{-}:" 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar" match rule bodies 50071d4279SBram Moolenaarsyn region kwtUnpBody transparent keepend extend fold start="->\s*\[" start="^\s*\[" skip="\$\@<!{\_.\{-}\$\@<!}" end="\s]\s\=;\=$" end="^]\s\=;\=$" end="}]\s\=;\=$" 51071d4279SBram Moolenaarsyn region kwtRewBody transparent keepend extend fold start="->\s*<" start="^\s*<" end="\s>\s\=;\=$" end="^>\s\=;\=$" 52071d4279SBram Moolenaar 53071d4279SBram Moolenaar" Define the default highlighting. 5489bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 55071d4279SBram Moolenaar 56*f37506f6SBram Moolenaarhi def link kwtStatement cppStatement 57*f37506f6SBram Moolenaarhi def link kwtDecl cppStatement 58*f37506f6SBram Moolenaarhi def link kwtCast cppStatement 59*f37506f6SBram Moolenaarhi def link kwtSep Delimiter 60*f37506f6SBram Moolenaarhi def link kwtViews Label 61*f37506f6SBram Moolenaarhi def link kwtPhylum Type 62*f37506f6SBram Moolenaarhi def link kwtOption PreProc 63*f37506f6SBram Moolenaar"hi def link cText Comment 64071d4279SBram Moolenaar 65071d4279SBram Moolenaar 66071d4279SBram Moolenaarsyn sync lines=300 67071d4279SBram Moolenaar 68071d4279SBram Moolenaarlet b:current_syntax = "kwt" 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" vim: ts=8 71