xref: /vim-8.2.3635/runtime/syntax/kwt.vim (revision f37506f6)
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