blob: a39c290abe340a5c4e0807ceaf329158dbaadcb0 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Smarty Templates
3" Maintainer: Manfred Stienstra manfred.stienstra@dwerg.net
4" Last Change: Mon Nov 4 11:42:23 CET 2002
5" Filenames: *.tpl
6" URL: http://www.dwerg.net/projects/vim/smarty.vim
7
8" For version 5.x: Clear all syntax items
9" For version 6.x: Quit when a syntax file was already loaded
10if !exists("main_syntax")
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020011 " quit when a syntax file was already loaded
12 if exists("b:current_syntax")
13 finish
14 endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 let main_syntax = 'smarty'
16endif
17
18syn case ignore
19
20runtime! syntax/html.vim
21"syn cluster htmlPreproc add=smartyUnZone
22
23syn match smartyBlock contained "[\[\]]"
24
25syn keyword smartyTagName capture config_load include include_php
26syn keyword smartyTagName insert if elseif else ldelim rdelim literal
27syn keyword smartyTagName php section sectionelse foreach foreachelse
28syn keyword smartyTagName strip assign counter cycle debug eval fetch
29syn keyword smartyTagName html_options html_select_date html_select_time
30syn keyword smartyTagName math popup_init popup html_checkboxes html_image
31syn keyword smartyTagName html_radios html_table mailto textformat
32
33syn keyword smartyModifier cat capitalize count_characters count_paragraphs
34syn keyword smartyModifier count_sentences count_words date_format default
35syn keyword smartyModifier escape indent lower nl2br regex_replace replace
36syn keyword smartyModifier spacify string_format strip strip_tags truncate
37syn keyword smartyModifier upper wordwrap
38
39syn keyword smartyInFunc neq eq
40
41syn keyword smartyProperty contained "file="
42syn keyword smartyProperty contained "loop="
43syn keyword smartyProperty contained "name="
44syn keyword smartyProperty contained "include="
45syn keyword smartyProperty contained "skip="
46syn keyword smartyProperty contained "section="
47
48syn keyword smartyConstant "\$smarty"
49
50syn keyword smartyDot .
51
52syn region smartyZone matchgroup=Delimiter start="{" end="}" contains=smartyProperty, smartyString, smartyBlock, smartyTagName, smartyConstant, smartyInFunc, smartyModifier
53
54syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone
55syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc,smartyZone
56 syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc,smartyZone
57
58
Bram Moolenaar071d4272004-06-13 20:20:40 +000059
Bram Moolenaarf37506f2016-08-31 22:22:10 +020060hi def link smartyTagName Identifier
61hi def link smartyProperty Constant
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020062" if you want the text inside the braces to be colored, then
63" remove the comment in from of the next statement
Bram Moolenaarf37506f2016-08-31 22:22:10 +020064"hi def link smartyZone Include
65hi def link smartyInFunc Function
66hi def link smartyBlock Constant
67hi def link smartyDot SpecialChar
68hi def link smartyModifier Function
Bram Moolenaar071d4272004-06-13 20:20:40 +000069
70let b:current_syntax = "smarty"
71
72if main_syntax == 'smarty'
73 unlet main_syntax
74endif
75
76" vim: ts=8