79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language: Comshare Dimension Definition Language
 | |
| " Maintainer:	Raul Segura Acevedo <raulseguraaceved@netscape.net>
 | |
| " Last change:	2016 Sep 20
 | |
| 
 | |
| " quit when a syntax file was already loaded
 | |
| if exists("b:current_syntax")
 | |
| 	finish
 | |
| endif
 | |
| 
 | |
| sy case ignore
 | |
| sy sync fromstart
 | |
| sy keyword	cdlStatement	dimension hierarchy group grouphierarchy schedule class
 | |
| sy keyword	cdlType		add update file category main altername removeall required notrequired
 | |
| sy keyword	cdlConditional	if then elseif else endif and or not cons rpt xlt
 | |
| sy keyword	cdlFunction	ChildOf IChildOf LeafChildOf DescendantOf IDescendantOf LeafDescendantOf MemberIs CountOf
 | |
| 
 | |
| sy keyword	cdlIdentifier	contained id name desc description xlttype precision symbol curr_ name group_name rate_name
 | |
| sy keyword	cdlIdentifier	contained xcheck endbal accounttype natsign consolidate formula pctown usage periodicity
 | |
| sy match	cdlIdentifier	contained 'child\s*name'
 | |
| sy match	cdlIdentifier	contained 'parent\s*name'
 | |
| sy match	cdlIdentifier	contained 'grp\s*description'
 | |
| sy match	cdlIdentifier	contained 'grpchild\s*name'
 | |
| sy match	cdlIdentifier	contained 'grpparent\s*name'
 | |
| sy match	cdlIdentifier	contained 'preceding\s*member'
 | |
| sy match	cdlIdentifier	contained 'unit\s*name'
 | |
| sy match	cdlIdentifier	contained 'unit\s*id'
 | |
| sy match	cdlIdentifier	contained 'schedule\s*name'
 | |
| sy match	cdlIdentifier	contained 'schedule\s*id'
 | |
| 
 | |
| sy match	cdlString	/\[[^]]*]/	contains=cdlRestricted,cdlNotSupported
 | |
| sy match	cdlRestricted	contained /[&*,_]/
 | |
| " not supported
 | |
| sy match	cdlNotSupported	contained /[:"!']/
 | |
| 
 | |
| sy keyword	cdlTodo		contained TODO FIXME XXX
 | |
| sy cluster	cdlCommentGroup contains=cdlTodo
 | |
| sy match	cdlComment	'//.*' contains=@cdlCommentGroup
 | |
| sy region	cdlComment	start="/\*" end="\*/" contains=@cdlCommentGroup fold
 | |
| sy match	cdlCommentE	"\*/"
 | |
| 
 | |
| sy region	cdlParen	transparent start='(' end=')' contains=ALLBUT,cdlParenE,cdlRestricted,cdlNotSupported
 | |
| "sy region	cdlParen	transparent start='(' end=')' contains=cdlIdentifier,cdlComment,cdlParenWordE
 | |
| sy match	cdlParenE	")"
 | |
| "sy match	cdlParenWordE	contained "\k\+"
 | |
| 
 | |
| sy keyword	cdlFxType	allocation downfoot expr xltgain
 | |
| "sy keyword	cdlFxType	contained allocation downfoot expr xltgain
 | |
| "sy region	cdlFx		transparent start='\k\+(' end=')' contains=cdlConditional,cdlFunction,cdlString,cdlComment,cdlFxType
 | |
| 
 | |
| set foldmethod=expr
 | |
| set foldexpr=(getline(v:lnum+1)=~'{'\|\|getline(v:lnum)=~'//\\s\\*\\{5}.*table')?'>1':1
 | |
| %foldo!
 | |
| set foldmethod=manual
 | |
| let b:match_words='\<if\>:\<then\>:\<elseif\>:\<else\>:\<endif\>'
 | |
| 
 | |
| " Define the default highlighting.
 | |
| " Only when an item doesn't have highlighting yet
 | |
| 
 | |
| hi def link cdlStatement	Statement
 | |
| hi def link cdlType		Type
 | |
| hi def link cdlFxType	Type
 | |
| hi def link cdlIdentifier	Identifier
 | |
| hi def link cdlString	String
 | |
| hi def link cdlRestricted	WarningMsg
 | |
| hi def link cdlNotSupported	ErrorMsg
 | |
| hi def link cdlTodo		Todo
 | |
| hi def link cdlComment	Comment
 | |
| hi def link cdlCommentE	ErrorMsg
 | |
| hi def link cdlParenE	ErrorMsg
 | |
| hi def link cdlParenWordE	ErrorMsg
 | |
| hi def link cdlFunction	Function
 | |
| hi def link cdlConditional	Conditional
 | |
| 
 | |
| 
 | |
| let b:current_syntax = "cdl"
 | |
| 
 | |
| " vim: ts=8
 |