summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-03-26 08:26:59 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-03-26 08:26:59 +0200
commit3a80316ff8ff7a21b1f57e2a923b281ac1b4b146 (patch)
treef6fe1f701e1b2c984bcce7fb45f082903e1cb51b /syntax
parentc17fc39b2c5139028f8e94f03d9bce4d7748aa52 (diff)
downloadvim-3a80316ff8ff7a21b1f57e2a923b281ac1b4b146.zip
vim-3a80316ff8ff7a21b1f57e2a923b281ac1b4b146.tar.gz
add syntax
Diffstat (limited to 'syntax')
-rw-r--r--syntax/edc.vim235
-rw-r--r--syntax/embryo.vim195
-rw-r--r--syntax/eruby.vim42
-rw-r--r--syntax/pasm.vim87
-rw-r--r--syntax/pir.vim156
-rw-r--r--syntax/pmc.vim350
-rw-r--r--syntax/ragel.vim165
-rw-r--r--syntax/tjp.vim706
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