From 3a80316ff8ff7a21b1f57e2a923b281ac1b4b146 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Mon, 26 Mar 2012 08:26:59 +0200 Subject: add syntax --- syntax/edc.vim | 235 ++++++++++++++++++ syntax/embryo.vim | 195 +++++++++++++++ syntax/eruby.vim | 42 ++++ syntax/pasm.vim | 87 +++++++ syntax/pir.vim | 156 ++++++++++++ syntax/pmc.vim | 350 +++++++++++++++++++++++++++ syntax/ragel.vim | 165 +++++++++++++ syntax/tjp.vim | 706 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1936 insertions(+) create mode 100644 syntax/edc.vim create mode 100644 syntax/embryo.vim create mode 100644 syntax/eruby.vim create mode 100644 syntax/pasm.vim create mode 100644 syntax/pir.vim create mode 100644 syntax/pmc.vim create mode 100644 syntax/ragel.vim create mode 100644 syntax/tjp.vim 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=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="\= 508 || !exists("did_edc_syn_inits") + if version < 508 + let did_edc_syn_inits = 1 + command -nargs=+ HiLink hi link + else + command -nargs=+ HiLink hi def link + 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=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 + else + command -nargs=+ HiLink hi def link + 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 +" 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 #\# + +" hi erubyBlock ctermbg=Gray +hi link erubyDelim delimiter +hi link erubyComment comment +hi link erubyEnd rubyControl + +iab %= <%= %> +iab %% <% -%> +" 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 +" 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 + else + command -nargs=+ HiLink hi def link + 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 +" 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 + else + command -nargs=+ HiLink hi def link + 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 +" 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=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 + else + command -nargs=+ HiLink hi def link + 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="\" start="\" start="\" start="\" matchgroup=NONE end=";" contained contains=@inlineItems + +syntax region rlWrite matchgroup=Type start="\" 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 +" 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 :call ShowFullID() +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 -- cgit v1.1-2-g2b99