/usr/share/vim/vim80/syntax/tt2.vim is in vim-runtime 2:8.0.1453-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 | " Language: TT2 (Perl Template Toolkit)
" Maintainer: vim-perl <vim-perl@googlegroups.com>
" Author: Moriki, Atsushi <4woods+vim@gmail.com>
" Homepage: http://github.com/vim-perl/vim-perl
" Bugs/requests: http://github.com/vim-perl/vim-perl/issues
" Last Change: 2015-04-25
"
" Installation:
" put tt2.vim and tt2html.vim in to your syntax directory.
"
" add below in your filetype.vim.
" au BufNewFile,BufRead *.tt2 setf tt2
" or
" au BufNewFile,BufRead *.tt2
" \ if ( getline(1) . getline(2) . getline(3) =~ '<\chtml' |
" \ && getline(1) . getline(2) . getline(3) !~ '<[%?]' ) |
" \ || getline(1) =~ '<!DOCTYPE HTML' |
" \ setf tt2html |
" \ else |
" \ setf tt2 |
" \ endif
"
" define START_TAG, END_TAG
" "ASP"
" :let b:tt2_syn_tags = '<% %>'
" "PHP"
" :let b:tt2_syn_tags = '<? ?>'
" "TT2 and HTML"
" :let b:tt2_syn_tags = '\[% %] <!-- -->'
"
" Changes:
" 0.1.3
" Changed fileformat from 'dos' to 'unix'
" Deleted 'echo' that print obstructive message
" 0.1.2
" Added block comment syntax
" e.g. [%# COMMENT
" COMMENT TOO %]
" [%# IT'S SAFE %] HERE IS OUTSIDE OF TT2 DIRECTIVE
" [% # WRONG!! %] HERE STILL BE COMMENT
" 0.1.1
" Release
" 0.1.0
" Internal
"
" License: follow Vim :help uganda
"
if !exists("b:tt2_syn_tags")
let b:tt2_syn_tags = '\[% %]'
"let b:tt2_syn_tags = '\[% %] \[\* \*]'
endif
if !exists("b:tt2_syn_inc_perl")
let b:tt2_syn_inc_perl = 1
endif
if exists("b:current_syntax")
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn case match
syn cluster tt2_top_cluster contains=tt2_perlcode,tt2_tag_region
" TT2 TAG Region
if exists("b:tt2_syn_tags")
let s:str = b:tt2_syn_tags . ' '
let s:str = substitute(s:str,'^ \+','','g')
let s:str = substitute(s:str,' \+',' ','g')
while stridx(s:str,' ') > 0
let s:st = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
let s:ed = strpart(s:str,0,stridx(s:str,' '))
let s:str = substitute(s:str,'[^ ]* ','',"")
exec 'syn region tt2_tag_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'contains=@tt2_statement_cluster keepend extend'
exec 'syn region tt2_commentblock_region '.
\ 'matchgroup=tt2_tag '.
\ 'start=+\(' . s:st .'\)[-]\=\(#\)\@=+ '.
\ 'end=+[-]\=\(' . s:ed . '\)+ '.
\ 'keepend extend'
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
exec 'syn region tt2_perlcode '.
\ 'start=+\(\(RAW\)\=PERL\s*[-]\=' . s:ed . '\(\n\)\=\)\@<=+ ' .
\ 'end=+' . s:st . '[-]\=\s*END+me=s-1 contains=@Perl keepend'
endif
"echo 'TAGS ' . s:st . ' ' . s:ed
unlet s:st
unlet s:ed
endwhile
else
syn region tt2_tag_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=+
\ end=+[-]\=%\]+
\ contains=@tt2_statement_cluster keepend extend
syn region tt2_commentblock_region
\ matchgroup=tt2_tag
\ start=+\(\[%\)[-]\=#+
\ end=+[-]\=%\]+
\ keepend extend
"Include Perl syntax when 'PERL' 'RAWPERL' block
if b:tt2_syn_inc_perl
syn include @Perl $VIMRUNTIME/syntax/perl.vim
syn region tt2_perlcode
\ start=+\(\(RAW\)\=PERL\s*[-]\=%]\(\n\)\=\)\@<=+
\ end=+\[%[-]\=\s*END+me=s-1
\ contains=@Perl keepend
endif
endif
" Directive
syn keyword tt2_directive contained
\ GET CALL SET DEFAULT DEBUG
\ LAST NEXT BREAK STOP BLOCK
\ IF IN UNLESS ELSIF FOR FOREACH WHILE SWITCH CASE
\ USE PLUGIN MACRO META
\ TRY FINAL RETURN LAST
\ CLEAR TO STEP AND OR NOT MOD DIV
\ ELSE PERL RAWPERL END
syn match tt2_directive +|+ contained
syn keyword tt2_directive contained nextgroup=tt2_string_q,tt2_string_qq,tt2_blockname skipwhite skipempty
\ INSERT INCLUDE PROCESS WRAPPER FILTER
\ THROW CATCH
syn keyword tt2_directive contained nextgroup=tt2_def_tag skipwhite skipempty
\ TAGS
syn match tt2_def_tag "\S\+\s\+\S\+\|\<\w\+\>" contained
syn match tt2_variable +\I\w*+ contained
syn match tt2_operator "[+*/%:?-]" contained
syn match tt2_operator "\<\(mod\|div\|or\|and\|not\)\>" contained
syn match tt2_operator "[!=<>]=\=\|&&\|||" contained
syn match tt2_operator "\(\s\)\@<=_\(\s\)\@=" contained
syn match tt2_operator "=>\|," contained
syn match tt2_deref "\([[:alnum:]_)\]}]\s*\)\@<=\." contained
syn match tt2_comment +#.*$+ contained extend
syn match tt2_func +\<\I\w*\(\s*(\)\@=+ contained nextgroup=tt2_bracket_r skipempty skipwhite
"
syn region tt2_bracket_r start=+(+ end=+)+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+\[+ end=+]+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_bracket_b start=+{+ end=+}+ contained contains=@tt2_statement_cluster keepend extend
syn region tt2_string_qq start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable keepend extend
syn region tt2_string_q start=+'+ end=+'+ skip=+\\'+ contained keepend extend
syn match tt2_ivariable +\$\I\w*\>\(\.\I\w*\>\)*+ contained
syn match tt2_ivariable +\${\I\w*\>\(\.\I\w*\>\)*}+ contained
syn match tt2_number "\d\+" contained
syn match tt2_number "\d\+\.\d\+" contained
syn match tt2_number "0x\x\+" contained
syn match tt2_number "0\o\+" contained
syn match tt2_blockname "\f\+" contained nextgroup=tt2_blockname_joint skipwhite skipempty
syn match tt2_blockname "$\w\+" contained contains=tt2_ivariable nextgroup=tt2_blockname_joint skipwhite skipempty
syn region tt2_blockname start=+"+ end=+"+ skip=+\\"+ contained contains=tt2_ivariable nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn region tt2_blockname start=+'+ end=+'+ skip=+\\'+ contained nextgroup=tt2_blockname_joint keepend skipwhite skipempty
syn match tt2_blockname_joint "+" contained nextgroup=tt2_blockname skipwhite skipempty
syn 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_number
" Synchronizing
syn sync minlines=50
hi def link tt2_tag Type
hi def link tt2_tag_region Type
hi def link tt2_commentblock_region Comment
hi def link tt2_directive Statement
hi def link tt2_variable Identifier
hi def link tt2_ivariable Identifier
hi def link tt2_operator Statement
hi def link tt2_string_qq String
hi def link tt2_string_q String
hi def link tt2_blockname String
hi def link tt2_comment Comment
hi def link tt2_func Function
hi def link tt2_number Number
if exists("b:tt2_syn_tags")
unlet b:tt2_syn_tags
endif
let b:current_syntax = "tt2"
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:ts=4:sw=4
|