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