diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-03-26 08:26:59 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-03-26 08:26:59 +0200 | 
| commit | 3a80316ff8ff7a21b1f57e2a923b281ac1b4b146 (patch) | |
| tree | f6fe1f701e1b2c984bcce7fb45f082903e1cb51b /syntax | |
| parent | c17fc39b2c5139028f8e94f03d9bce4d7748aa52 (diff) | |
| download | vim-3a80316ff8ff7a21b1f57e2a923b281ac1b4b146.zip vim-3a80316ff8ff7a21b1f57e2a923b281ac1b4b146.tar.gz  | |
add syntax
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/edc.vim | 235 | ||||
| -rw-r--r-- | syntax/embryo.vim | 195 | ||||
| -rw-r--r-- | syntax/eruby.vim | 42 | ||||
| -rw-r--r-- | syntax/pasm.vim | 87 | ||||
| -rw-r--r-- | syntax/pir.vim | 156 | ||||
| -rw-r--r-- | syntax/pmc.vim | 350 | ||||
| -rw-r--r-- | syntax/ragel.vim | 165 | ||||
| -rw-r--r-- | syntax/tjp.vim | 706 | 
8 files changed, 1936 insertions, 0 deletions
diff --git a/syntax/edc.vim b/syntax/edc.vim new file mode 100644 index 0000000..58cd0b0 --- /dev/null +++ b/syntax/edc.vim @@ -0,0 +1,235 @@ +" Vim syntax file +" Language:	EDC +" Maintainer:	Viktor Kojouharov +" Last Change:	2007 02 24 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +" A bunch of useful keywords +syn keyword	edcBlock	images data fonts collections group contained +syn keyword	edcBlock	part parts dragable description contained +syn keyword	edcBlock	text font fill origin size image contained +syn keyword	edcBlock	programs program styles style contained +syn keyword 	edcBlock 	gradient spectra spectrum contained +syn keyword 	edcBlock 	color_classes color_class rel1 rel2 contained +syn keyword 	edcBlock 	items item file params externals contained +syn keyword 	edcBlock 	map rotation perspective script lua_script contained + +syn keyword	edcLabel	item name alias min max type effect contained +syn keyword	edcLabel	mouse_events repeat_events clip_to contained +syn keyword	edcLabel	x y z confine events scale contained +syn keyword	edcLabel	ignore_flags precise_is_inside contained +syn keyword	edcLabel	use_alternate_font_metrics entry_mode contained +syn keyword	edcLabel	source source2 source3 source4 contained +syn keyword	edcLabel	source5 source6 multiline pointer_mode contained +syn keyword	edcLabel	state visible step aspect fixed middle contained +syn keyword	edcLabel	aspect_preference elipsis image contained +syn keyword	edcLabel	relative offset to to_x to_y contained +syn keyword	edcLabel	border border_scale scale_hint color color2 color3 font size contained +syn keyword	edcLabel	signal action transition in filter contained +syn keyword	edcLabel	target after fit align contained +syn keyword	edcLabel	text smooth inherit tag base style contained +syn keyword	edcLabel	text_source color_class text_class contained +syn keyword	edcLabel	spectrum angle spread normal tween contained +syn keyword	edcLabel	padding prefer weight aspect_mode contained +syn keyword	edcLabel	options layout position span contained +syn keyword	edcLabel	homogeneous contained +syn keyword	edcLabel	on perspective light perspective_on contained +syn keyword	edcLabel	backface_cull alpha center focus zplane contained +syn keyword	edcLabel	int double string external script_only contained + +syn keyword	edcConstant 	COMP RAW LOSSY NONE ON_HOLD AUTOGRAB NOGRAB +syn keyword	edcConstant 	TEXT IMAGE RECT TEXTBLOCK SWALLOW GRADIENT GROUP +syn keyword	edcConstant 	NONE PLAIN OUTLINE SOFT_OUTLINE SHADOW +syn keyword	edcConstant 	SOFT_SHADOW OUTLINE_SHADOW OUTLINE_SOFT_SHADOW +syn keyword	edcConstant	GLOW FAR_SHADOW FAR_SOFT_SHADOW +syn keyword	edcConstant 	STATE_SET ACTION_STOP SIGNAL_EMIT FOCUS_SET +syn keyword	edcConstant	DRAG_VAL_SET DRAG_VAL_STEP DRAG_VAL_PAGE +syn keyword	edcConstant	LINEAR SINUSOIDAL ACCELERATE DECELERATE +syn keyword	edcConstant	VERTICAL HORIZONTAL BOTH BOX TABLE +syn keyword	edcConstant	EDITABLE PASSWORD "default" + +syn keyword	edcTodo		contained TODO FIXME XXX + +syn match 	edcLabelMatch 	"\w\+:" contains=edcLabel +syn match 	edcBlockMatch 	"\w\+\_s*{" contains=edcBlock +syn match 	edcBlockMatch 	"\w\+\.\a"me=e-2 contains=edcBlock +" edcCommentGroup allows adding matches for special things in comments +syn cluster	edcCommentGroup	contains=edcTodo + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match	edcSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" +syn region	edcString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=edcSpecial +syn match	edcFormat	display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained +syn match	edcFormat	display "%%" contained +syn region	edcString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat + +syn match	edcCharacter	"L\='[^\\]'" +syn match	edcCharacter	"L'[^']*'" contains=edcSpecial +syn match	edcSpecialError	"L\='\\[^'\"?\\abfnrtv]'" +syn match	edcSpecialCharacter "L\='\\['\"?\\abfnrtv]'" +syn match	edcSpecialCharacter display "L\='\\\o\{1,3}'" +syn match	edcSpecialCharacter display "'\\x\x\{1,2}'" +syn match	edcSpecialCharacter display "L'\\x\x\+'" + +"when wanted, highlight trailing white space +if exists("edc_space_errors") +  if !exists("edc_no_trail_space_error") +    syn match	edcSpaceError	display excludenl "\s\+$" +  endif +  if !exists("edc_no_tab_space_error") +    syn match	edcSpaceError	display " \+\t"me=e-1 +  endif +endif + +"catch errors caused by wrong parenthesis and brackets +syn cluster	edcParenGroup	contains=edcParenError,edcIncluded,edcSpecial,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcUserCont,edcUserLabel,edcBitField,edcCommentSkip,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom +if exists("edc_no_bracket_error") +  syn region	edcParen	transparent start='(' end=')' contains=ALLBUT,@edcParenGroup +  syn match	edcParenError	display ")" +  syn match	edcErrInParen	display contained "[{}]" +else +  syn region	edcParen	transparent start='(' end=')' contains=ALLBUT,@edcParenGroup,edcErrInBracket +  syn match	edcParenError	display "[\])]" +  syn match	edcErrInParen	display contained "[\]{}]" +  syn region	edcBracket	transparent start='\[' end=']' contains=ALLBUT,@edcParenGroup,edcErrInParen +  syn match	edcErrInBracket	display contained "[);{}]" +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match	edcNumbers	display transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctalError,edcOctal +" Same, but without octal error (for comments) +syn match	edcNumbersCom	display contained transparent "\<\d\|\.\d" contains=edcNumber,edcFloat,edcOctal +syn match	edcNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match	edcNumber	display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match	edcOctal	display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=edcOctalZero +syn match	edcOctalZero	display contained "\<0" +syn match	edcFloat	display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match	edcFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match	edcFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match	edcFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn match	edcOctalError	display contained "0\o*[89]\d*" +syn case match + +if exists("edc_comment_strings") +  " A comment can contain edcString, edcCharacter and edcNumber. +  " But a "*/" inside a edcString in a edcComment DOES end the comment!  So we +  " need to use a special type of edcString: edcCommentString, which also ends +  " on "*/", and sees a "*" at the start of the line as comment again. +  " Unfortunately this doesn't very well work for // type of comments :-( +  syntax match	edcCommentSkip		contained "^\s*\*\($\|\s\+\)" +  syntax region edcCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=edcSpecial,edcCommentSkip +  syntax region edcComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=edcSpecial +  syntax region edcCommentL		start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcComment2String,edcCharacter,edcNumbersCom,edcSpaceError +  syntax region edcComment		matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcCommentString,edcCharacter,edcNumbersCom,edcSpaceError +else +  syn region	edcCommentL		start="//" skip="\\$" end="$" keepend contains=@edcCommentGroup,edcSpaceError +  syn region	edcComment		matchgroup=edcCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@edcCommentGroup,edcCommentStartError,edcSpaceError +endif +" keep a // comment separately, it terminates a preproc. conditional +syntax match	edcCommentError		display "\*/" +syntax match	edcCommentStartError 	display "/\*"me=e-1 contained + +syn region	edcPreCondit	start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=edcComment,edcCharacter,edcParenError,edcNumbers,edcCommentError,edcSpaceError +syn match	edcPreCondit	display "^\s*#\s*\(else\|endif\)\>" +syn region	edcIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match	edcIncluded	display contained "<[^>]*>" +syn match	edcInclude	display "^\s*#\s*include\>\s*["<]" contains=edcIncluded +syn cluster	edcPreProcGroup	contains=edcPreCondit,edcIncluded,edcInclude,edcDefine,edcErrInParen,edcErrInBracket,edcCommentSkip,edcCommentString,edcComment2String,@edcCommentGroup,edcCommentStartError,edcParen,edcBracket,edcMulti,edcUserLabel +syn cluster 	edcAlphaNum 	contains=edcSpecial,edcOctalZero,edcFormat,edcNumber,edcFloat,edcOctal,edcOctalError,edcNumbersCom,edcString +syn region	edcDefine	start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@edcPreProcGroup +syn region	edcPreProc	start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@edcPreProcGroup + +syn match	edcUserLabel	display "\I\i*" contained + +syn include 	@edcEmbryo 	syntax/embryo.vim +unlet b:current_syntax +syn region 	edcScript	matchgroup=edcScriptTag start="\<script\_s*{" end="}" contains=@edcEmbryo,edcScriptTag +syn keyword     edcScriptTag    contained script + +syn include 	@edcLua 	syntax/lua.vim +unlet b:current_syntax +syn region 	edcLuaScript	matchgroup=edcLuaScriptTag start="\<lua_script\_s*{" end="}" contains=@edcLua,edcLuaScriptTag +syn keyword     edcLuaScriptTag contained script + +if exists("edc_minlines") +  let b:edc_minlines = edc_minlines +else +  let b:edc_minlines = 50	" #if 0 constructs can be long +endif +exec "syn sync ccomment edcComment minlines=" . b:edc_minlines +"syn sync fromstart + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_edc_syn_inits") +  if version < 508 +    let did_edc_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink edcFormat		edcSpecial +  HiLink edcCommentL		edcComment +  HiLink edcCommentStart	edcComment +  HiLink edcLabel		Label +  HiLink edcUserLabel		Label +  HiLink edcConditional		Conditional +  HiLink edcRepeat		Repeat +  HiLink edcCharacter		Character +  HiLink edcSpecialCharacter	cSpecial +  HiLink edcNumber		Number +  HiLink edcOctal		Number +  HiLink edcOctalZero		PreProc	 " link this to Error if you want +  HiLink edcFloat		Float +  HiLink edcOctalError		edcError +  HiLink edcParenError		edcError +  HiLink edcErrInParen		edcError +  HiLink edcErrInBracket	edcError +  HiLink edcCommentError	edcError +  HiLink edcCommentStartError	edcError +  HiLink edcSpaceError		edcError +  HiLink edcSpecialError	edcError +  HiLink edcOperator		Operator +  HiLink edcStructure		Structure +  HiLink edcStorageClass	StorageClass +  HiLink edcInclude		Include +  HiLink edcPreProc		PreProc +  HiLink edcDefine		Macro +  HiLink edcIncluded		edcString +  HiLink edcError		Error +  HiLink edcBlock		Function +  HiLink edcScriptTag		Function +  HiLink edcLuaScriptTag	Function +  HiLink edcPreCondit		PreCondit +  HiLink edcConstant		Constant +  HiLink edcCommentString	edcString +  HiLink edcComment2String	edcString +  HiLink edcCommentSkip		edcComment +  HiLink edcString		String +  HiLink edcComment		Comment +  HiLink edcSpecial		SpecialChar +  HiLink edcTodo		Todo + +  delcommand HiLink +endif + +let b:current_syntax = "edc" + +" vim: ts=8 diff --git a/syntax/embryo.vim b/syntax/embryo.vim new file mode 100644 index 0000000..11175d8 --- /dev/null +++ b/syntax/embryo.vim @@ -0,0 +1,195 @@ +" Vim syntax file +" Language:	Embryo +" Maintainer:	Viktor Kojouharov +" Last Change:	2006 10 06 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +" A bunch of useful keywords +syn keyword embryoConditional	if else switch +syn keyword embryoRepeat	while for do in +syn keyword embryoBranch	break continue +syn keyword embryoOperator	new +syn keyword embryoType		Float State_Param Msg_Type enum +syn keyword embryoStatement	return with native stock forward +syn keyword embryoLabel		case default +syn keyword embryoReserved	public +syn keyword embryoEdjeKey	PART PROGRAM + +syn keyword	embryoTodo		contained TODO FIXME XXX + +" embryoCommentGroup allows adding matches for special things in comments +syn cluster	embryoCommentGroup	contains=embryoTodo + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match	embryoSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" +syn region	embryoString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=embryoSpecial +syn match	embryoFormat	display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained +syn match	embryoFormat	display "%%" contained +syn region	embryoString	start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat + +syn match	embryoCharacter	"L\='[^\\]'" +syn match	embryoCharacter	"L'[^']*'" contains=embryoSpecial +syn match	embryoSpecialError	"L\='\\[^'\"?\\abfnrtv]'" +syn match	embryoSpecialCharacter "L\='\\['\"?\\abfnrtv]'" +syn match	embryoSpecialCharacter display "L\='\\\o\{1,3}'" +syn match	embryoSpecialCharacter display "'\\x\x\{1,2}'" +syn match	embryoSpecialCharacter display "L'\\x\x\+'" + +"when wanted, highlight trailing white space +if exists("embryo_space_errors") +  if !exists("embryo_no_trail_space_error") +    syn match	embryoSpaceError	display excludenl "\s\+$" +  endif +  if !exists("embryo_no_tab_space_error") +    syn match	embryoSpaceError	display " \+\t"me=e-1 +  endif +endif + +"catch errors caused by wrong parenthesis and brackets +syn cluster	embryoParenGroup	contains=embryoParenError,embryoIncluded,embryoSpecial,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoUserCont,embryoUserLabel,embryoBitField,embryoCommentSkip,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom +if exists("embryo_no_bracket_error") +  syn region	embryoParen	transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup +  syn match	embryoParenError	display ")" +  syn match	embryoErrInParen	display contained "[{}]" +else +  syn region	embryoParen	transparent start='(' end=')' contains=ALLBUT,@embryoParenGroup,embryoErrInBracket +  syn match	embryoParenError	display "[\])]" +  syn match	embryoErrInParen	display contained "[\]{}]" +  syn region	embryoBracket	transparent start='\[' end=']' contains=ALLBUT,@embryoParenGroup,embryoErrInParen +  syn match	embryoErrInBracket	display contained "[);{}]" +endif + +syn region embryoBrace start='{' end='}' transparent +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match	embryoNumbers	display transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctalError,embryoOctal +" Same, but without octal error (for comments) +syn match	embryoNumbersCom	display contained transparent "\<\d\|\.\d" contains=embryoNumber,embryoFloat,embryoOctal +syn match	embryoNumber	display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match	embryoNumber	display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match	embryoOctal	display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=embryoOctalZero +syn match	embryoOctalZero	display contained "\<0" +syn match	embryoFloat	display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match	embryoFloat	display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match	embryoFloat	display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match	embryoFloat	display contained "\d\+e[-+]\=\d\+[fl]\=\>" +" flag an octal number with wrong digits +syn match	embryoOctalError	display contained "0\o*[89]\d*" +syn case match + +if exists("embryo_comment_strings") +  " A comment can contain embryoString, embryoCharacter and embryoNumber. +  " But a "*/" inside a embryoString in a embryoComment DOES end the comment!  So we +  " need to use a special type of embryoString: embryoCommentString, which also ends +  " on "*/", and sees a "*" at the start of the line as comment again. +  " Unfortunately this doesn't very well work for // type of comments :-( +  syntax match	embryoCommentSkip		contained "^\s*\*\($\|\s\+\)" +  syntax region embryoCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=embryoSpecial,embryoCommentSkip +  syntax region embryoComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=embryoSpecial +  syntax region embryoCommentL		start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoComment2String,embryoCharacter,embryoNumbersCom,embryoSpaceError +  syntax region embryoComment		matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoCommentString,embryoCharacter,embryoNumbersCom,embryoSpaceError +else +  syn region	embryoCommentL		start="//" skip="\\$" end="$" keepend contains=@embryoCommentGroup,embryoSpaceError +  syn region	embryoComment		matchgroup=embryoCommentStart start="/\*" matchgroup=NONE end="\*/" contains=@embryoCommentGroup,embryoCommentStartErr,embryoSpaceError +endif +" keep a // comment separately, it terminates a preproc. conditional +syntax match	embryoCommentError		display "\*/" +syntax match	embryoCommentStartErr 	display "/\*"me=e-1 contained + +syn region	embryoPreCondit	start="^\s*#\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=embryoComment,embryoCharacter,embryoParenError,embryoNumbers,embryoCommentError,embryoSpaceError +syn match	embryoPreCondit	display "^\s*#\s*\(else\|endif\)\>" +syn region	embryoIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match	embryoIncluded	display contained "<[^>]*>" +syn match	embryoInclude	display "^\s*#\s*include\>\s*["<]" contains=embryoIncluded +syn cluster	embryoPreProcGroup	contains=embryoPreCondit,embryoIncluded,embryoInclude,embryoDefine,embryoErrInParen,embryoErrInBracket,embryoCommentSkip,embryoCommentString,embryoComment2String,@embryoCommentGroup,embryoCommentStartErr,embryoParen,embryoBracket,embryoMulti,embryoUserLabel +syn cluster 	embryoAlphaNum 	contains=embryoSpecial,embryoOctalZero,embryoFormat,embryoNumber,embryoFloat,embryoOctal,embryoOctalError,embryoNumbersCom,embryoString +syn region	embryoDefine	start="^\s*#\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@embryoPreProcGroup +syn region	embryoPreProc	start="^\s*#\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@embryoPreProcGroup + +syn match	embryoUserLabel	display "\I\i*" contained + +syn match 	embryoFunctionName	"\h\w*\s*\%((\@=\)" + +if exists("embryo_minlines") +  let b:embryo_minlines = embryo_minlines +else +  let b:embryo_minlines = 50	" #if 0 constructs can be long +endif +exec "syn sync ccomment embryoComment minlines=" . b:embryo_minlines +"syn sync fromstart + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_embryo_syn_inits") +  if version < 508 +    let did_embryo_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink embryoFormat		embryoSpecial +  HiLink embryoCommentL		embryoComment +  HiLink embryoCommentStart	embryoComment +  HiLink embryoLabel		Label +  HiLink embryoUserLabel	Label +  HiLink embryoConditional	Conditional +  HiLink embryoRepeat		Repeat +  HiLink embryoBranch		Conditional +  HiLink embryoReserved		Keyword +  HiLink embryoCharacter	Character +  HiLink embryoSpecialCharacter	cSpecial +  HiLink embryoNumber		Number +  HiLink embryoOctal		Number +  HiLink embryoOctalZero	PreProc	 " link this to Error if you want +  HiLink embryoFloat		Float +  HiLink embryoOctalError	embryoError +  HiLink embryoParenError	embryoError +  HiLink embryoErrInParen	embryoError +  HiLink embryoErrInBracket	embryoError +  HiLink embryoCommentError	embryoError +  HiLink embryoCommentStartErr	embryoError +  HiLink embryoSpaceError	embryoError +  HiLink embryoSpecialError	embryoError +  HiLink embryoOperator		Operator +  HiLink embryoStructure	Structure +  HiLink embryoEdjeKey		Structure +  HiLink embryoStorageClass	StorageClass +  HiLink embryoInclude		Include +  HiLink embryoPreProc		PreProc +  HiLink embryoDefine		Macro +  HiLink embryoIncluded		embryoString +  HiLink embryoError		Error +  HiLink embryoStatement	Statement +  HiLink embryoPreCondit	PreCondit +  HiLink embryoType		Type +  HiLink embryoConstant		Constant +  HiLink embryoCommentString	embryoString +  HiLink embryoComment2String	embryoString +  HiLink embryoCommentSkip	embryoComment +  HiLink embryoString		String +  HiLink embryoComment		Comment +  HiLink embryoSpecial		SpecialChar +  HiLink embryoTodo		Todo +  HiLink embryoFunctionName	Function + +  delcommand HiLink +endif + +let b:current_syntax = "embryo" + +" vim: ts=8 diff --git a/syntax/eruby.vim b/syntax/eruby.vim new file mode 100644 index 0000000..2888e54 --- /dev/null +++ b/syntax/eruby.vim @@ -0,0 +1,42 @@ +" Vim syntax file +" Language:	   eruby +" Maintainer:  Michael Brailsford <brailsmt@yahoo.com> +" Installation: +"	To automatilcally load this file when a .rhtml file is opened, add the +"	following lines to ~/.vim/filetype.vim: +" +"		augroup filetypedetect +" 			au! BufRead,BufNewFile *.rhtml		setfiletype eruby +" 		augroup END +" +"	You will have to restart vim for this to take effect.  In any case it  +"	is a good idea to read ":he new-filetype" so that you know what is going +"	on, and why the above lines work. + +if version < 600 +	syntax clear +elseif exists("b:current_syntax") +	finish +endif + +"Source the html syntax file +ru! syntax/html.vim +"Set the filetype to html to load the html ftplugins +set ft=html +unlet b:current_syntax + +"Put the ruby syntax file in @rubyTop +syn include @rubyTop syntax/ruby.vim + +syn region erubyBlock matchgroup=erubyRubyDelim start=#<%=\?# end=#%># keepend containedin=ALL contains=@rubyTop,erubyEnd +syn region erubyComment start=+<%#+ end=#%># keepend +syn match erubyEnd #\<end\># + +" hi erubyBlock ctermbg=Gray +hi link erubyDelim delimiter +hi link erubyComment comment +hi link erubyEnd rubyControl + +iab %= <%= %><LEFT><LEFT><LEFT> +iab %% <% -%><LEFT><LEFT><LEFT><LEFT> +" vim: set ts=4 sw=4: diff --git a/syntax/pasm.vim b/syntax/pasm.vim new file mode 100644 index 0000000..1eaf27b --- /dev/null +++ b/syntax/pasm.vim @@ -0,0 +1,87 @@ +" Vim syntax file +" Language:	Parrot Assembler +" Maintainer:	Scott Beck <scott@gossamer-threads.com> +" Last Change:	2002 Feb 28 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +syn include @Pod syntax/pod.vim +syn region myPod start="^=pod" start="^=item" start="^=head" end="^=cut" keepend contains=@Pod + +syn match pasmIdentifier "[A-Za-z0-9_]\+" +syn match pasmLabel      "[A-Za-z0-9_]\+:"he=e-1 +syn match pasmComment    "#.*" + +" Only have 32 registers +syn match pasmINT "I\(\([1-2][0-9]\)\|\(3[0-2]\)\|[1-9]\)" +syn match pasmSTR "S\(\([1-2][0-9]\)\|\(3[0-2]\)\|[1-9]\)" +syn match pasmFLT "N\(\([1-2][0-9]\)\|\(3[0-2]\)\|[1-9]\)" +syn match pasmPMC "P\(\([1-2][0-9]\)\|\(3[0-2]\)\|[1-9]\)" + +syn match pasmNumber "[0-9]\+" +syn match pasmString +"[^"]\+"+ + +syn keyword pasmOpBasic         end noop +syn keyword pasmOpSystem        close err open readline ord print read time write +syn keyword pasmOpRegLoad       set set_keyed clone +syn keyword pasmOpCond          eq ne lt le gt ge if unless +syn keyword pasmOpArith         abs add cmod dec div inc mod mul not pow sub  +syn keyword pasmOpString        chopm concat repeat length substr  +syn keyword pasmOpMath          acos asec asin atan cos cosh exp ln log10 log2 sec sech sin sinh tan tanh +syn keyword pasmOpBit           and not or shl shr xor +syn keyword pasmOpFlags         debug bounds profile trace +syn keyword pasmOpReg           cleari clearn clearp clears popi popn popp pops pushi pushn pushp pushs +syn keyword pasmOpRegStack      entrytype save restore rotate_up +syn keyword pasmOpCtrlFlow      branch bsr jsr jump +syn keyword pasmOpSymbolTbl     find_global  +syn keyword pasmOpMisc          newinterp runinterp new find_type ret sleep setline getline setfile getfile setpackage getpackage warningson warningsoff + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_pasm_syntax_inits") +  if version < 508 +    let did_pasm_syntax_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink pasmLabel       Label +  HiLink pasmIdentifier  Identifier +  HiLink pasmINT         Type +  HiLink pasmSTR         Type +  HiLink pasmFLT         Type +  HiLink pasmPMC         Type +  HiLink pasmNumber      Number +  HiLink pasmString      String +  HiLink pasmComment     Comment +  HiLink pasmOp          Statement +  HiLink pasmOpBasic     pasmOp +  HiLink pasmOpSystem    pasmOp +  HiLink pasmOpRegLoad   pasmOp +  HiLink pasmOpCond      pasmOp +  HiLink pasmOpArith     pasmOp +  HiLink pasmOpString    pasmOp +  HiLink pasmOpMath      pasmOp +  HiLink pasmOpBit       pasmOp +  HiLink pasmOpFlags     pasmOp +  HiLink pasmOpReg       pasmOp +  HiLink pasmOpRegStack  pasmOp +  HiLink pasmOpCtrlFlow  pasmOp +  HiLink pasmOpSymbolTbl pasmOp +  HiLink pasmOpMisc      pasmOp + +  delcommand HiLink +endif + +let b:current_syntax = "pasm" + +" vim: ts=8 + diff --git a/syntax/pir.vim b/syntax/pir.vim new file mode 100644 index 0000000..338cc81 --- /dev/null +++ b/syntax/pir.vim @@ -0,0 +1,156 @@ +" Vim syntax file +" Language:	Parrot IMCC +" Maintainer:	Luke Palmer <fibonaci@babylonia.flatirons.org> +" Modified: Joshua Isom +" Last Change:	Jan 6 2006 + +" For installation please read: +" :he filetypes +" :he syntax +" +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +" +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +syntax clear + +syn include @Pod syntax/pod.vim +syn region pirPod start="^=[a-z]" end="^=cut" keepend contains=@Pod + +syn keyword pirType int float num string pmc +syn match   pirPMC  /\.\(Compiler\|Continuation\|Coroutine\|CSub\|NCI\|Eval\|Sub\|Scratchpad\)/ +syn match   pirPMC  /\.\(BigInt\|Boolean\|Complex\|Float\|Integer\|PMC\|String\|Hash\)/ +syn match   pirPMC  /\.\(Fixed\|Resizable\)\(Boolean\|Float\|Integer\|PMC\|String\)Array/ +syn match   pirPMC  /\.\(IntList\|Iterator\|Key\|ManagedStruct\|UnManagedStruct\|Pointer\)/ +syn match   pirPMC  /\.\(FloatVal\|Multi\|S\|String\)\?Array/ +syn match   pirPMC  /\.Perl\(Array\|Env\|Hash\|Int\|Num\|Scalar\|String\|Undef\)/ +syn match   pirPMC  /\.Parrot\(Class\|Interpreter\|IO\|Library\|Object\|Thread\)/ +syn keyword pirPMC self + +syn keyword pirOp   goto if unless global addr + +syn match pirDirective  /\.\(sub\|endm\|pcc_sub\|macro\|end\|emit\|eom\)/ +syn match pirDirective  /\.\(local\|sym\|const\|lex\|global\|globalconst\)/ +syn match pirDirective  /\.\(endnamespace\|namespace\)/ +syn match pirDirective  /\.\(param\|arg\|return\|yield\)/ +syn match pirDirective  /\.\(pragma\|HLL_map\|HLL\|include\|loadlib\)/ +syn match pirDirective  /\.\(pcc_begin\|pcc_call\|pcc_end\|invocant\|meth_call\|nci_call\)/ +syn match pirDirective  /\.\(pcc_begin_return\|pcc_end_return\)/ +syn match pirDirective  /\.\(pcc_begin_yield\|pcc_end_yield\)/ + +syn match pirDirective  /:\(main\|method\|load\|anon\|multi\|immediate\|outer\|lex\)/ +syn match pirDirective  /:\(flat\|slurpy\|optional\|opt_flag\|named\)/ + +" Macro invocation +syn match pirDirective  /\.\I\i*(/he=e-1 + + +" pirWord before pirRegister +" FIXME :: in identifiers and labels +syn match pirWord           /[A-Za-z_][A-Za-z0-9_]*/ +syn match pirComment        /#.*/ +syn match pirLabel          /[A-Za-z0-9_]\+:/he=e-1 +syn match pirRegister       /[INPS]\([12][0-9]\|3[01]\|[0-9]\)/ +syn match pirDollarRegister /\$[INPS][0-9]\+/ + +syn match pirNumber         /[+-]\?[0-9]\+\(\.[0-9]*\([Ee][+-]\?[0-9]\+\)\?\)\?/ +syn match pirNumber         /0[xX][0-9a-fA-F]\+/ +syn match pirNumber         /0[oO][0-7]\+/ +syn match pirNumber         /0[bB][01]\+/ + +syn region pirString start=/"/ skip=/\\"/ end=/"/ contains=pirStringSpecial +syn region pirString start=/<<"\z(\I\i*\)"/ end=/^\z1$/ contains=pirStringSpecial +syn region pirString start=/<<'\z(\I\i*\)'/ end=/^\z1$/ +syn region pirString start=/'/ end=/'/ +syn match  pirStringSpecial "\\\([abtnvfre\\"]\|\o\{1,3\}\|x{\x\{1,8\}}\|x\x\{1,2\}\|u\x\{4\}\|U\x\{8\}\|c[A-Z]\)" contained + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_pasm_syntax_inits") +  if version < 508 +    let did_pasm_syntax_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink pirPod             Comment +  HiLink pirWord            Normal +  HiLink pirComment         Comment +  HiLink pirLabel           Label +  HiLink pirRegister        Identifier +  HiLink pirDollarRegister  Identifier +  HiLink pirType            Type +  HiLink pirPMC             Type +  HiLink pirString          String +  HiLink pirStringSpecial   Special +  HiLink pirNumber          Number +  HiLink pirDirective       Macro +  HiLink pirOp              Conditional + +  delcommand HiLink +endif + +let b:current_syntax = "pir" + +" Ops -- dynamically generated from ops2vim.pl +syn keyword pirOp band bands bnot n_bnot bnots n_bnots bor bors shl shr +syn keyword pirOp lsr rot bxor bxors eq eq_str eq_num eq_addr ne ne_str +syn keyword pirOp ne_num ne_addr lt lt_str lt_num le le_str le_num gt +syn keyword pirOp gt_str gt_num ge ge_str ge_num cmp cmp_str cmp_num and +syn keyword pirOp not n_not or xor issame isntsame istrue isfalse isgt +syn keyword pirOp isge isle islt iseq isne if_null unless_null end noop +syn keyword pirOp cpu_ret check_events check_events__ wrapper__ +syn keyword pirOp prederef__ reserved load_bytecode branch branch_cs bsr +syn keyword pirOp ret jsr jump enternative if unless invokecc invoke +syn keyword pirOp yield tailcall returncc newclosure set_args get_results +syn keyword pirOp get_params set_returns result_info set_addr get_addr +syn keyword pirOp push_eh clear_eh throw rethrow die exit pushmark +syn keyword pirOp popmark pushaction debug bounds profile trace gc_debug +syn keyword pirOp interpinfo warningson warningsoff errorson errorsoff +syn keyword pirOp runinterp getinterp sweep collect sweepoff sweepon +syn keyword pirOp collectoff collecton needs_destroy loadlib dlfunc dlvar +syn keyword pirOp compile compreg new_callback debug_init debug_load +syn keyword pirOp debug_break debug_print backtrace getline getfile +syn keyword pirOp print_newline gcd splice slice iter morph exec +syn keyword pirOp classname trap pow getclass new instantiate pmcinfo +syn keyword pirOp add_io_event need_finalize close fdopen getfd getstdin +syn keyword pirOp getstdout getstderr setstdout setstderr pioctl open +syn keyword pirOp print printerr read readline peek stat seek tell socket +syn keyword pirOp sockaddr connect recv send poll bind listen accept +syn keyword pirOp infix n_infix abs n_abs add cmod dec div fdiv ceil +syn keyword pirOp floor inc mod mul neg n_neg sub sqrt acos asec asin +syn keyword pirOp atan cos cosh exp ln log10 log2 sec sech sin sinh tan +syn keyword pirOp tanh lcm fact callmethodcc callmethod tailcallmethod +syn keyword pirOp DELETED_fetchmethod addmethod can does isa newclass +syn keyword pirOp subclass singleton class addparent removeparent +syn keyword pirOp addattribute removeattribute getattribute setattribute +syn keyword pirOp classoffset adddoes removedoes covers exsec hav vers +syn keyword pirOp pic_infix__ pic_inline_sub__ pic_get_params__ +syn keyword pirOp pic_set_returns__ pic_callr__ typeof find_type +syn keyword pirOp valid_type get_repr find_method defined exists delete +syn keyword pirOp elements push pop unshift shift setprop getprop delprop +syn keyword pirOp prophash freeze thaw mmdvtregister mmdvtfind register +syn keyword pirOp unregister hash get_mro clone exchange set assign +syn keyword pirOp setref deref setp_ind setn_ind sets_ind seti_ind null +syn keyword pirOp cleari clearn clears clearp saveall restoreall +syn keyword pirOp entrytype depth lookback save savec restore rotate_up +syn keyword pirOp stm_start stm_validate stm_commit stm_wait stm_abort +syn keyword pirOp stm_depth ord chr chopn concat repeat length bytelength +syn keyword pirOp pin unpin substr substr_r index sprintf find_encoding +syn keyword pirOp stringinfo upcase downcase titlecase join split charset +syn keyword pirOp charsetname find_charset trans_charset encoding +syn keyword pirOp encodingname trans_encoding is_cclass find_cclass +syn keyword pirOp find_not_cclass escape compose spawnw err time gmtime +syn keyword pirOp localtime decodetime decodelocaltime sysinfo sleep +syn keyword pirOp sizeof store_lex find_lex get_namespace +syn keyword pirOp get_hll_namespace get_root_namespace get_global +syn keyword pirOp get_hll_global get_root_global set_global +syn keyword pirOp set_hll_global set_root_global store_global find_global +syn keyword pirOp find_name diff --git a/syntax/pmc.vim b/syntax/pmc.vim new file mode 100644 index 0000000..8190cb6 --- /dev/null +++ b/syntax/pmc.vim @@ -0,0 +1,350 @@ +" Vim syntax file +" Language:	Parrot PMC +" Maintainer:	Andrew Rodland <arodland@entermail.net> +" Last Change:	2004 Aug 2 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 +  syntax clear +elseif exists("b:current_syntax") +  finish +endif + +syn include @Pod syntax/pod.vim +syn region pmcPod start="^=[a-z]" end="^=cut" keepend contained contains=@Pod + +" A bunch of useful C keywords +syn keyword	cStatement	goto break return continue asm +syn keyword	cLabel		case default +syn keyword	cConditional	if else switch +syn keyword	cRepeat		while for do + +syn keyword	cTodo		contained TODO FIXME XXX + +" cCommentGroup allows adding matches for special things in comments +syn cluster	cCommentGroup	contains=cTodo + +" String and Character constants +" Highlight special characters (those which have a backslash) differently +syn match	cSpecial	display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)" +if !exists("c_no_utf") +  syn match	cSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)" +endif +if exists("c_no_cformat") +  syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial +  " cCppString: same as cString, but ends at end of line +  syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial +else +  syn match	cFormat		display "%\(\d\+\$\)\=[-+' #0*]*\(\d*\|\*\|\*\d\+\$\)\(\.\(\d*\|\*\|\*\d\+\$\)\)\=\([hlL]\|ll\)\=\([diuoxXDOUfeEgGcCsSpn]\|\[\^\=.[^]]*\]\)" contained +  syn match	cFormat		display "%%" contained +  syn region	cString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=cSpecial,cFormat +  " cCppString: same as cString, but ends at end of line +  syn region	cCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=cSpecial,cFormat +endif + +syn match	cCharacter	"L\='[^\\]'" +syn match	cCharacter	"L'[^']*'" contains=cSpecial +if exists("c_gnu") +  syn match	cSpecialError	"L\='\\[^'\"?\\abefnrtv]'" +  syn match	cSpecialCharacter "L\='\\['\"?\\abefnrtv]'" +else +  syn match	cSpecialError	"L\='\\[^'\"?\\abfnrtv]'" +  syn match	cSpecialCharacter "L\='\\['\"?\\abfnrtv]'" +endif +syn match	cSpecialCharacter display "L\='\\\o\{1,3}'" +syn match	cSpecialCharacter display "'\\x\x\{1,2}'" +syn match	cSpecialCharacter display "L'\\x\x\+'" + +"when wanted, highlight trailing white space +if exists("c_space_errors") +  if !exists("c_no_trail_space_error") +    syn match	cSpaceError	display excludenl "\s\+$" +  endif +  if !exists("c_no_tab_space_error") +    syn match	cSpaceError	display " \+\t"me=e-1 +  endif +endif + +"catch errors caused by wrong parenthesis and brackets +" also accept <% for {, %> for }, <: for [ and :> for ] (C99) +syn cluster	cParenGroup	contains=cParenError,cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cCommentSkip,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom +if exists("c_no_bracket_error") +  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cCppString +  " cCppParen: same as cParen but ends at end-of-line; used in cDefine +  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cParen,cString +  syn match	cParenError	display ")" +  syn match	cErrInParen	display contained "[{}]\|<%\|%>" +else +  syn region	cParen		transparent start='(' end=')' contains=ALLBUT,@cParenGroup,cCppParen,cErrInBracket,cCppBracket,cCppString +  " cCppParen: same as cParen but ends at end-of-line; used in cDefine +  syn region	cCppParen	transparent start='(' skip='\\$' excludenl end=')' end='$' contained contains=ALLBUT,@cParenGroup,cErrInBracket,cParen,cBracket,cString +  syn match	cParenError	display "[\])]" +  syn match	cErrInParen	display contained "[\]{}]\|<%\|%>" +  syn region	cBracket	transparent start='\[\|<:' end=']\|:>' contains=ALLBUT,@cParenGroup,cErrInParen,cCppParen,cCppBracket,cCppString +  " cCppBracket: same as cParen but ends at end-of-line; used in cDefine +  syn region	cCppBracket	transparent start='\[\|<:' skip='\\$' excludenl end=']\|:>' end='$' contained contains=ALLBUT,@cParenGroup,cErrInParen,cParen,cBracket,cString +  syn match	cErrInBracket	display contained "[);{}]\|<%\|%>" +endif + +"integer number, or floating point number without a dot and with "f". +syn case ignore +syn match	cNumbers	display transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctalError,cOctal +" Same, but without octal error (for comments) +syn match	cNumbersCom	display contained transparent "\<\d\|\.\d" contains=cNumber,cFloat,cOctal +syn match	cNumber		display contained "\d\+\(u\=l\{0,2}\|ll\=u\)\>" +"hex number +syn match	cNumber		display contained "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +" Flag the first zero of an octal number as something special +syn match	cOctal		display contained "0\o\+\(u\=l\{0,2}\|ll\=u\)\>" contains=cOctalZero +syn match	cOctalZero	display contained "\<0" +syn match	cFloat		display contained "\d\+f" +"floating point number, with dot, optional exponent +syn match	cFloat		display contained "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +"floating point number, starting with a dot, optional exponent +syn match	cFloat		display contained "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +"floating point number, without dot, with exponent +syn match	cFloat		display contained "\d\+e[-+]\=\d\+[fl]\=\>" +if !exists("c_no_c99") +  "hexadecimal floating point number, optional leading digits, with dot, with exponent +  syn match	cFloat		display contained "0x\x*\.\x\+p[-+]\=\d\+[fl]\=\>" +  "hexadecimal floating point number, with leading digits, optional dot, with exponent +  syn match	cFloat		display contained "0x\x\+\.\=p[-+]\=\d\+[fl]\=\>" +endif + +" flag an octal number with wrong digits +syn match	cOctalError	display contained "0\o*[89]\d*" +syn case match + +if exists("c_comment_strings") +  " A comment can contain cString, cCharacter and cNumber. +  " But a "*/" inside a cString in a cComment DOES end the comment!  So we +  " need to use a special type of cString: cCommentString, which also ends on +  " "*/", and sees a "*" at the start of the line as comment again. +  " Unfortunately this doesn't very well work for // type of comments :-( +  syntax match	cCommentSkip	contained "^\s*\*\($\|\s\+\)" +  syntax region cCommentString	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=cSpecial,cCommentSkip +  syntax region cComment2String	contained start=+L\=\\\@<!"+ skip=+\\\\\|\\"+ end=+"+ end="$" contains=cSpecial +  syntax region  cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cComment2String,cCharacter,cNumbersCom,cSpaceError +  syntax region cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cCommentString,cCharacter,cNumbersCom,cSpaceError,pmcPOD +else +  syn region	cCommentL	start="//" skip="\\$" end="$" keepend contains=@cCommentGroup,cSpaceError +  syn region	cComment	matchgroup=cCommentStart start="/\*" end="\*/" contains=@cCommentGroup,cCommentStartError,cSpaceError,pmcPOD +endif +" keep a // comment separately, it terminates a preproc. conditional +syntax match	cCommentError	display "\*/" +syntax match	cCommentStartError display "/\*"me=e-1 contained + +syn keyword	cOperator	sizeof +if exists("c_gnu") +  syn keyword	cStatement	__asm__ +  syn keyword	cOperator	typeof __real__ __imag__ +endif +syn keyword	cType		int long short char void +syn keyword	cType		signed unsigned float double +if !exists("c_no_ansi") || exists("c_ansi_typedefs") +  syn keyword   cType		size_t ssize_t wchar_t ptrdiff_t sig_atomic_t fpos_t +  syn keyword   cType		clock_t time_t va_list jmp_buf FILE DIR div_t ldiv_t +  syn keyword   cType		mbstate_t wctrans_t wint_t wctype_t +endif +if !exists("c_no_c99") " ISO C99 +  syn keyword	cType		bool complex +  syn keyword	cType		int8_t int16_t int32_t int64_t +  syn keyword	cType		uint8_t uint16_t uint32_t uint64_t +  syn keyword	cType		int_least8_t int_least16_t int_least32_t int_least64_t +  syn keyword	cType		uint_least8_t uint_least16_t uint_least32_t uint_least64_t +  syn keyword	cType		int_fast8_t int_fast16_t int_fast32_t int_fast64_t +  syn keyword	cType		uint_fast8_t uint_fast16_t uint_fast32_t uint_fast64_t +  syn keyword	cType		intptr_t uintptr_t +  syn keyword	cType		intmax_t uintmax_t +endif +if exists("c_gnu") +  syn keyword	cType		__label__ __complex__ __volatile__ +endif + +syn keyword	cStructure	struct union enum typedef +syn keyword	cStorageClass	static register auto volatile extern const +if exists("c_gnu") +  syn keyword	cStorageClass	inline __attribute__ +endif +if !exists("c_no_c99") +  syn keyword	cStorageClass	inline restrict +endif + +if !exists("c_no_ansi") || exists("c_ansi_constants") || exists("c_gnu") +  if exists("c_gnu") +    syn keyword cConstant __GNUC__ __FUNCTION__ __PRETTY_FUNCTION__ +  endif +  syn keyword cConstant __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ +  syn keyword cConstant __STDC_VERSION__ +  syn keyword cConstant CHAR_BIT MB_LEN_MAX MB_CUR_MAX +  syn keyword cConstant UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX +  syn keyword cConstant CHAR_MIN INT_MIN LONG_MIN SHRT_MIN +  syn keyword cConstant CHAR_MAX INT_MAX LONG_MAX SHRT_MAX +  syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN +  syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX +  if !exists("c_no_c99") +    syn keyword cConstant LLONG_MAX ULLONG_MAX +    syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN +    syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX +    syn keyword cConstant UINT8_MAX UINT16_MAX UINT32_MAX UINT64_MAX +    syn keyword cConstant INT_LEAST8_MIN INT_LEAST16_MIN INT_LEAST32_MIN INT_LEAST64_MIN +    syn keyword cConstant INT_LEAST8_MAX INT_LEAST16_MAX INT_LEAST32_MAX INT_LEAST64_MAX +    syn keyword cConstant UINT_LEAST8_MAX UINT_LEAST16_MAX UINT_LEAST32_MAX UINT_LEAST64_MAX +    syn keyword cConstant INT_FAST8_MIN INT_FAST16_MIN INT_FAST32_MIN INT_FAST64_MIN +    syn keyword cConstant INT_FAST8_MAX INT_FAST16_MAX INT_FAST32_MAX INT_FAST64_MAX +    syn keyword cConstant UINT_FAST8_MAX UINT_FAST16_MAX UINT_FAST32_MAX UINT_FAST64_MAX +    syn keyword cConstant INTPTR_MIN INTPTR_MAX UINTPTR_MAX +    syn keyword cConstant INTMAX_MIN INTMAX_MAX UINTMAX_MAX +    syn keyword cConstant PTRDIFF_MIN PTRDIFF_MAX SIG_ATOMIC_MIN SIG_ATOMIC_MAX +    syn keyword cConstant SIZE_MAX WCHAR_MIN WCHAR_MAX WINT_MIN WINT_MAX +  endif +  syn keyword cConstant FLT_RADIX FLT_ROUNDS +  syn keyword cConstant FLT_DIG FLT_MANT_DIG FLT_EPSILON +  syn keyword cConstant DBL_DIG DBL_MANT_DIG DBL_EPSILON +  syn keyword cConstant LDBL_DIG LDBL_MANT_DIG LDBL_EPSILON +  syn keyword cConstant FLT_MIN FLT_MAX FLT_MIN_EXP FLT_MAX_EXP +  syn keyword cConstant FLT_MIN_10_EXP FLT_MAX_10_EXP +  syn keyword cConstant DBL_MIN DBL_MAX DBL_MIN_EXP DBL_MAX_EXP +  syn keyword cConstant DBL_MIN_10_EXP DBL_MAX_10_EXP +  syn keyword cConstant LDBL_MIN LDBL_MAX LDBL_MIN_EXP LDBL_MAX_EXP +  syn keyword cConstant LDBL_MIN_10_EXP LDBL_MAX_10_EXP +  syn keyword cConstant HUGE_VAL CLOCKS_PER_SEC NULL +  syn keyword cConstant LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY +  syn keyword cConstant LC_NUMERIC LC_TIME +  syn keyword cConstant SIG_DFL SIG_ERR SIG_IGN +  syn keyword cConstant SIGABRT SIGFPE SIGILL SIGHUP SIGINT SIGSEGV SIGTERM +  " Add POSIX signals as well... +  syn keyword cConstant SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP +  syn keyword cConstant SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV +  syn keyword cConstant SIGSTOP SIGTERM SIGTRAP SIGTSTP SIGTTIN SIGTTOU +  syn keyword cConstant SIGUSR1 SIGUSR2 +  syn keyword cConstant _IOFBF _IOLBF _IONBF BUFSIZ EOF WEOF +  syn keyword cConstant FOPEN_MAX FILENAME_MAX L_tmpnam +  syn keyword cConstant SEEK_CUR SEEK_END SEEK_SET +  syn keyword cConstant TMP_MAX stderr stdin stdout +  syn keyword cConstant EXIT_FAILURE EXIT_SUCCESS RAND_MAX +  " Add signals not mentioned above +  syn keyword cConstant SIGXCPU SIGURG SIGBUS SIGVTALRM SIGPROF SIGWINCH +  syn keyword cConstant SIGPWR SIGSYS SIGXFSZ SIGIO +  " Add POSIX errors as well +  syn keyword cConstant E2BIG EACCES EAGAIN EBADF EBADMSG EBUSY +  syn keyword cConstant ECANCELED ECHILD EDEADLK EDOM EEXIST EFAULT +  syn keyword cConstant EFBIG EILSEQ EINPROGRESS EINTR EINVAL EIO EISDIR +  syn keyword cConstant EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENFILE ENODEV +  syn keyword cConstant ENOENT ENOEXEC ENOLCK ENOMEM ENOSPC ENOSYS +  syn keyword cConstant ENOTDIR ENOTEMPTY ENOTSUP ENOTTY ENXIO EPERM +  syn keyword cConstant EPIPE ERANGE EROFS ESPIPE ESRCH ETIMEDOUT EXDEV +  " math.h +  syn keyword cConstant M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2 M_PI_4 +  syn keyword cConstant M_1_PI M_2_PI M_2_SQRTPI M_SQRT2 M_SQRT1_2 +endif +if !exists("c_no_c99") " ISO C99 +  syn keyword cConstant true false +endif + +" Accept %: for # (C99) +syn region	cPreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError +syn match	cPreCondit	display "^\s*\(%:\|#\)\s*\(else\|endif\)\>" +if !exists("c_no_if0") +  syn region	cCppOut		start="^\s*\(%:\|#\)\s*if\s\+0\+\>" end=".\@=\|$" contains=cCppOut2 +  syn region	cCppOut2	contained start="0" end="^\s*\(%:\|#\)\s*\(endif\>\|else\>\|elif\>\)" contains=cSpaceError,cCppSkip +  syn region	cCppSkip	contained start="^\s*\(%:\|#\)\s*\(if\>\|ifdef\>\|ifndef\>\)" skip="\\$" end="^\s*\(%:\|#\)\s*endif\>" contains=cSpaceError,cCppSkip +endif +syn region	cIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+ +syn match	cIncluded	display contained "<[^>]*>" +syn match	cInclude	display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded +"syn match cLineSkip	"\\$" +syn cluster	cPreProcGroup	contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti +syn region	cDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 contains=ALLBUT,@cPreProcGroup +syn region	cPreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup + +" Highlight User Labels +syn cluster	cMultiGroup	contains=cIncluded,cSpecial,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cUserCont,cUserLabel,cBitField,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cCppParen,cCppBracket,cCppString +syn region	cMulti		transparent start='?' skip='::' end=':' contains=ALLBUT,@cMultiGroup +" Avoid matching foo::bar() in C++ by requiring that the next char is not ':' +syn cluster	cLabelGroup	contains=cUserLabel +syn match	cUserCont	display "^\s*\I\i*\s*:$" contains=@cLabelGroup +syn match	cUserCont	display ";\s*\I\i*\s*:$" contains=@cLabelGroup +syn match	cUserCont	display "^\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup +syn match	cUserCont	display ";\s*\I\i*\s*:[^:]"me=e-1 contains=@cLabelGroup + +syn match	cUserLabel	display "\I\i*" contained + +" Avoid recognizing most bitfields as labels +syn match	cBitField	display "^\s*\I\i*\s*:\s*[1-9]"me=e-1 +syn match	cBitField	display ";\s*\I\i*\s*:\s*[1-9]"me=e-1 + +if exists("c_minlines") +  let b:c_minlines = c_minlines +else +  if !exists("c_no_if0") +    let b:c_minlines = 50	" #if 0 constructs can be long +  else +    let b:c_minlines = 15	" mostly for () constructs +  endif +endif +exec "syn sync ccomment cComment minlines=" . b:c_minlines + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_c_syn_inits") +  if version < 508 +    let did_c_syn_inits = 1 +    command -nargs=+ HiLink hi link <args> +  else +    command -nargs=+ HiLink hi def link <args> +  endif + +  HiLink cFormat		cSpecial +  HiLink cCppString		cString +  HiLink cCommentL		cComment +  HiLink cCommentStart		cComment +  HiLink cLabel			Label +  HiLink cUserLabel		Label +  HiLink cConditional		Conditional +  HiLink cRepeat		Repeat +  HiLink cCharacter		Character +  HiLink cSpecialCharacter	cSpecial +  HiLink cNumber		Number +  HiLink cOctal			Number +  HiLink cOctalZero		PreProc	 " link this to Error if you want +  HiLink cFloat			Float +  HiLink cOctalError		cError +  HiLink cParenError		cError +  HiLink cErrInParen		cError +  HiLink cErrInBracket		cError +  HiLink cCommentError		cError +  HiLink cCommentStartError	cError +  HiLink cSpaceError		cError +  HiLink cSpecialError		cError +  HiLink cOperator		Operator +  HiLink cStructure		Structure +  HiLink cStorageClass		StorageClass +  HiLink cInclude		Include +  HiLink cPreProc		PreProc +  HiLink cDefine		Macro +  HiLink cIncluded		cString +  HiLink cError			Error +  HiLink cStatement		Statement +  HiLink cPreCondit		PreCondit +  HiLink cType			Type +  HiLink cConstant		Constant +  HiLink cCommentString		cString +  HiLink cComment2String	cString +  HiLink cCommentSkip		cComment +  HiLink cString		String +  HiLink cComment		Comment +  HiLink cSpecial		SpecialChar +  HiLink cTodo			Todo +  HiLink cCppSkip		cCppOut +  HiLink cCppOut2		cCppOut +  HiLink cCppOut		Comment + +  delcommand HiLink +endif + +let b:current_syntax = "pmc" + +" vim: ts=8 diff --git a/syntax/ragel.vim b/syntax/ragel.vim new file mode 100644 index 0000000..10cf395 --- /dev/null +++ b/syntax/ragel.vim @@ -0,0 +1,165 @@ +" Vim syntax file +" +" Language: Ragel +" Author: Adrian Thurston + +syntax clear + +" +" Outside code +" + +" Comments +syntax region ocComment start="\/\*" end="\*\/" +syntax match ocComment "\/\/.*$" + +" Anything preprocessor +syntax match ocPreproc "#.*$" + +" Strings +syntax match ocLiteral "'\(\\.\|[^'\\]\)*'" +syntax match ocLiteral "\"\(\\.\|[^\"\\]\)*\"" + +" C/C++ Keywords +syntax keyword ocType unsigned signed void char short int long float double bool +syntax keyword ocType inline static extern register const volatile auto +syntax keyword ocType union enum struct class typedef +syntax keyword ocType namespace template typename mutable +syntax keyword ocKeyword break continue default do else for +syntax keyword ocKeyword goto if return switch while +syntax keyword ocKeyword new delete this using friend public private protected sizeof +syntax keyword ocKeyword throw try catch operator typeid +syntax keyword ocKeyword and bitor xor compl bitand and_eq or_eq xor_eq not not_eq +syntax keyword ocKeyword static_cast dynamic_cast + +" D Keywords +syntax keyword ocType wchar dchar bit byte ubyte ushort uint ulong cent ucent  +syntax keyword ocType cfloat ifloat cdouble idouble real creal ireal +syntax keyword ocKeyword abstract alias align asm assert body cast debug delegate +syntax keyword ocKeyword deprecated export final finally foreach function import in inout  +syntax keyword ocKeyword interface invariant is mixin module out override package pragma +syntax keyword ocKeyword super synchronized typeof unittest version with + +" Java Keywords +syntax keyword ocType byte short char int + +" Objective-C Directives +syntax match ocKeyword "@public\|@private\|@protected" +syntax match ocKeyword "@interface\|@implementation" +syntax match ocKeyword "@class\|@end\|@defs" +syntax match ocKeyword "@encode\|@protocol\|@selector" + +" Numbers +syntax match ocNumber "[0-9][0-9]*" +syntax match ocNumber "0x[0-9a-fA-F][0-9a-fA-F]*" + +" Booleans +syntax keyword ocBoolean true false + +" Identifiers +syntax match anyId "[a-zA-Z_][a-zA-Z_0-9]*" + +" Inline code only +syntax keyword fsmType fpc fc fcurs fbuf fblen ftargs fstack +syntax keyword fsmKeyword fhold fgoto fcall fret fentry fnext fexec fbreak + +syntax cluster rlItems contains=rlComment,rlLiteral,rlAugmentOps,rlOtherOps,rlKeywords,rlWrite,rlCodeCurly,rlCodeSemi,rlNumber,anyId,rlLabelColon,rlExprKeywords + +syntax region machineSpec1 matchgroup=beginRL start="%%{" end="}%%" contains=@rlItems +syntax region machineSpec2 matchgroup=beginRL start="%%[^{]"rs=e-1 end="$" keepend contains=@rlItems +syntax region machineSpec2 matchgroup=beginRL start="%%$" end="$" keepend contains=@rlItems + +" Comments +syntax match rlComment "#.*$" contained + +" Literals +syntax match rlLiteral "'\(\\.\|[^'\\]\)*'[i]*" contained +syntax match rlLiteral "\"\(\\.\|[^\"\\]\)*\"[i]*" contained +syntax match rlLiteral /\/\(\\.\|[^\/\\]\)*\/[i]*/ contained +syntax match rlLiteral "\[\(\\.\|[^\]\\]\)*\]" contained + +" Numbers +syntax match rlNumber "[0-9][0-9]*" contained +syntax match rlNumber "0x[0-9a-fA-F][0-9a-fA-F]*" contained + +" Operators +syntax match rlAugmentOps "[>$%@]" contained +syntax match rlAugmentOps "<>\|<" contained +syntax match rlAugmentOps "[>\<$%@][!\^/*~]" contained +syntax match rlAugmentOps "[>$%]?" contained +syntax match rlAugmentOps "<>[!\^/*~]" contained +syntax match rlAugmentOps "=>" contained +syntax match rlOtherOps "->" contained + +syntax match rlOtherOps ":>" contained +syntax match rlOtherOps ":>>" contained +syntax match rlOtherOps "<:" contained + +" Keywords +" FIXME: Enable the range keyword post 5.17. +" syntax keyword rlKeywords machine action context include range contained +syntax keyword rlKeywords machine action context include import export prepush postpop contained +syntax keyword rlExprKeywords when inwhen outwhen err lerr eof from to contained + +" Case Labels +syntax keyword caseLabelKeyword case contained +syntax cluster caseLabelItems contains=ocComment,ocPreproc,ocLiteral,ocType,ocKeyword,caseLabelKeyword,ocNumber,ocBoolean,anyId,fsmType,fsmKeyword +syntax match caseLabelColon "case" contains=@caseLabelItems +syntax match caseLabelColon "case[\t ]\+.*:$" contains=@caseLabelItems +syntax match caseLabelColon "case[\t ]\+.*:[^=:]"me=e-1 contains=@caseLabelItems + +" Labels +syntax match ocLabelColon "^[\t ]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:$" contains=anyLabel +syntax match ocLabelColon "^[\t ]*[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:[^=:]"me=e-1 contains=anyLabel + +syntax match rlLabelColon "[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:$" contained contains=anyLabel +syntax match rlLabelColon "[a-zA-Z_][a-zA-Z_0-9]*[ \t]*:[^=:>]"me=e-1 contained contains=anyLabel +syntax match anyLabel "[a-zA-Z_][a-zA-Z_0-9]*" contained + +" All items that can go in a code block. + +syntax cluster inlineItems contains=rlCodeCurly,ocComment,ocPreproc,ocLiteral,ocType,ocKeyword,ocNumber,ocBoolean,ocLabelColon,anyId,fsmType,fsmKeyword,caseLabelColon + +" Blocks of code. rlCodeCurly is recursive. +syntax region rlCodeCurly matchgroup=NONE start="{" end="}" contained contains=@inlineItems +syntax region rlCodeSemi matchgroup=Type start="\<alphtype\>" start="\<getkey\>" start="\<access\>" start="\<variable\>" matchgroup=NONE end=";" contained contains=@inlineItems + +syntax region rlWrite matchgroup=Type start="\<write\>" matchgroup=NONE end=";" contained contains=rlWriteKeywords,rlWriteOptions + +syntax keyword rlWriteKeywords init data exec eof exports contained +syntax keyword rlWriteOptions noerror nofinal noprefix noend nocs contained + +" +" Sync at the start of machine specs. +" +" Match The ragel delimiters only if there quotes no ahead on the same line. +" On the open marker, use & to consume the leader. +syntax sync match ragelSyncPat grouphere NONE "^[^\'\"%]*%%{&^[^\'\"%]*" +syntax sync match ragelSyncPat grouphere NONE "^[^\'\"%]*%%[^{]&^[^\'\"%]*" +syntax sync match ragelSyncPat grouphere NONE "^[^\'\"]*}%%" + +" +" Specifying Groups +" +hi link ocComment Comment +hi link ocPreproc Macro +hi link ocLiteral String +hi link ocType Type +hi link ocKeyword Keyword +hi link ocNumber Number +hi link ocBoolean Boolean +hi link rlComment Comment +hi link rlNumber Number +hi link rlLiteral String +hi link rlAugmentOps Keyword +hi link rlExprKeywords Keyword +hi link rlWriteKeywords Keyword +hi link rlWriteOptions Keyword +hi link rlKeywords Type +hi link fsmType Type +hi link fsmKeyword Keyword +hi link anyLabel Label +hi link caseLabelKeyword Keyword +hi link beginRL Type +  +let b:current_syntax = "ragel" diff --git a/syntax/tjp.vim b/syntax/tjp.vim new file mode 100644 index 0000000..24fa179 --- /dev/null +++ b/syntax/tjp.vim @@ -0,0 +1,706 @@ +" Vim syntax file +" Language:     TaskJuggler +" Maintainer:   TaskJuggler Developers <taskjuggler-devel@googlegroups.com> +" Last Change:  2012-01-11 21:58:17 +0100 +" This file was automatically generated by VimSyntax.rb + +if exists("b:current_syntax") +  finish +endif + +setlocal softtabstop=2 +setlocal cindent shiftwidth=2 +setlocal tabstop=2 +setlocal expandtab +setlocal cinoptions=g0,t0,+0,(0,c0,C1,n-2 +setlocal cinwords=account,accountreport,allocate,booking,columns,dailymax,dailymin,date,depends,export,extend,icalreport,include,journalentry,limits,maximum,minimum,monthlymax,monthlymin,navigator,newtask,nikureport,precedes,project,reference,resource,resourcereport,richtext,scenario,shift,status,statussheet,statussheetreport,supplement,tagfile,task,taskreport,text,textreport,timesheet,timesheetreport,weeklymax,weeklymin +setlocal cinkeys=0{,0},!^F,o,O +setlocal cindent + +syn keyword tjp_macro macro contained +syn keyword tjp_project project contained +syn keyword tjp_supplement supplement contained + +syn keyword tjp_account account contained +hi def link tjp_account Function +syn keyword tjp_accountreport accountreport contained +hi def link tjp_accountreport Function +syn keyword tjp_export export contained +hi def link tjp_export Function +syn keyword tjp_nikureport nikureport contained +hi def link tjp_nikureport Function +syn keyword tjp_resource resource contained +hi def link tjp_resource Function +syn keyword tjp_resourcereport resourcereport contained +hi def link tjp_resourcereport Function +syn keyword tjp_scenario scenario contained +hi def link tjp_scenario Function +syn keyword tjp_shift shift contained +hi def link tjp_shift Function +syn keyword tjp_statussheetreport statussheetreport contained +hi def link tjp_statussheetreport Function +syn keyword tjp_task_statussheet task contained +hi def link tjp_task_statussheet Function +syn keyword tjp_task task contained +hi def link tjp_task Function +syn keyword tjp_taskreport taskreport contained +hi def link tjp_taskreport Function +syn keyword tjp_textreport textreport contained +hi def link tjp_textreport Function +syn keyword tjp_timesheetreport timesheetreport contained +hi def link tjp_timesheetreport Function + +syn keyword tjp_aggregate aggregate contained +hi def link tjp_aggregate Type +syn keyword tjp_credits credits contained +hi def link tjp_credits Type +syn keyword tjp_flags_account flags contained +hi def link tjp_flags_account Type +syn keyword tjp_allocate allocate contained +hi def link tjp_allocate Type +syn keyword tjp_alternative alternative contained +hi def link tjp_alternative Type +syn keyword tjp_select select contained +hi def link tjp_select Type +syn keyword tjp_persistent persistent contained +hi def link tjp_persistent Type +syn keyword tjp_mandatory mandatory contained +hi def link tjp_mandatory Type +syn keyword tjp_shifts_allocate shifts contained +hi def link tjp_shifts_allocate Type +syn keyword tjp_author author contained +hi def link tjp_author Type +syn keyword tjp_balance balance +hi def link tjp_balance Type +syn keyword tjp_overtime_booking overtime contained +hi def link tjp_overtime_booking Type +syn keyword tjp_sloppy_booking sloppy contained +hi def link tjp_sloppy_booking Type +syn keyword tjp_chargeset chargeset contained +hi def link tjp_chargeset Type +syn keyword tjp_columnid_annualleave annualleave +hi def link tjp_columnid_annualleave Type +syn keyword tjp_columnid_annualleavebalance annualleavebalance +hi def link tjp_columnid_annualleavebalance Type +syn keyword tjp_columnid_alert alert +hi def link tjp_columnid_alert Type +syn keyword tjp_columnid_alertmessages alertmessages +hi def link tjp_columnid_alertmessages Type +syn keyword tjp_columnid_alertsummaries alertsummaries +hi def link tjp_columnid_alertsummaries Type +syn keyword tjp_columnid_alerttrend alerttrend +hi def link tjp_columnid_alerttrend Type +syn keyword tjp_columnid_balance balance +hi def link tjp_columnid_balance Type +syn keyword tjp_columnid_bsi bsi +hi def link tjp_columnid_bsi Type +syn keyword tjp_columnid_chart chart +hi def link tjp_columnid_chart Type +syn keyword tjp_columnid_complete complete +hi def link tjp_columnid_complete Type +syn keyword tjp_columnid_completed completed +hi def link tjp_columnid_completed Type +syn keyword tjp_columnid_criticalness criticalness +hi def link tjp_columnid_criticalness Type +syn keyword tjp_columnid_cost cost +hi def link tjp_columnid_cost Type +syn keyword tjp_columnid_daily daily +hi def link tjp_columnid_daily Type +syn keyword tjp_columnid_directreports directreports +hi def link tjp_columnid_directreports Type +syn keyword tjp_columnid_duration duration +hi def link tjp_columnid_duration Type +syn keyword tjp_columnid_duties duties +hi def link tjp_columnid_duties Type +syn keyword tjp_columnid_efficiency efficiency +hi def link tjp_columnid_efficiency Type +syn keyword tjp_columnid_effort effort +hi def link tjp_columnid_effort Type +syn keyword tjp_columnid_effortdone effortdone +hi def link tjp_columnid_effortdone Type +syn keyword tjp_columnid_effortleft effortleft +hi def link tjp_columnid_effortleft Type +syn keyword tjp_columnid_email email +hi def link tjp_columnid_email Type +syn keyword tjp_columnid_end end +hi def link tjp_columnid_end Type +syn keyword tjp_columnid_flags flags +hi def link tjp_columnid_flags Type +syn keyword tjp_columnid_followers followers +hi def link tjp_columnid_followers Type +syn keyword tjp_columnid_freetime freetime +hi def link tjp_columnid_freetime Type +syn keyword tjp_columnid_freework freework +hi def link tjp_columnid_freework Type +syn keyword tjp_columnid_fte fte +hi def link tjp_columnid_fte Type +syn keyword tjp_columnid_gauge gauge +hi def link tjp_columnid_gauge Type +syn keyword tjp_columnid_headcount headcount +hi def link tjp_columnid_headcount Type +syn keyword tjp_columnid_hierarchindex hierarchindex +hi def link tjp_columnid_hierarchindex Type +syn keyword tjp_columnid_hourly hourly +hi def link tjp_columnid_hourly Type +syn keyword tjp_columnid_id id +hi def link tjp_columnid_id Type +syn keyword tjp_columnid_index index +hi def link tjp_columnid_index Type +syn keyword tjp_columnid_inputs inputs +hi def link tjp_columnid_inputs Type +syn keyword tjp_columnid_journal journal +hi def link tjp_columnid_journal Type +syn keyword tjp_columnid_journal_sub journal_sub +hi def link tjp_columnid_journal_sub Type +syn keyword tjp_columnid_journalmessages journalmessages +hi def link tjp_columnid_journalmessages Type +syn keyword tjp_columnid_journalsummaries journalsummaries +hi def link tjp_columnid_journalsummaries Type +syn keyword tjp_columnid_line line +hi def link tjp_columnid_line Type +syn keyword tjp_columnid_managers managers +hi def link tjp_columnid_managers Type +syn keyword tjp_columnid_maxend maxend +hi def link tjp_columnid_maxend Type +syn keyword tjp_columnid_maxstart maxstart +hi def link tjp_columnid_maxstart Type +syn keyword tjp_columnid_minend minend +hi def link tjp_columnid_minend Type +syn keyword tjp_columnid_minstart minstart +hi def link tjp_columnid_minstart Type +syn keyword tjp_columnid_monthly monthly +hi def link tjp_columnid_monthly Type +syn keyword tjp_columnid_no no +hi def link tjp_columnid_no Type +syn keyword tjp_columnid_name name +hi def link tjp_columnid_name Type +syn keyword tjp_columnid_note note +hi def link tjp_columnid_note Type +syn keyword tjp_columnid_pathcriticalness pathcriticalness +hi def link tjp_columnid_pathcriticalness Type +syn keyword tjp_columnid_precursors precursors +hi def link tjp_columnid_precursors Type +syn keyword tjp_columnid_priority priority +hi def link tjp_columnid_priority Type +syn keyword tjp_columnid_quarterly quarterly +hi def link tjp_columnid_quarterly Type +syn keyword tjp_columnid_rate rate +hi def link tjp_columnid_rate Type +syn keyword tjp_columnid_reports reports +hi def link tjp_columnid_reports Type +syn keyword tjp_columnid_resources resources +hi def link tjp_columnid_resources Type +syn keyword tjp_columnid_responsible responsible +hi def link tjp_columnid_responsible Type +syn keyword tjp_columnid_revenue revenue +hi def link tjp_columnid_revenue Type +syn keyword tjp_columnid_scenario scenario +hi def link tjp_columnid_scenario Type +syn keyword tjp_columnid_seqno seqno +hi def link tjp_columnid_seqno Type +syn keyword tjp_columnid_sickleave sickleave +hi def link tjp_columnid_sickleave Type +syn keyword tjp_columnid_specialleave specialleave +hi def link tjp_columnid_specialleave Type +syn keyword tjp_columnid_start start +hi def link tjp_columnid_start Type +syn keyword tjp_columnid_status status +hi def link tjp_columnid_status Type +syn keyword tjp_columnid_targets targets +hi def link tjp_columnid_targets Type +syn keyword tjp_columnid_wbs wbs +hi def link tjp_columnid_wbs Type +syn keyword tjp_columnid_unpaidleave unpaidleave +hi def link tjp_columnid_unpaidleave Type +syn keyword tjp_columnid_weekly weekly +hi def link tjp_columnid_weekly Type +syn keyword tjp_columnid_yearly yearly +hi def link tjp_columnid_yearly Type +syn keyword tjp_celltext_column celltext contained +hi def link tjp_celltext_column Type +syn keyword tjp_cellcolor_column cellcolor contained +hi def link tjp_cellcolor_column Type +syn keyword tjp_end_column end contained +hi def link tjp_end_column Type +syn keyword tjp_fontcolor_column fontcolor contained +hi def link tjp_fontcolor_column Type +syn keyword tjp_halign_column halign contained +hi def link tjp_halign_column Type +syn keyword tjp_listitem_column listitem contained +hi def link tjp_listitem_column Type +syn keyword tjp_listtype_column listtype contained +hi def link tjp_listtype_column Type +syn keyword tjp_period_column period contained +hi def link tjp_period_column Type +syn keyword tjp_scale_column scale contained +hi def link tjp_scale_column Type +syn keyword tjp_start_column start contained +hi def link tjp_start_column Type +syn keyword tjp_title_column title contained +hi def link tjp_title_column Type +syn keyword tjp_tooltip_column tooltip contained +hi def link tjp_tooltip_column Type +syn keyword tjp_width_column width contained +hi def link tjp_width_column Type +syn keyword tjp_currencyformat currencyformat contained +hi def link tjp_currencyformat Type +syn keyword tjp_details details contained +hi def link tjp_details Type +syn keyword tjp_definitions definitions contained +hi def link tjp_definitions Type +syn keyword tjp_resourceattributes resourceattributes contained +hi def link tjp_resourceattributes Type +syn keyword tjp_scenarios_export scenarios contained +hi def link tjp_scenarios_export Type +syn keyword tjp_taskattributes taskattributes contained +hi def link tjp_taskattributes Type +syn keyword tjp_timezone_export timezone contained +hi def link tjp_timezone_export Type +syn keyword tjp_date_extend date contained +hi def link tjp_date_extend Type +syn keyword tjp_reference_extend reference contained +hi def link tjp_reference_extend Type +syn keyword tjp_richtext_extend richtext contained +hi def link tjp_richtext_extend Type +syn keyword tjp_text_extend text contained +hi def link tjp_text_extend Type +syn keyword tjp_inherit_extend inherit contained +hi def link tjp_inherit_extend Type +syn keyword tjp_scenariospecific_extend scenariospecific contained +hi def link tjp_scenariospecific_extend Type +syn keyword tjp_fail fail contained +hi def link tjp_fail Type +syn keyword tjp_formats formats contained +hi def link tjp_formats Type +syn keyword tjp_hasalert hasalert contained +hi def link tjp_hasalert Type +syn keyword tjp_isactive isactive contained +hi def link tjp_isactive Type +syn keyword tjp_ischildof ischildof contained +hi def link tjp_ischildof Type +syn keyword tjp_isdependencyof isdependencyof contained +hi def link tjp_isdependencyof Type +syn keyword tjp_isdutyof isdutyof contained +hi def link tjp_isdutyof Type +syn keyword tjp_isfeatureof isfeatureof contained +hi def link tjp_isfeatureof Type +syn keyword tjp_isleaf isleaf contained +hi def link tjp_isleaf Type +syn keyword tjp_ismilestone ismilestone contained +hi def link tjp_ismilestone Type +syn keyword tjp_isongoing isongoing contained +hi def link tjp_isongoing Type +syn keyword tjp_isresource isresource contained +hi def link tjp_isresource Type +syn keyword tjp_isresponsibilityof isresponsibilityof contained +hi def link tjp_isresponsibilityof Type +syn keyword tjp_istask istask contained +hi def link tjp_istask Type +syn keyword tjp_treelevel treelevel contained +hi def link tjp_treelevel Type +syn keyword tjp_halign_center center +hi def link tjp_halign_center Type +syn keyword tjp_halign_left left +hi def link tjp_halign_left Type +syn keyword tjp_halign_right right +hi def link tjp_halign_right Type +syn keyword tjp_headline headline contained +hi def link tjp_headline Type +syn keyword tjp_hideaccount hideaccount contained +hi def link tjp_hideaccount Type +syn keyword tjp_hidejournalentry hidejournalentry contained +hi def link tjp_hidejournalentry Type +syn keyword tjp_hideresource hideresource contained +hi def link tjp_hideresource Type +syn keyword tjp_hidetask hidetask contained +hi def link tjp_hidetask Type +syn keyword tjp_icalreport icalreport contained +hi def link tjp_icalreport Type +syn keyword tjp_scenario_ical scenario contained +hi def link tjp_scenario_ical Type +syn keyword tjp_accountprefix accountprefix contained +hi def link tjp_accountprefix Type +syn keyword tjp_reportprefix reportprefix contained +hi def link tjp_reportprefix Type +syn keyword tjp_resourceprefix resourceprefix contained +hi def link tjp_resourceprefix Type +syn keyword tjp_taskprefix taskprefix contained +hi def link tjp_taskprefix Type +syn keyword tjp_journalattributes journalattributes contained +hi def link tjp_journalattributes Type +syn keyword tjp_journalentry journalentry contained +hi def link tjp_journalentry Type +syn keyword tjp_alert alert contained +hi def link tjp_alert Type +syn keyword tjp_flags_journalentry flags contained +hi def link tjp_flags_journalentry Type +syn keyword tjp_leaveallowance leaveallowances contained +hi def link tjp_leaveallowance Type +syn keyword tjp_leaves leaves +hi def link tjp_leaves Type +syn keyword tjp_end_limit end contained +hi def link tjp_end_limit Type +syn keyword tjp_period_limit period contained +hi def link tjp_period_limit Type +syn keyword tjp_resources_limit resources contained +hi def link tjp_resources_limit Type +syn keyword tjp_start_limit start contained +hi def link tjp_start_limit Type +syn keyword tjp_dailymax dailymax contained +hi def link tjp_dailymax Type +syn keyword tjp_dailymin dailymin contained +hi def link tjp_dailymin Type +syn keyword tjp_maximum maximum contained +hi def link tjp_maximum Type +syn keyword tjp_minimum minimum contained +hi def link tjp_minimum Type +syn keyword tjp_monthlymax monthlymax contained +hi def link tjp_monthlymax Type +syn keyword tjp_monthlymin monthlymin contained +hi def link tjp_monthlymin Type +syn keyword tjp_weeklymax weeklymax contained +hi def link tjp_weeklymax Type +syn keyword tjp_weeklymin weeklymin contained +hi def link tjp_weeklymin Type +syn keyword tjp_navigator navigator contained +hi def link tjp_navigator Type +syn keyword tjp_hidereport hidereport contained +hi def link tjp_hidereport Type +syn keyword tjp_timeoff_nikureport timeoff contained +hi def link tjp_timeoff_nikureport Type +syn keyword tjp_numberformat numberformat contained +hi def link tjp_numberformat Type +syn keyword tjp_alertlevels alertlevels contained +hi def link tjp_alertlevels Type +syn keyword tjp_currency currency contained +hi def link tjp_currency Type +syn keyword tjp_dailyworkinghours dailyworkinghours contained +hi def link tjp_dailyworkinghours Type +syn keyword tjp_extend extend contained +hi def link tjp_extend Type +syn keyword tjp_now now contained +hi def link tjp_now Type +syn keyword tjp_shorttimeformat shorttimeformat contained +hi def link tjp_shorttimeformat Type +syn keyword tjp_timingresolution timingresolution contained +hi def link tjp_timingresolution Type +syn keyword tjp_trackingscenario trackingscenario contained +hi def link tjp_trackingscenario Type +syn keyword tjp_weekstartsmonday weekstartsmonday contained +hi def link tjp_weekstartsmonday Type +syn keyword tjp_weekstartssunday weekstartssunday contained +hi def link tjp_weekstartssunday Type +syn keyword tjp_yearlyworkingdays yearlyworkingdays contained +hi def link tjp_yearlyworkingdays Type +syn keyword tjp_copyright copyright +hi def link tjp_copyright Type +syn keyword tjp_flags flags +hi def link tjp_flags Type +syn keyword tjp_limits limits contained +hi def link tjp_limits Type +syn keyword tjp_projectid projectid +hi def link tjp_projectid Type +syn keyword tjp_projectids projectids +hi def link tjp_projectids Type +syn keyword tjp_rate rate +hi def link tjp_rate Type +syn keyword tjp_vacation vacation +hi def link tjp_vacation Type +syn keyword tjp_purge purge contained +hi def link tjp_purge Type +syn keyword tjp_accountroot accountroot contained +hi def link tjp_accountroot Type +syn keyword tjp_caption caption contained +hi def link tjp_caption Type +syn keyword tjp_center center contained +hi def link tjp_center Type +syn keyword tjp_columns columns contained +hi def link tjp_columns Type +syn keyword tjp_epilog epilog contained +hi def link tjp_epilog Type +syn keyword tjp_flags_report flags contained +hi def link tjp_flags_report Type +syn keyword tjp_footer footer contained +hi def link tjp_footer Type +syn keyword tjp_header header contained +hi def link tjp_header Type +syn keyword tjp_journalmode journalmode contained +hi def link tjp_journalmode Type +syn keyword tjp_left left contained +hi def link tjp_left Type +syn keyword tjp_loadunit loadunit contained +hi def link tjp_loadunit Type +syn keyword tjp_opennodes opennodes contained +hi def link tjp_opennodes Type +syn keyword tjp_prolog prolog contained +hi def link tjp_prolog Type +syn keyword tjp_right right contained +hi def link tjp_right Type +syn keyword tjp_scenarios scenarios contained +hi def link tjp_scenarios Type +syn keyword tjp_selfcontained selfcontained contained +hi def link tjp_selfcontained Type +syn keyword tjp_resourceroot resourceroot contained +hi def link tjp_resourceroot Type +syn keyword tjp_taskroot taskroot contained +hi def link tjp_taskroot Type +syn keyword tjp_timezone_report timezone contained +hi def link tjp_timezone_report Type +syn keyword tjp_end_report end contained +hi def link tjp_end_report Type +syn keyword tjp_period_report period contained +hi def link tjp_period_report Type +syn keyword tjp_start_report start contained +hi def link tjp_start_report Type +syn keyword tjp_title title contained +hi def link tjp_title Type +syn keyword tjp_email email contained +hi def link tjp_email Type +syn keyword tjp_efficiency efficiency contained +hi def link tjp_efficiency Type +syn keyword tjp_flags_resource flags contained +hi def link tjp_flags_resource Type +syn keyword tjp_booking_resource booking contained +hi def link tjp_booking_resource Type +syn keyword tjp_limits_resource limits contained +hi def link tjp_limits_resource Type +syn keyword tjp_managers managers contained +hi def link tjp_managers Type +syn keyword tjp_rate_resource rate contained +hi def link tjp_rate_resource Type +syn keyword tjp_shifts_resource shifts contained +hi def link tjp_shifts_resource Type +syn keyword tjp_vacation_resource vacation contained +hi def link tjp_vacation_resource Type +syn keyword tjp_rollupaccount rollupaccount contained +hi def link tjp_rollupaccount Type +syn keyword tjp_rollupresource rollupresource contained +hi def link tjp_rollupresource Type +syn keyword tjp_rolluptask rolluptask contained +hi def link tjp_rolluptask Type +syn keyword tjp_active active contained +hi def link tjp_active Type +syn keyword tjp_replace replace contained +hi def link tjp_replace Type +syn keyword tjp_timezone_shift timezone contained +hi def link tjp_timezone_shift Type +syn keyword tjp_vacation_shift vacation contained +hi def link tjp_vacation_shift Type +syn keyword tjp_sortjournalentries sortjournalentries contained +hi def link tjp_sortjournalentries Type +syn keyword tjp_sortaccounts sortaccounts contained +hi def link tjp_sortaccounts Type +syn keyword tjp_sortresources sortresources contained +hi def link tjp_sortresources Type +syn keyword tjp_sorttasks sorttasks contained +hi def link tjp_sorttasks Type +syn keyword tjp_flags_statussheet flags contained +hi def link tjp_flags_statussheet Type +syn keyword tjp_status_statussheet status contained +hi def link tjp_status_statussheet Type +syn keyword tjp_statussheet statussheet contained +hi def link tjp_statussheet Type +syn keyword tjp_summary summary contained +hi def link tjp_summary Type +syn keyword tjp_tagfile tagfile contained +hi def link tjp_tagfile Type +syn keyword tjp_adopt_task adopt contained +hi def link tjp_adopt_task Type +syn keyword tjp_note_task note contained +hi def link tjp_note_task Type +syn keyword tjp_gapduration gapduration contained +hi def link tjp_gapduration Type +syn keyword tjp_gaplength gaplength contained +hi def link tjp_gaplength Type +syn keyword tjp_onend onend contained +hi def link tjp_onend Type +syn keyword tjp_onstart onstart contained +hi def link tjp_onstart Type +syn keyword tjp_period_task period contained +hi def link tjp_period_task Type +syn keyword tjp_booking_task booking contained +hi def link tjp_booking_task Type +syn keyword tjp_charge charge contained +hi def link tjp_charge Type +syn keyword tjp_complete complete contained +hi def link tjp_complete Type +syn keyword tjp_depends depends contained +hi def link tjp_depends Type +syn keyword tjp_duration duration contained +hi def link tjp_duration Type +syn keyword tjp_effort effort contained +hi def link tjp_effort Type +syn keyword tjp_end end contained +hi def link tjp_end Type +syn keyword tjp_flags_task flags contained +hi def link tjp_flags_task Type +syn keyword tjp_length length contained +hi def link tjp_length Type +syn keyword tjp_limits_task limits contained +hi def link tjp_limits_task Type +syn keyword tjp_maxend maxend contained +hi def link tjp_maxend Type +syn keyword tjp_maxstart maxstart contained +hi def link tjp_maxstart Type +syn keyword tjp_milestone milestone contained +hi def link tjp_milestone Type +syn keyword tjp_minend minend contained +hi def link tjp_minend Type +syn keyword tjp_minstart minstart contained +hi def link tjp_minstart Type +syn keyword tjp_precedes precedes contained +hi def link tjp_precedes Type +syn keyword tjp_priority priority contained +hi def link tjp_priority Type +syn keyword tjp_projectid_task projectid contained +hi def link tjp_projectid_task Type +syn keyword tjp_responsible responsible contained +hi def link tjp_responsible Type +syn keyword tjp_scheduled scheduled contained +hi def link tjp_scheduled Type +syn keyword tjp_scheduling scheduling contained +hi def link tjp_scheduling Type +syn keyword tjp_shifts_task shifts contained +hi def link tjp_shifts_task Type +syn keyword tjp_start start contained +hi def link tjp_start Type +syn keyword tjp_timeformat timeformat contained +hi def link tjp_timeformat Type +syn keyword tjp_timesheet timesheet contained +hi def link tjp_timesheet Type +syn keyword tjp_newtask newtask contained +hi def link tjp_newtask Type +syn keyword tjp_shift_timesheet shift contained +hi def link tjp_shift_timesheet Type +syn keyword tjp_task_timesheet task contained +hi def link tjp_task_timesheet Type +syn keyword tjp_timezone timezone contained +hi def link tjp_timezone Type +syn keyword tjp_flags_timesheet flags contained +hi def link tjp_flags_timesheet Type +syn keyword tjp_status_timesheet status contained +hi def link tjp_status_timesheet Type +syn keyword tjp_end_timesheet end contained +hi def link tjp_end_timesheet Type +syn keyword tjp_priority_timesheet priority contained +hi def link tjp_priority_timesheet Type +syn keyword tjp_remaining remaining contained +hi def link tjp_remaining Type +syn keyword tjp_work work contained +hi def link tjp_work Type +syn keyword tjp_warn warn contained +hi def link tjp_warn Type +syn keyword tjp_workinghours_project workinghours contained +hi def link tjp_workinghours_project Type +syn keyword tjp_workinghours_resource workinghours contained +hi def link tjp_workinghours_resource Type +syn keyword tjp_workinghours_shift workinghours contained +hi def link tjp_workinghours_shift Type + +syn match tjparg contained /\${.*}/ +syn match tjpcomment /#.*$/ +syn match tjpcomment "//.*$" +syn match tjpinclude /include.*$/ +syn match tjpnumber /\s[-+]\?\d\+\(\.\d\+\)\?\([hdwmy]\|min\)\?/ +syn match tjpdate /\s\d\{4}-\d\{1,2}-\d\{1,2}\(-\d\{1,2}:\d\{1,2}\(:\d\{1,2}\)\?\(-[-+]\?\d\{4}\)\?\)\?/ +syn match tjptime /\s\d\{1,2}:\d\d\(:\d\d\)\?/ + +syn cluster tjpcommon contains=tjpcomment,tjpdate,tjptime,tjpstring,tjpnumber +syn region tjpblk_account start=/^\s*account\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_account,tjp_account,tjpblk_account,tjp_aggregate,tjp_credits,tjp_flags_account +syn region tjpblk_accountreport start=/^\s*accountreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_accountreport,tjp_accountroot,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_accountreport,tjpblk_accountreport,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title +syn region tjpblk_allocate start=/^\s*allocate\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_allocate,tjp_alternative,tjp_select,tjp_persistent,tjp_mandatory,tjp_shifts_allocate contained +syn region tjpblk_export start=/^\s*export\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_export,tjp_definitions,tjp_hideresource,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_resourceattributes,tjp_rollupresource,tjp_rolluptask,tjp_scenarios_export,tjp_taskattributes,tjp_timezone_export +syn region tjpblk_date_extend start=/^\s*date\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_date_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained +syn region tjpblk_reference_extend start=/^\s*reference\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_reference_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained +syn region tjpblk_richtext_extend start=/^\s*richtext\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_richtext_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained +syn region tjpblk_text_extend start=/^\s*text\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_text_extend,tjp_inherit_extend,tjp_scenariospecific_extend contained +syn region tjpblk_icalreport start=/^\s*icalreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_icalreport,tjp_hideresource,tjp_hidejournalentry,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_rollupresource,tjp_rolluptask,tjp_scenario_ical +syn region tjpblk_journalentry start=/^\s*journalentry\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_journalentry,tjp_alert,tjp_author,tjp_flags_journalentry,tjp_summary,tjp_details contained +syn region tjpblk_dailymax start=/^\s*dailymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_dailymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_dailymin start=/^\s*dailymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_dailymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_maximum start=/^\s*maximum\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_maximum,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_minimum start=/^\s*minimum\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_minimum,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_monthlymax start=/^\s*monthlymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_monthlymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_monthlymin start=/^\s*monthlymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_monthlymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_weeklymax start=/^\s*weeklymax\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_weeklymax,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_weeklymin start=/^\s*weeklymin\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_weeklymin,tjp_end_limit,tjp_period_limit,tjp_resources_limit,tjp_start_limit contained +syn region tjpblk_navigator start=/^\s*navigator\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_navigator,tjp_hidereport +syn region tjpblk_nikureport start=/^\s*nikureport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_nikureport,tjp_formats,tjp_headline,tjp_hideresource,tjp_hidetask,tjp_numberformat,tjp_end_report,tjp_period_report,tjp_start_report,tjp_title,tjp_timeoff_nikureport +syn region tjpblk_extend start=/^\s*extend\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_extend,tjp_date_extend,tjpblk_date_extend,tjp_reference_extend,tjpblk_reference_extend,tjp_richtext_extend,tjpblk_richtext_extend,tjp_text_extend,tjpblk_text_extend contained +syn region tjpblk_project start=/^\s*project\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_project,tjp_alertlevels,tjp_currencyformat,tjp_currency,tjp_dailyworkinghours,tjp_extend,tjpblk_extend,tjp_include_project,tjp_journalentry,tjpblk_journalentry,tjp_now,tjp_numberformat,tjp_scenario,tjpblk_scenario,tjp_shorttimeformat,tjp_timeformat,tjp_timezone,tjp_timingresolution,tjp_trackingscenario,tjp_weekstartsmonday,tjp_weekstartssunday,tjp_workinghours_project,tjp_yearlyworkingdays +syn region tjpblk_limits start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin +syn region tjpblk_include_properties start=/^\s*include\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_include_properties,tjp_accountprefix,tjp_reportprefix,tjp_resourceprefix,tjp_taskprefix +syn region tjpblk_columns start=/^\s*columns\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_columns,tjp_celltext_column,tjp_cellcolor_column,tjp_end_column,tjp_fontcolor_column,tjp_halign_column,tjp_listitem_column,tjp_listtype_column,tjp_period_column,tjp_scale_column,tjp_start_column,tjp_title_column,tjp_tooltip_column,tjp_width_column contained +syn region tjpblk_resource start=/^\s*resource\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_resource,tjp_email,tjp_journalentry,tjpblk_journalentry,tjp_purge,tjp_resource,tjpblk_resource,tjp_chargeset,tjp_efficiency,tjp_flags_resource,tjp_booking_resource,tjpblk_booking_resource,tjp_fail,tjp_leaveallowance,tjp_leaves,tjp_limits_resource,tjpblk_limits_resource,tjp_managers,tjp_rate_resource,tjp_shifts_resource,tjp_vacation_resource,tjp_warn,tjp_workinghours_resource,tjp_supplement_resource,tjpblk_supplement_resource +syn region tjpblk_supplement_resource start=/^\s*supplement resource\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_supplement_resource,tjp_email,tjp_journalentry,tjpblk_journalentry,tjp_purge,tjp_resource,tjpblk_resource,tjp_chargeset,tjp_efficiency,tjp_flags_resource,tjp_booking_resource,tjpblk_booking_resource,tjp_fail,tjp_leaveallowance,tjp_leaves,tjp_limits_resource,tjpblk_limits_resource,tjp_managers,tjp_rate_resource,tjp_shifts_resource,tjp_vacation_resource,tjp_warn,tjp_workinghours_resource,tjp_supplement_resource,tjpblk_supplement_resource,tjp_supplement contained +syn region tjpblk_resourcereport start=/^\s*resourcereport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_resourcereport,tjp_accountroot,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_accountreport,tjpblk_accountreport,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title +syn region tjpblk_booking_resource start=/^\s*booking\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_booking_resource,tjp_overtime_booking,tjp_sloppy_booking contained +syn region tjpblk_limits_resource start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits_resource,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin contained +syn region tjpblk_scenario start=/^\s*scenario\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_scenario,tjp_active,tjp_scenario,tjpblk_scenario contained +syn region tjpblk_shift start=/^\s*shift\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_shift,tjp_shift,tjpblk_shift,tjp_leaves,tjp_replace,tjp_timezone_shift,tjp_vacation_shift,tjp_workinghours_shift +syn region tjpblk_status_statussheet start=/^\s*status\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_status_statussheet,tjp_author,tjp_details,tjp_flags_statussheet,tjp_summary contained +syn region tjpblk_statussheet start=/^\s*statussheet\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_statussheet,tjp_task_statussheet,tjpblk_task_statussheet +syn region tjpblk_statussheetreport start=/^\s*statussheetreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_statussheetreport,tjp_hideresource,tjp_hidetask,tjp_end_report,tjp_period_report,tjp_start_report,tjp_sortresources,tjp_sorttasks +syn region tjpblk_task_statussheet start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task_statussheet,tjp_status_statussheet,tjpblk_status_statussheet,tjp_task_statussheet,tjpblk_task_statussheet contained +syn region tjpblk_tagfile start=/^\s*tagfile\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_tagfile,tjp_hideresource,tjp_hidetask,tjp_rollupresource,tjp_rolluptask +syn region tjpblk_task start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task,tjp_adopt_task,tjp_journalentry,tjpblk_journalentry,tjp_note_task,tjp_purge,tjp_supplement_task,tjpblk_supplement_task,tjp_task,tjpblk_task,tjp_allocate,tjpblk_allocate,tjp_booking_task,tjpblk_booking_task,tjp_charge,tjp_chargeset,tjp_complete,tjp_depends,tjpblk_depends,tjp_duration,tjp_effort,tjp_end,tjp_flags_task,tjp_fail,tjp_length,tjp_limits_task,tjpblk_limits_task,tjp_maxend,tjp_maxstart,tjp_milestone,tjp_minend,tjp_minstart,tjp_period_task,tjp_precedes,tjpblk_precedes,tjp_priority,tjp_projectid_task,tjp_responsible,tjp_scheduled,tjp_scheduling,tjp_shifts_task,tjp_start,tjp_warn +syn region tjpblk_supplement_task start=/^\s*supplement task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_supplement_task,tjp_adopt_task,tjp_journalentry,tjpblk_journalentry,tjp_note_task,tjp_purge,tjp_supplement_task,tjpblk_supplement_task,tjp_task,tjpblk_task,tjp_allocate,tjpblk_allocate,tjp_booking_task,tjpblk_booking_task,tjp_charge,tjp_chargeset,tjp_complete,tjp_depends,tjpblk_depends,tjp_duration,tjp_effort,tjp_end,tjp_flags_task,tjp_fail,tjp_length,tjp_limits_task,tjpblk_limits_task,tjp_maxend,tjp_maxstart,tjp_milestone,tjp_minend,tjp_minstart,tjp_period_task,tjp_precedes,tjpblk_precedes,tjp_priority,tjp_projectid_task,tjp_responsible,tjp_scheduled,tjp_scheduling,tjp_shifts_task,tjp_start,tjp_warn,tjp_supplement contained +syn region tjpblk_taskreport start=/^\s*taskreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_taskreport,tjp_accountroot,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_accountreport,tjpblk_accountreport,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title +syn region tjpblk_booking_task start=/^\s*booking\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_booking_task,tjp_overtime_booking,tjp_sloppy_booking contained +syn region tjpblk_depends start=/^\s*depends\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_depends,tjp_gapduration,tjp_gaplength,tjp_onend,tjp_onstart contained +syn region tjpblk_limits_task start=/^\s*limits\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_limits_task,tjp_dailymax,tjpblk_dailymax,tjp_dailymin,tjpblk_dailymin,tjp_maximum,tjpblk_maximum,tjp_minimum,tjpblk_minimum,tjp_monthlymax,tjpblk_monthlymax,tjp_monthlymin,tjpblk_monthlymin,tjp_weeklymax,tjpblk_weeklymax,tjp_weeklymin,tjpblk_weeklymin contained +syn region tjpblk_precedes start=/^\s*precedes\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_precedes,tjp_gapduration,tjp_gaplength,tjp_onend,tjp_onstart contained +syn region tjpblk_textreport start=/^\s*textreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_textreport,tjp_accountroot,tjp_balance,tjp_caption,tjp_center,tjp_columns,tjpblk_columns,tjp_currencyformat,tjp_end_report,tjp_epilog,tjp_flags_report,tjp_footer,tjp_formats,tjp_header,tjp_headline,tjp_hidejournalentry,tjp_hideaccount,tjp_hideresource,tjp_hidetask,tjp_journalattributes,tjp_journalmode,tjp_left,tjp_loadunit,tjp_numberformat,tjp_opennodes,tjp_period_report,tjp_prolog,tjp_purge,tjp_accountreport,tjpblk_accountreport,tjp_resourcereport,tjpblk_resourcereport,tjp_taskreport,tjpblk_taskreport,tjp_textreport,tjpblk_textreport,tjp_right,tjp_rollupaccount,tjp_rollupresource,tjp_rolluptask,tjp_scenarios,tjp_selfcontained,tjp_sortaccounts,tjp_sortjournalentries,tjp_sortresources,tjp_sorttasks,tjp_start_report,tjp_resourceroot,tjp_taskroot,tjp_timeformat,tjp_timezone_report,tjp_title +syn region tjpblk_timesheet start=/^\s*timesheet\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_timesheet,tjp_newtask,tjpblk_newtask,tjp_shift_timesheet,tjp_status_timesheet,tjpblk_status_timesheet,tjp_task_timesheet,tjpblk_task_timesheet +syn region tjpblk_newtask start=/^\s*newtask\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_newtask,tjp_end_timesheet,tjp_priority_timesheet,tjp_remaining,tjp_status_timesheet,tjpblk_status_timesheet,tjp_work contained +syn region tjpblk_task_timesheet start=/^\s*task\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_task_timesheet,tjp_end_timesheet,tjp_priority_timesheet,tjp_remaining,tjp_status_timesheet,tjpblk_status_timesheet,tjp_work contained +syn region tjpblk_timesheetreport start=/^\s*timesheetreport\s.*{\s*$/ end=/^\s*}\s*$/ transparent fold contains=@tjpcommon,tjp_timesheetreport,tjp_hideresource,tjp_end_report,tjp_period_report,tjp_start_report +syn region tjpblk_status_timesheet start=/^\s*status\s.*{\s*$/ end=/^\s*}\s*$/ transparent contains=@tjpcommon,tjp_status_timesheet,tjp_details,tjp_flags_timesheet,tjp_summary contained +syn region tjpblk_macro start=/macro\s\+\h\w*\s*\[/ end=/\]$/ transparent fold contains=ALL +syn region tjpstring start=/"/ skip=/\\"/ end=/"/ +syn region tjpstring start=/'/ skip=/\\'/ end=/'/ +syn region tjpstring start=/\s-8<-$/ end=/^\s*->8-/ fold +syn region tjpmlcomment start=+/\*+ end=+\*/+ + +syn sync fromstart +set foldmethod=syntax + +hi def link tjp_macro PreProc +hi def link tjp_supplement Function +hi def link tjp_project Function +hi def link tjpproperty Function +hi def link tjpattribute Type +hi def link tjparg Special +hi def link tjpstring String +hi def link tjpcomment Comment +hi def link tjpmlcomment Comment +hi def link tjpinclude Include +hi def link tjpdate Constant +hi def link tjptime Constant +hi def link tjpnumber Number + +let b:current_syntax = "tjp" + +" Support running tj3 from within vim. Just type ':make your_project.tjp' to +" activate it. +set makeprg=tj3\ --silent + +" Support browsing the man page by typing Shift-k while having the cursor over +" any syntax keyword +set keywordprg=tj3man + +" Remap Ctrl-] to show full ID of property defined in the current +" line. This requires a current ctags file (generated by 'tagfile' +" report') to be present in the directory where vim was started. +map <C-]> :call ShowFullID()<CR> +function! ShowFullID() +  let linenumber = line(".") +  let filename = bufname("%") +  execute "!grep '".filename."\t".linenumber.";' tags|cut -f 1" +endfunction + +augroup TaskJugglerSource +  " Remove all trailing white spaces from line ends when saving files +  " Note: This overwrites the s mark. +  autocmd BufWritePre *.tj[ip] mark s | %s/\s\+$//e | normal `s +augroup END  | 
