mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 04:17:01 +00:00 
			
		
		
		
	 a98a6996c2
			
		
	
	a98a6996c2
	
	
	
		
			
			Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7
Excluding:
  Amiga icons (*.info, icons/)
  doc/hangulin.txt
  tutor/
  spell/
  lang/ (only used for menu translations)
  macros/maze/, macros/hanoi/, macros/life/, macros/urm/
      These were used to test vi compatibility.
  termcap
      "Demonstration of a termcap file (for the Amiga and Archimedes)"
Helped-by: Rich Wareham <rjw57@cam.ac.uk>
Helped-by: John <john.schmidt.h@gmail.com>
Helped-by: Yann <yann@yann-salaun.com>
Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com>
Helped-by: drasill <github@tof2k.com>
Helped-by: Tae Sandoval Murgan <taecilla@gmail.com>
Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
		
	
		
			
				
	
	
		
			211 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " 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:   2013-07-21
 | |
| "
 | |
| " Instration:
 | |
| "   put tt2.vim and tt2html.vim in to your syntax diretory.
 | |
| "
 | |
| "   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
 |