7
|
1 " Vim syntax file
|
|
2 " Language: Cascading Style Sheets
|
|
3 " Maintainer: Claudio Fleiner <claudio@fleiner.com>
|
|
4 " URL: http://www.fleiner.com/vim/syntax/css.vim
|
2421
|
5 " Last Change: 2010 Jul 28
|
7
|
6 " CSS2 by Nikolai Weibull
|
|
7 " Full CSS2, HTML4 support by Yeti
|
|
8
|
|
9 " For version 5.x: Clear all syntax items
|
|
10 " For version 6.x: Quit when a syntax file was already loaded
|
|
11 if !exists("main_syntax")
|
|
12 if version < 600
|
|
13 syntax clear
|
|
14 elseif exists("b:current_syntax")
|
|
15 finish
|
|
16 endif
|
|
17 let main_syntax = 'css'
|
|
18 endif
|
|
19
|
|
20 syn case ignore
|
|
21
|
|
22 syn keyword cssTagName abbr acronym address applet area a b base
|
|
23 syn keyword cssTagName basefont bdo big blockquote body br button
|
|
24 syn keyword cssTagName caption center cite code col colgroup dd del
|
|
25 syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
|
|
26 syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
|
|
27 syn keyword cssTagName iframe img input ins isindex kbd label legend li
|
|
28 syn keyword cssTagName link map menu meta noframes noscript ol optgroup
|
|
29 syn keyword cssTagName option p param pre q s samp script select small
|
|
30 syn keyword cssTagName span strike strong style sub sup tbody td
|
|
31 syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
|
|
32 syn match cssTagName "\<table\>"
|
|
33 syn match cssTagName "\*"
|
|
34
|
|
35 syn match cssTagName "@page\>" nextgroup=cssDefinition
|
|
36
|
|
37 syn match cssSelectorOp "[+>.]"
|
|
38 syn match cssSelectorOp2 "[~|]\?=" contained
|
|
39 syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
|
|
40
|
557
|
41 try
|
36
|
42 syn match cssIdentifier "#[A-Za-zĄ-’_@][A-Za-zĄ-’0-9_@-]*"
|
557
|
43 catch /^.*/
|
|
44 syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
|
|
45 endtry
|
|
46
|
7
|
47
|
|
48 syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
|
|
49 syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
|
|
50 syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
|
|
51 syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
|
|
52
|
|
53 syn match cssValueInteger contained "[-+]\=\d\+"
|
|
54 syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
|
|
55 syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\)"
|
|
56 syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
|
|
57 syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
|
|
58 syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
|
|
59
|
|
60 syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
|
|
61 syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
|
|
62 syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
|
|
63 syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
|
|
64 syn keyword cssFontDescriptorAttr contained all
|
|
65 syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
|
|
66 syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
|
|
67 syn match cssUnicodeRange contained "U+\x\+-\x\+"
|
|
68
|
|
69 syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
|
|
70 " FIXME: These are actually case-insentivie too, but (a) specs recommend using
|
|
71 " mixed-case (b) it's hard to highlight the word `Background' correctly in
|
|
72 " all situations
|
|
73 syn case match
|
|
74 syn keyword cssColor contained ActiveBorder ActiveCaption AppWorkspace ButtonFace ButtonHighlight ButtonShadow ButtonText CaptionText GrayText Highlight HighlightText InactiveBorder InactiveCaption InactiveCaptionText InfoBackground InfoText Menu MenuText Scrollbar ThreeDDarkShadow ThreeDFace ThreeDHighlight ThreeDLightShadow ThreeDShadow Window WindowFrame WindowText Background
|
|
75 syn case ignore
|
|
76 syn match cssColor contained "\<transparent\>"
|
|
77 syn match cssColor contained "\<white\>"
|
|
78 syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
|
|
79 syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
|
|
80 "syn match cssColor contained "\<rgb\s*(\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*,\s*\d\+\(\.\d*\)\=%\=\s*)"
|
|
81 syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
|
|
82 syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\)\s*(" end=")" oneline keepend
|
|
83
|
|
84 syn match cssImportant contained "!\s*important\>"
|
|
85
|
|
86 syn keyword cssCommonAttr contained auto none inherit
|
|
87 syn keyword cssCommonAttr contained top bottom
|
|
88 syn keyword cssCommonAttr contained medium normal
|
|
89
|
2421
|
90 syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
|
7
|
91 syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
|
2421
|
92 syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
|
7
|
93 syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
|
|
94 syn match cssFontAttr contained "\<message-box\>"
|
|
95 syn match cssFontAttr contained "\<status-bar\>"
|
|
96 syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
|
|
97 syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
|
|
98 syn keyword cssFontAttr contained bold bolder lighter larger smaller
|
|
99 syn keyword cssFontAttr contained icon menu
|
|
100 syn match cssFontAttr contained "\<caption\>"
|
|
101 syn keyword cssFontAttr contained large smaller larger
|
|
102 syn keyword cssFontAttr contained narrower wider
|
|
103
|
|
104 syn keyword cssColorProp contained color
|
2421
|
105 syn match cssColorProp contained "\<background\(-\(color\|image\|attachment\|position\)\)\=\>"
|
7
|
106 syn keyword cssColorAttr contained center scroll fixed
|
|
107 syn match cssColorAttr contained "\<repeat\(-[xy]\)\=\>"
|
|
108 syn match cssColorAttr contained "\<no-repeat\>"
|
|
109
|
|
110 syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
|
|
111 syn match cssTextAttr contained "\<line-through\>"
|
|
112 syn match cssTextAttr contained "\<text-indent\>"
|
|
113 syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
|
|
114 syn keyword cssTextAttr contained underline overline blink sub super middle
|
|
115 syn keyword cssTextAttr contained capitalize uppercase lowercase center justify baseline sub super
|
|
116
|
|
117 syn match cssBoxProp contained "\<\(margin\|padding\|border\)\(-\(top\|right\|bottom\|left\)\)\=\>"
|
|
118 syn match cssBoxProp contained "\<border-\(\(\(top\|right\|bottom\|left\)-\)\=\(width\|color\|style\)\)\=\>"
|
|
119 syn match cssBoxProp contained "\<\(width\|z-index\)\>"
|
|
120 syn match cssBoxProp contained "\<\(min\|max\)-\(width\|height\)\>"
|
|
121 syn keyword cssBoxProp contained width height float clear overflow clip visibility
|
|
122 syn keyword cssBoxAttr contained thin thick both
|
|
123 syn keyword cssBoxAttr contained dotted dashed solid double groove ridge inset outset
|
|
124 syn keyword cssBoxAttr contained hidden visible scroll collapse
|
|
125
|
|
126 syn keyword cssGeneratedContentProp contained content quotes
|
|
127 syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
|
|
128 syn match cssGeneratedContentProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
|
|
129 syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
|
|
130 syn match cssAuralAttr contained "\<lower\>"
|
|
131 syn match cssGeneratedContentAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
|
|
132 syn match cssGeneratedContentAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
|
|
133 syn match cssGeneratedContentAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
|
|
134 syn keyword cssGeneratedContentAttr contained disc circle square hebrew armenian georgian
|
|
135 syn keyword cssGeneratedContentAttr contained inside outside
|
|
136
|
|
137 syn match cssPagingProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
|
|
138 syn keyword cssPagingProp contained size marks inside orphans widows
|
|
139 syn keyword cssPagingAttr contained landscape portrait crop cross always avoid
|
|
140
|
|
141 syn keyword cssUIProp contained cursor
|
|
142 syn match cssUIProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
|
|
143 syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
|
|
144 syn keyword cssUIAttr contained default crosshair pointer move wait help
|
|
145 syn keyword cssUIAttr contained thin thick
|
|
146 syn keyword cssUIAttr contained dotted dashed solid double groove ridge inset outset
|
|
147 syn keyword cssUIAttr contained invert
|
|
148
|
|
149 syn match cssRenderAttr contained "\<marker\>"
|
|
150 syn match cssRenderProp contained "\<\(display\|marker-offset\|unicode-bidi\|white-space\|list-item\|run-in\|inline-table\)\>"
|
|
151 syn keyword cssRenderProp contained position top bottom direction
|
|
152 syn match cssRenderProp contained "\<\(left\|right\)\>"
|
|
153 syn keyword cssRenderAttr contained block inline compact
|
|
154 syn match cssRenderAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
|
|
155 syn keyword cssRenderAttr contained static relative absolute fixed
|
|
156 syn keyword cssRenderAttr contained ltr rtl embed bidi-override pre nowrap
|
|
157 syn match cssRenderAttr contained "\<bidi-override\>"
|
|
158
|
|
159
|
|
160 syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
|
|
161 syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
|
|
162 syn keyword cssAuralProp contained volume during azimuth elevation stress richness
|
|
163 syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
|
|
164 syn keyword cssAuralAttr contained silent
|
|
165 syn match cssAuralAttr contained "\<spell-out\>"
|
|
166 syn keyword cssAuralAttr contained non mix
|
|
167 syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
|
|
168 syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
|
|
169 syn keyword cssAuralAttr contained leftwards rightwards behind
|
|
170 syn keyword cssAuralAttr contained below level above higher
|
|
171 syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
|
|
172 syn keyword cssAuralAttr contained faster slower
|
|
173 syn keyword cssAuralAttr contained male female child code digits continuous
|
|
174
|
|
175 syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\|speak-header\)\>"
|
|
176 syn keyword cssTableAttr contained fixed collapse separate show hide once always
|
|
177
|
|
178 " FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
|
|
179 syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
|
|
180 syn match cssBraces contained "[{}]"
|
|
181 syn match cssError contained "{@<>"
|
|
182 syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape
|
|
183 syn match cssBraceError "}"
|
|
184
|
|
185 syn match cssPseudoClass ":\S*" contains=cssPseudoClassId,cssUnicodeEscape
|
|
186 syn keyword cssPseudoClassId contained link visited active hover focus before after left right
|
|
187 syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
|
|
188 syn region cssPseudoClassLang matchgroup=cssPseudoClassId start=":lang(" end=")" oneline
|
|
189
|
1285
|
190 syn region cssComment start="/\*" end="\*/" contains=@Spell
|
7
|
191
|
|
192 syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
|
|
193 syn match cssSpecialCharQQ +\\"+ contained
|
|
194 syn match cssSpecialCharQ +\\'+ contained
|
|
195 syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
|
|
196 syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
|
1624
|
197 syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
|
7
|
198
|
|
199 if main_syntax == "css"
|
|
200 syn sync minlines=10
|
|
201 endif
|
|
202
|
|
203 " Define the default highlighting.
|
|
204 " For version 5.7 and earlier: only when not done already
|
|
205 " For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
206 if version >= 508 || !exists("did_css_syn_inits")
|
|
207 if version < 508
|
|
208 let did_css_syn_inits = 1
|
|
209 command -nargs=+ HiLink hi link <args>
|
|
210 else
|
|
211 command -nargs=+ HiLink hi def link <args>
|
|
212 endif
|
|
213
|
|
214 HiLink cssComment Comment
|
|
215 HiLink cssTagName Statement
|
|
216 HiLink cssSelectorOp Special
|
|
217 HiLink cssSelectorOp2 Special
|
|
218 HiLink cssFontProp StorageClass
|
|
219 HiLink cssColorProp StorageClass
|
|
220 HiLink cssTextProp StorageClass
|
|
221 HiLink cssBoxProp StorageClass
|
|
222 HiLink cssRenderProp StorageClass
|
|
223 HiLink cssAuralProp StorageClass
|
|
224 HiLink cssRenderProp StorageClass
|
|
225 HiLink cssGeneratedContentProp StorageClass
|
|
226 HiLink cssPagingProp StorageClass
|
|
227 HiLink cssTableProp StorageClass
|
|
228 HiLink cssUIProp StorageClass
|
|
229 HiLink cssFontAttr Type
|
|
230 HiLink cssColorAttr Type
|
|
231 HiLink cssTextAttr Type
|
|
232 HiLink cssBoxAttr Type
|
|
233 HiLink cssRenderAttr Type
|
|
234 HiLink cssAuralAttr Type
|
|
235 HiLink cssGeneratedContentAttr Type
|
|
236 HiLink cssPagingAttr Type
|
|
237 HiLink cssTableAttr Type
|
|
238 HiLink cssUIAttr Type
|
|
239 HiLink cssCommonAttr Type
|
|
240 HiLink cssPseudoClassId PreProc
|
|
241 HiLink cssPseudoClassLang Constant
|
|
242 HiLink cssValueLength Number
|
|
243 HiLink cssValueInteger Number
|
|
244 HiLink cssValueNumber Number
|
|
245 HiLink cssValueAngle Number
|
|
246 HiLink cssValueTime Number
|
|
247 HiLink cssValueFrequency Number
|
|
248 HiLink cssFunction Constant
|
|
249 HiLink cssURL String
|
|
250 HiLink cssFunctionName Function
|
|
251 HiLink cssColor Constant
|
|
252 HiLink cssIdentifier Function
|
|
253 HiLink cssInclude Include
|
|
254 HiLink cssImportant Special
|
|
255 HiLink cssBraces Function
|
|
256 HiLink cssBraceError Error
|
|
257 HiLink cssError Error
|
|
258 HiLink cssInclude Include
|
|
259 HiLink cssUnicodeEscape Special
|
|
260 HiLink cssStringQQ String
|
|
261 HiLink cssStringQ String
|
|
262 HiLink cssMedia Special
|
|
263 HiLink cssMediaType Special
|
|
264 HiLink cssMediaComma Normal
|
|
265 HiLink cssFontDescriptor Special
|
|
266 HiLink cssFontDescriptorFunction Constant
|
|
267 HiLink cssFontDescriptorProp StorageClass
|
|
268 HiLink cssFontDescriptorAttr Type
|
|
269 HiLink cssUnicodeRange Constant
|
1285
|
270 HiLink cssClassName Function
|
7
|
271 delcommand HiLink
|
|
272 endif
|
|
273
|
|
274 let b:current_syntax = "css"
|
|
275
|
|
276 if main_syntax == 'css'
|
|
277 unlet main_syntax
|
|
278 endif
|
|
279
|
557
|
280
|
7
|
281 " vim: ts=8
|
|
282
|