Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
tt2.vim210 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:      TT2 (Perl Template Toolkit)3" Maintainer:    vim-perl <vim-perl@googlegroups.com> (need to be subscribed to post)4" Author:        Moriki, Atsushi <4woods+vim@gmail.com>5" Homepage:      https://github.com/vim-perl/vim-perl6" Bugs/requests: https://github.com/vim-perl/vim-perl/issues7" License:       Vim License (see :help license)8" Last Change:   2018 Mar 289"10" Installation:11"   put tt2.vim and tt2html.vim in to your syntax directory.12"13"   add below in your filetype.vim.14"       au BufNewFile,BufRead *.tt2 setf tt215"           or16"       au BufNewFile,BufRead *.tt217"           \ if ( getline(1) . getline(2) . getline(3) =~ '<\chtml' |18"           \           && getline(1) . getline(2) . getline(3) !~ '<[%?]' ) |19"           \   || getline(1) =~ '<!DOCTYPE HTML' |20"           \   setf tt2html |21"           \ else |22"           \   setf tt2 |23"           \ endif24"25"   define START_TAG, END_TAG26"       "ASP"27"       :let b:tt2_syn_tags = '<% %>'28"       "PHP"29"       :let b:tt2_syn_tags = '<? ?>'30"       "TT2 and HTML"31"       :let b:tt2_syn_tags = '\[% %] <!-- -->'32"33" Changes:34"           0.1.335"               Changed fileformat from 'dos' to 'unix'36"               Deleted 'echo' that print obstructive message37"           0.1.238"               Added block comment syntax39"               e.g. [%# COMMENT40"                        COMMENT TOO %]41"                    [%# IT'S SAFE %]  HERE IS OUTSIDE OF TT2 DIRECTIVE42"                    [% # WRONG!! %]   HERE STILL BE COMMENT43"           0.1.144"               Release45"           0.1.046"               Internal47 48if !exists("b:tt2_syn_tags")49    let b:tt2_syn_tags = '\[% %]'50    "let b:tt2_syn_tags = '\[% %] \[\* \*]'51endif52 53if !exists("b:tt2_syn_inc_perl")54    let b:tt2_syn_inc_perl = 155endif56 57if exists("b:current_syntax")58  finish59endif60 61let s:cpo_save = &cpo62set cpo&vim63 64syn case match65 66syn cluster tt2_top_cluster contains=tt2_perlcode,tt2_tag_region67 68" TT2 TAG Region69if exists("b:tt2_syn_tags")70 71    let s:str = b:tt2_syn_tags . ' '72    let s:str = substitute(s:str,'^ \+','','g')73    let s:str = substitute(s:str,' \+',' ','g')74 75    while stridx(s:str,' ') > 076 77        let s:st = strpart(s:str,0,stridx(s:str,' '))78        let s:str = substitute(s:str,'[^ ]* ','',"")79 80        let s:ed = strpart(s:str,0,stridx(s:str,' '))81        let s:str = substitute(s:str,'[^ ]* ','',"")82 83        exec 'syn region  tt2_tag_region '.84                    \ 'matchgroup=tt2_tag '.85                    \ 'start=+\(' . s:st .'\)[-]\=+ '.86                    \ 'end=+[-]\=\(' . s:ed . '\)+ '.87                    \ 'contains=@tt2_statement_cluster keepend extend'88 89        exec 'syn region  tt2_commentblock_region '.90                    \ 'matchgroup=tt2_tag '.91                    \ 'start=+\(' . s:st .'\)[-]\=\(#\)\@=+ '.92                    \ 'end=+[-]\=\(' . s:ed . '\)+ '.93                    \ 'keepend extend'94 95        "Include Perl syntax when 'PERL' 'RAWPERL' block96        if b:tt2_syn_inc_perl97            syn include @Perl syntax/perl.vim98            exec 'syn region tt2_perlcode '.99                        \ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .100                        \ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'101        endif102 103        "echo 'TAGS ' . s:st . ' ' . s:ed104        unlet s:st105        unlet s:ed106    endwhile107 108else109 110    syn region  tt2_tag_region111                \ matchgroup=tt2_tag112                \ start=+\(\[%\)[-]\=+113                \ end=+[-]\=%\]+114                \ contains=@tt2_statement_cluster keepend extend115 116    syn region  tt2_commentblock_region117                \ matchgroup=tt2_tag118                \ start=+\(\[%\)[-]\=#+119                \ end=+[-]\=%\]+120                \ keepend extend121 122    "Include Perl syntax when 'PERL' 'RAWPERL' block123    if b:tt2_syn_inc_perl124        syn include @Perl syntax/perl.vim125        syn region tt2_perlcode126                    \ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+127                    \ end=+\[%[-]\=\s*END+me=s-1128                    \ contains=@Perl keepend129    endif130endif131 132" Directive133syn keyword tt2_directive contained134            \ GET CALL SET DEFAULT DEBUG135            \ LAST NEXT BREAK STOP BLOCK136            \ IF IN UNLESS ELSIF FOR FOREACH WHILE SWITCH CASE137            \ USE PLUGIN MACRO META138            \ TRY FINAL RETURN LAST139            \ CLEAR TO STEP AND OR NOT MOD DIV140            \ ELSE PERL RAWPERL END141syn match   tt2_directive +|+ contained142syn keyword tt2_directive contained nextgroup=tt2_string_q,tt2_string_qq,tt2_blockname skipwhite skipempty143            \ INSERT INCLUDE PROCESS WRAPPER FILTER144            \ THROW CATCH145syn keyword tt2_directive contained nextgroup=tt2_def_tag skipwhite skipempty146            \ TAGS147 148syn match   tt2_def_tag "\S\+\s\+\S\+\|\<\w\+\>" contained149 150syn match   tt2_variable  +\I\w*+                           contained151syn match   tt2_operator  "[+*/%:?-]"                       contained152syn match   tt2_operator  "\<\(mod\|div\|or\|and\|not\)\>"  contained153syn match   tt2_operator  "[!=<>]=\=\|&&\|||"               contained154syn match   tt2_operator  "\(\s\)\@<=_\(\s\)\@="            contained155syn match   tt2_operator  "=>\|,"                           contained156syn match   tt2_deref     "\([[:alnum:]_)\]}]\s*\)\@<=\."   contained157syn match   tt2_comment   +#.*$+                            contained158syn match   tt2_func      +\<\I\w*\(\s*(\)\@=+              contained nextgroup=tt2_bracket_r skipempty skipwhite159"160syn region  tt2_bracket_r  start=+(+ end=+)+                contained contains=@tt2_statement_cluster keepend extend161syn region  tt2_bracket_b start=+\[+ end=+]+                contained contains=@tt2_statement_cluster keepend extend162syn region  tt2_bracket_b start=+{+  end=+}+                contained contains=@tt2_statement_cluster keepend extend163 164syn region  tt2_string_qq start=+"+ end=+"+ skip=+\\"+      contained contains=tt2_ivariable keepend extend165syn region  tt2_string_q  start=+'+ end=+'+ skip=+\\'+      contained keepend extend166 167syn match   tt2_ivariable  +\$\I\w*\>\(\.\I\w*\>\)*+        contained168syn match   tt2_ivariable  +\${\I\w*\>\(\.\I\w*\>\)*}+      contained169 170syn match   tt2_number    "\d\+"        contained171syn match   tt2_number    "\d\+\.\d\+"  contained172syn match   tt2_number    "0x\x\+"      contained173syn match   tt2_number    "0\o\+"       contained174 175syn match   tt2_blockname "\f\+"                       contained                        nextgroup=tt2_blockname_joint skipwhite skipempty176syn match   tt2_blockname "$\w\+"                      contained contains=tt2_ivariable nextgroup=tt2_blockname_joint skipwhite skipempty177syn region  tt2_blockname start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable nextgroup=tt2_blockname_joint keepend skipwhite skipempty178syn region  tt2_blockname start=+'+ end=+'+ skip=+\\'+ contained                        nextgroup=tt2_blockname_joint keepend skipwhite skipempty179syn match   tt2_blockname_joint "+"                    contained                        nextgroup=tt2_blockname skipwhite skipempty180 181syn cluster tt2_statement_cluster contains=tt2_directive,tt2_variable,tt2_operator,tt2_string_q,tt2_string_qq,tt2_deref,tt2_comment,tt2_func,tt2_bracket_b,tt2_bracket_r,tt2_number182 183" Synchronizing184syn sync minlines=50185 186hi def link tt2_tag         Type187hi def link tt2_tag_region  Type188hi def link tt2_commentblock_region Comment189hi def link tt2_directive   Statement190hi def link tt2_variable    Identifier191hi def link tt2_ivariable   Identifier192hi def link tt2_operator    Statement193hi def link tt2_string_qq   String194hi def link tt2_string_q    String195hi def link tt2_blockname   String196hi def link tt2_comment     Comment197hi def link tt2_func        Function198hi def link tt2_number      Number199 200if exists("b:tt2_syn_tags")201    unlet b:tt2_syn_tags202endif203 204let b:current_syntax = "tt2"205 206let &cpo = s:cpo_save207unlet s:cpo_save208 209" vim:ts=4:sw=4210 
codekingpro/portable-devtools · Team Ai