annotate vim/bundle/jinja/jinja.vim @ 227:42c80ed36c2c

More Ctags config.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 30 Sep 2014 07:40:59 -0700
parents a3f756f0c95a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
115
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 " Vim syntax file
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 " Language: Jinja template
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 " Maintainer: Armin Ronacher <armin.ronacher@active-4.com>
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 " Last Change: 2008 May 9
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
5 " Version: 1.1
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6 "
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7 " Known Bugs:
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 " because of odd limitations dicts and the modulo operator
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
9 " appear wrong in the template.
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
10 "
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
11 " Changes:
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12 "
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
13 " 2008 May 9: Added support for Jinja2 changes (new keyword rules)
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15 " For version 5.x: Clear all syntax items
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
16 " For version 6.x: Quit when a syntax file was already loaded
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 if version < 600
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
18 syntax clear
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
19 elseif exists("b:current_syntax")
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
20 finish
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
21 endif
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
22
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
23 syntax case match
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
24
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
25 " Jinja template built-in tags and parameters (without filter, macro, is and raw, they
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
26 " have special threatment)
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
27 syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained and if else in not or recursive as import
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
28
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
29 syn keyword jinjaStatement containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained is filter skipwhite nextgroup=jinjaFilter
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
30 syn keyword jinjaStatement containedin=jinjaTagBlock contained macro skipwhite nextgroup=jinjaFunction
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
31 syn keyword jinjaStatement containedin=jinjaTagBlock contained block skipwhite nextgroup=jinjaBlockName
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
32
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
33 " Variable Names
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
34 syn match jinjaVariable containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
35 syn keyword jinjaSpecial containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained false true none loop super caller varargs kwargs
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
36
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
37 " Filters
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
38 syn match jinjaOperator "|" containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained nextgroup=jinjaFilter
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
39 syn match jinjaFilter contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
40 syn match jinjaFunction contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
41 syn match jinjaBlockName contained skipwhite /[a-zA-Z_][a-zA-Z0-9_]*/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
42
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
43 " Jinja template constants
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
44 syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/"/ skip=/\\"/ end=/"/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45 syn region jinjaString containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained start=/'/ skip=/\\'/ end=/'/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46 syn match jinjaNumber containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[0-9]\+\(\.[0-9]\+\)\?/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
47
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
48 " Operators
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
49 syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[+\-*\/<>=!,:]/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
50 syn match jinjaPunctuation containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /[()\[\]]/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
51 syn match jinjaOperator containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained /\./ nextgroup=jinjaAttribute
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
52 syn match jinjaAttribute contained /[a-zA-Z_][a-zA-Z0-9_]*/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
53
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
54 " Jinja template tag and variable blocks
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
55 syn region jinjaNested matchgroup=jinjaOperator start="(" end=")" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
56 syn region jinjaNested matchgroup=jinjaOperator start="\[" end="\]" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
57 syn region jinjaNested matchgroup=jinjaOperator start="{" end="}" transparent display containedin=jinjaVarBlock,jinjaTagBlock,jinjaNested contained
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
58 syn region jinjaTagBlock matchgroup=jinjaTagDelim start=/{%-\?/ end=/-\?%}/ skipwhite containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
59
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
60 syn region jinjaVarBlock matchgroup=jinjaVarDelim start=/{{-\?/ end=/-\?}}/ containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaRaw,jinjaString,jinjaNested,jinjaComment
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
61
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
62 " Jinja template 'raw' tag
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
63 syn region jinjaRaw matchgroup=jinjaRawDelim start="{%\s*raw\s*%}" end="{%\s*endraw\s*%}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString,jinjaComment
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
64
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
65 " Jinja comments
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
66 syn region jinjaComment matchgroup=jinjaCommentDelim start="{#" end="#}" containedin=ALLBUT,jinjaTagBlock,jinjaVarBlock,jinjaString
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
67
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
68 " Block start keywords. A bit tricker. We only highlight at the start of a
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
69 " tag block and only if the name is not followed by a comma or equals sign
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
70 " which usually means that we have to deal with an assignment.
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
71 syn match jinjaStatement containedin=jinjaTagBlock contained skipwhite /\({%-\?\s*\)\@<=\<[a-zA-Z_][a-zA-Z0-9_]*\>\(\s*[,=]\)\@!/
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
72
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
73 " and context modifiers
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 syn match jinjaStatement containedin=jinjaTagBlock contained /\<with\(out\)\?\s\+context\>/ skipwhite
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
76
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
77 " Define the default highlighting.
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
78 " For version 5.7 and earlier: only when not done already
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
79 " For version 5.8 and later: only when an item doesn't have highlighting yet
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
80 if version >= 508 || !exists("did_jinja_syn_inits")
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
81 if version < 508
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
82 let did_jinja_syn_inits = 1
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
83 command -nargs=+ HiLink hi link <args>
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
84 else
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
85 command -nargs=+ HiLink hi def link <args>
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
86 endif
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
87
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
88 HiLink jinjaPunctuation jinjaOperator
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
89 HiLink jinjaAttribute jinjaVariable
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
90 HiLink jinjaFunction jinjaFilter
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
91
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
92 HiLink jinjaTagDelim jinjaTagBlock
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
93 HiLink jinjaVarDelim jinjaVarBlock
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
94 HiLink jinjaCommentDelim jinjaComment
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
95 HiLink jinjaRawDelim jinja
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
96
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
97 HiLink jinjaSpecial Special
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
98 HiLink jinjaOperator Normal
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
99 HiLink jinjaRaw Normal
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
100 HiLink jinjaTagBlock PreProc
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
101 HiLink jinjaVarBlock PreProc
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
102 HiLink jinjaStatement Statement
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
103 HiLink jinjaFilter Function
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
104 HiLink jinjaBlockName Function
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
105 HiLink jinjaVariable Identifier
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
106 HiLink jinjaString Constant
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
107 HiLink jinjaNumber Constant
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
108 HiLink jinjaComment Comment
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
109
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
110 delcommand HiLink
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
111 endif
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
112
a3f756f0c95a Added Jinja syntax highlighting in Vim.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
113 let b:current_syntax = "jinja"