blob: 2b14bf2bed07f9bf2540a439e9994e6fad1f3306 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaard09acef2012-09-21 14:54:30 +02002" Language: Cascading Style Sheets
3" Previous Contributor List:
4" Claudio Fleiner <claudio@fleiner.com> (Maintainer)
5" Yeti (Add full CSS2, HTML4 support)
6" Nikolai Weibull (Add CSS2 support)
7" Maintainer: Jules Wang <w.jq0722@gmail.com>
Bram Moolenaar3a0d8092012-10-21 03:02:54 +02008" URL: https://github.com/JulesWang/css.vim
9" Last Change: 2012 Dec 15
Bram Moolenaar071d4272004-06-13 20:20:40 +000010
11" For version 5.x: Clear all syntax items
12" For version 6.x: Quit when a syntax file was already loaded
13if !exists("main_syntax")
14 if version < 600
15 syntax clear
16 elseif exists("b:current_syntax")
17 finish
18endif
19 let main_syntax = 'css'
20endif
21
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +020022let s:cpo_save = &cpo
23set cpo&vim
24
Bram Moolenaar071d4272004-06-13 20:20:40 +000025syn case ignore
26
Bram Moolenaard09acef2012-09-21 14:54:30 +020027" All HTML4 tags
Bram Moolenaar071d4272004-06-13 20:20:40 +000028syn keyword cssTagName abbr acronym address applet area a b base
29syn keyword cssTagName basefont bdo big blockquote body br button
30syn keyword cssTagName caption center cite code col colgroup dd del
31syn keyword cssTagName dfn dir div dl dt em fieldset font form frame
32syn keyword cssTagName frameset h1 h2 h3 h4 h5 h6 head hr html img i
33syn keyword cssTagName iframe img input ins isindex kbd label legend li
34syn keyword cssTagName link map menu meta noframes noscript ol optgroup
35syn keyword cssTagName option p param pre q s samp script select small
Bram Moolenaard09acef2012-09-21 14:54:30 +020036syn keyword cssTagName span strike strong style sub sup table tbody td
Bram Moolenaar071d4272004-06-13 20:20:40 +000037syn keyword cssTagName textarea tfoot th thead title tr tt ul u var
Bram Moolenaard09acef2012-09-21 14:54:30 +020038syn keyword cssTagName object
39
40" HTML5 new tags 5*6=30
41syn keyword cssTagName article aside audio bdi canvas command
42syn keyword cssTagName datalist details embed figcaption figure footer
43syn keyword cssTagName header hgroup keygen mark meter nav
44syn keyword cssTagName output progress rt rp ruby section
45syn keyword cssTagName source summary time track video wbr
46
47" Tags not supported in HTML5
48syn keyword cssDeprecated acronym applet basefont big center dir
49syn keyword cssDeprecated font frame frameset noframes strike tt
50
51"syn match cssTagName "\<table\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000052syn match cssTagName "\*"
53
Bram Moolenaard09acef2012-09-21 14:54:30 +020054" selectors
55syn match cssSelectorOp "[,>+]"
56syn match cssSelectorOp2 "[~|^$*]\?=" contained
57" FIXME: add HTML5 attribute
Bram Moolenaar071d4272004-06-13 20:20:40 +000058syn region cssAttributeSelector matchgroup=cssSelectorOp start="\[" end="]" transparent contains=cssUnicodeEscape,cssSelectorOp2,cssStringQ,cssStringQQ
59
Bram Moolenaard09acef2012-09-21 14:54:30 +020060" .class and #id
61syn match cssClassName "\.[A-Za-z][A-Za-z0-9_-]\+"
62
Bram Moolenaara5792f52005-11-23 21:25:05 +000063try
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000064syn match cssIdentifier "#[A-Za-zÀ-ÿ_@][A-Za-zÀ-ÿ0-9_@-]*"
Bram Moolenaara5792f52005-11-23 21:25:05 +000065catch /^.*/
66syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*"
67endtry
68
Bram Moolenaard09acef2012-09-21 14:54:30 +020069syn match cssTagName "@page\>" nextgroup=cssDefinition
70" FIXME: use cssVendor here
71syn match cssTagName "@\(-\(webkit\|moz\|o\|ms\)-\)\=keyframes\>" nextgroup=cssDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
73syn match cssMedia "@media\>" nextgroup=cssMediaType skipwhite skipnl
74syn keyword cssMediaType contained screen print aural braile embosed handheld projection ty tv all nextgroup=cssMediaComma,cssMediaBlock skipwhite skipnl
Bram Moolenaard09acef2012-09-21 14:54:30 +020075"syn match cssMediaComma "," nextgroup=cssMediaType skipwhite skipnl
Bram Moolenaar071d4272004-06-13 20:20:40 +000076syn region cssMediaBlock transparent matchgroup=cssBraces start='{' end='}' contains=cssTagName,cssError,cssComment,cssDefinition,cssURL,cssUnicodeEscape,cssIdentifier
77
78syn match cssValueInteger contained "[-+]\=\d\+"
79syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
Bram Moolenaard09acef2012-09-21 14:54:30 +020080syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\)"
Bram Moolenaar071d4272004-06-13 20:20:40 +000081syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)"
82syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)"
83syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)"
84
85syn match cssFontDescriptor "@font-face\>" nextgroup=cssFontDescriptorBlock skipwhite skipnl
86syn region cssFontDescriptorBlock contained transparent matchgroup=cssBraces start="{" end="}" contains=cssComment,cssError,cssUnicodeEscape,cssFontProp,cssFontAttr,cssCommonAttr,cssStringQ,cssStringQQ,cssFontDescriptorProp,cssValue.*,cssFontDescriptorFunction,cssUnicodeRange,cssFontDescriptorAttr
87syn match cssFontDescriptorProp contained "\<\(unicode-range\|unit-per-em\|panose-1\|cap-height\|x-height\|definition-src\)\>"
88syn keyword cssFontDescriptorProp contained src stemv stemh slope ascent descent widths bbox baseline centerline mathline topline
89syn keyword cssFontDescriptorAttr contained all
90syn region cssFontDescriptorFunction contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline keepend
91syn match cssUnicodeRange contained "U+[0-9A-Fa-f?]\+"
92syn match cssUnicodeRange contained "U+\x\+-\x\+"
93
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020094" The 16 basic color names
Bram Moolenaar071d4272004-06-13 20:20:40 +000095syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020096
97" 130 more color names
98syn keyword cssColor contained aliceblue antiquewhite aquamarine azure
99syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood
100syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan
101syn match cssColor contained /dark\(blue\|cyan\|goldenrod\|gray\|green\|grey\|khaki\)/
102syn match cssColor contained /dark\(magenta\|olivegreen\|orange\|orchid\|red\|salmon\|seagreen\)/
103syn match cssColor contained /darkslate\(blue\|gray\|grey\)/
104syn match cssColor contained /dark\(turquoise\|violet\)/
105syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick
106syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold
107syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink
108syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen
109syn keyword cssColor contained lemonchiffon limegreen linen magenta
110syn match cssColor contained /light\(blue\|coral\|cyan\|goldenrodyellow\|gray\|green\)/
111syn match cssColor contained /light\(grey\|pink\|salmon\|seagreen\|skyblue\|yellow\)/
112syn match cssColor contained /light\(slategray\|slategrey\|steelblue\)/
113syn match cssColor contained /medium\(aquamarine\|blue\|orchid\|purple\|seagreen\)/
114syn match cssColor contained /medium\(slateblue\|springgreen\|turquoise\|violetred\)/
115syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite
116syn keyword cssColor contained oldlace olivedrab orange orangered orchid
117syn match cssColor contained /pale\(goldenrod\|green\|turquoise\|violetred\)/
118syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue
119syn keyword cssColor contained rosybrown royalblue saddlebrown salmon sandybrown
120syn keyword cssColor contained seagreen seashell sienna skyblue slateblue
121syn keyword cssColor contained slategray slategrey snow springgreen steelblue tan
122syn keyword cssColor contained thistle tomato turquoise violet wheat
123syn keyword cssColor contained whitesmoke yellowgreen
124
Bram Moolenaar071d4272004-06-13 20:20:40 +0000125" FIXME: These are actually case-insentivie too, but (a) specs recommend using
126" mixed-case (b) it's hard to highlight the word `Background' correctly in
127" all situations
128syn case match
129syn 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
130syn case ignore
Bram Moolenaard09acef2012-09-21 14:54:30 +0200131
132syn match cssImportant contained "!\s*important\>"
133
Bram Moolenaar071d4272004-06-13 20:20:40 +0000134syn match cssColor contained "\<transparent\>"
135syn match cssColor contained "\<white\>"
136syn match cssColor contained "#[0-9A-Fa-f]\{3\}\>"
137syn match cssColor contained "#[0-9A-Fa-f]\{6\}\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200138
Bram Moolenaar071d4272004-06-13 20:20:40 +0000139syn region cssURL contained matchgroup=cssFunctionName start="\<url\s*(" end=")" oneline keepend
Bram Moolenaard09acef2012-09-21 14:54:30 +0200140syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\)\s*(" end=")" oneline keepend
141syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\)\s*(" end=")" oneline keepend
142syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear\|radial\)-gradient\s*(" end=")" oneline keepend
143syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y|\Z\)\=\|translate\(3d\|X\|Y|\Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y|\Z\)\=\|perspective\)\s*(" end=")" oneline keepend
Bram Moolenaar071d4272004-06-13 20:20:40 +0000144
Bram Moolenaard09acef2012-09-21 14:54:30 +0200145" Prop and Attr
146" Reference: http://www.w3schools.com/cssref/default.asp
147syn keyword cssCommonAttr contained auto none inherit all
Bram Moolenaar071d4272004-06-13 20:20:40 +0000148syn keyword cssCommonAttr contained top bottom
149syn keyword cssCommonAttr contained medium normal
150
Bram Moolenaard09acef2012-09-21 14:54:30 +0200151
152syn match cssAnimationProp contained "\<animation\(-\(name\|duration\|timing-function\|delay\|iteration-cout\|play-state\)\)\=\>"
153
154
155syn keyword cssAnimationAttr contained infinite alternate paused running
156" bugfix: escape linear-gradient
157syn match cssAnimationAttr contained "\<linear\(-gradient\)\@!\>"
158syn match cssAnimationAttr contained "\<ease\(-\(in-out\|out\|in\)\)\=\>"
159
160syn match cssBackgroundProp contained "\<background\(-\(color\|image\|attachment\|position\|clip\|origin\|size\)\)\=\>"
161syn keyword cssBackgroundAttr contained center fixed over contain
162syn match cssBackgroundAttr contained "\<no-repeat\>"
163syn match cssBackgroundAttr contained "\<repeat\(-[xy]\)\=\>"
164syn match cssBackgroundAttr contained "\<\(border\|content\|padding\)-box\>"
165
166
167syn match cssBorderOutlineProp contained "\<border\(-\(top\|right\|bottom\|left\)\)\=\(-\(width\|color\|style\)\)\=\>"
168syn match cssBorderOutlineProp contained "\<outline\(-\(width\|style\|color\)\)\=\>"
169syn match cssBorderOutlineProp contained "\<border-\(top\|bottom\)-\(left\|right\)\(-radius\)\=\>"
170syn match cssBorderOutlineProp contained "\<border-image\(-\(outset\|repeat\|slice\|source\|width\)\)\=\>"
171syn match cssBorderOutlineProp contained "\<border-radius\>"
172syn keyword cssBorderOutlineAttr contained thin thick medium
173syn keyword cssBorderOutlineAttr contained dotted dashed solid double groove ridge inset outset
174syn keyword cssBorderOutlineAttr contained hidden visible scroll collapse
175syn keyword cssBorderOutlineAttr contained stretch round
176
177
178syn match cssBoxProp contained "\<overflow\(-\(x\|y\|style\)\)\=\>"
179syn match cssBoxProp contained "\<rotation\(-point\)=\>"
180syn keyword cssBoxAttr contained visible hidden scroll auto
181syn match cssBoxAttr contained "\<no-\(display\|content\)\>"
182
183syn keyword cssColorProp contained opacity
184syn match cssColorProp contained "\<color-profile\>"
185syn match cssColorProp contained "\<rendering-intent\>"
186
187
188syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>"
189syn keyword cssDimensionProp contained height
190syn keyword cssDimensionProp contained width
191
192" shadow and sizing are in other property groups
193syn match cssFlexibleBoxProp contained "\<box-\(align\|direction\|flex\|ordinal-group\|orient\|pack\|shadow\|sizing\)\>"
194syn keyword cssFlexibleBoxAttr contained start end center baseline stretch
195syn keyword cssFlexibleBoxAttr contained normal reverse
196syn keyword cssFlexibleBoxAttr contained single mulitple
197syn keyword cssFlexibleBoxAttr contained horizontal
198" bugfix: escape vertial-align
199syn match cssFlexibleBoxAttr contained "\<vertical\(-align\)\@!\>"
200syn match cssFlexibleBoxAttr contained "\<\(inline\|block\)-axis\>"
201
202
Bram Moolenaar59c03952010-07-28 12:52:27 +0200203syn match cssFontProp contained "\<font\(-\(family\|style\|variant\|weight\|size\(-adjust\)\=\|stretch\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000204syn match cssFontAttr contained "\<\(sans-\)\=\<serif\>"
Bram Moolenaar59c03952010-07-28 12:52:27 +0200205syn match cssFontAttr contained "\<small\(-\(caps\|caption\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000206syn match cssFontAttr contained "\<x\{1,2\}-\(large\|small\)\>"
207syn match cssFontAttr contained "\<message-box\>"
208syn match cssFontAttr contained "\<status-bar\>"
209syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\|status-bar\)-\)\=\(condensed\|expanded\)\>"
210syn keyword cssFontAttr contained cursive fantasy monospace italic oblique
Bram Moolenaard09acef2012-09-21 14:54:30 +0200211syn keyword cssFontAttr contained bold bolder light lighter larger smaller
212syn keyword cssFontAttr contained icon menu caption
213syn keyword cssFontAttr contained large smaller larger narrower wider
214syn keyword cssFontAttr contained Courier Arial Georgia Times
Bram Moolenaar071d4272004-06-13 20:20:40 +0000215
Bram Moolenaar071d4272004-06-13 20:20:40 +0000216
Bram Moolenaard09acef2012-09-21 14:54:30 +0200217syn keyword cssGeneratedContentProp contained content quotes crop
218syn match cssGeneratedContentProp contained "\<counter-\(reset\|increment\)\>"
219syn match cssGeneratedContentProp contained "\<move-to\>"
220syn match cssGeneratedContentProp contained "\<page-policy\>"
221syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>"
222
223
224syn match cssGridProp contained "\<grid-\(columns\|rows\)\>"
225
226syn match cssHyerlinkProp contained "\<target\(-\(name\|new\|position\)\)\=\>"
227
228syn match cssListProp contained "\<list-style\(-\(type\|position\|image\)\)\=\>"
229syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>"
230syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>"
231syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>"
232syn keyword cssListAttr contained disc circle square hebrew armenian georgian
233syn keyword cssListAttr contained inside outside
234
235
236syn match cssMarginProp contained "\<margin\(-\(top\|right\|bottom\|left\)\)\=\>"
237
238syn match cssMultiColumnProp contained "\<column\(-\(\break-\(after\|before\)\|count\|gap\|rule\(-\(color\|style\|width\)\)\=\)\|span\|width\)\=\>"
239
240
241syn match cssPaddingProp contained "\<padding\(-\(top\|right\|bottom\|left\)\)\=\>"
242
243syn keyword cssPositioningProp contained bottom clear clip display float left
244syn keyword cssPositioningProp contained position right top visibility
245syn match cssPositioningProp contained "\<z-index\>"
246syn keyword cssPositioningAttr contained block inline compact
247syn match cssPositioningAttr contained "\<table\(-\(row-gorup\|\(header\|footer\)-group\|row\|column\(-group\)\=\|cell\|caption\)\)\=\>"
248syn keyword cssPositioningAttr contained left right both
249syn match cssPositioningAttr contained "\<list-item\>"
250syn match cssPositioningAttr contained "\<inline-\(block\|table\)\>"
251syn keyword cssPositioningAttr contained static relative absolute fixed
252
253syn match cssPrintProp contained "\<page\(-break-\(before\|after\|inside\)\)\=\>"
254syn keyword cssPrintProp contained orphans widows
255syn keyword cssPrintAttr contained landscape portrait crop cross always avoid
256
257syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>"
258syn keyword cssTableAttr contained fixed collapse separate show hide once always
259
260
261syn keyword cssTextProp contained color direction
Bram Moolenaar071d4272004-06-13 20:20:40 +0000262syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200263syn match cssTextProp contained "\<text-\(justify\|\outline\|overflow\|warp\|align-last\)\>"
264syn match cssTextProp contained "\<word-\(break\|\wrap\)\>"
265syn match cssTextProp contained "\<white-space\>"
266syn match cssTextProp contained "\<hanging-punctuation\>"
267syn match cssTextProp contained "\<punctuation-trim\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000268syn match cssTextAttr contained "\<line-through\>"
269syn match cssTextAttr contained "\<text-indent\>"
270syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200271syn keyword cssTextAttr contained ltr rtl embed nowrap
Bram Moolenaar071d4272004-06-13 20:20:40 +0000272syn keyword cssTextAttr contained underline overline blink sub super middle
Bram Moolenaard09acef2012-09-21 14:54:30 +0200273syn keyword cssTextAttr contained capitalize uppercase lowercase
274syn keyword cssTextAttr contained center justify baseline sub super
275syn match cssTextAttr contained "\<pre\(-\(line\|wrap\)\)\=\>"
276syn match cssTextAttr contained "\<\(allow\|force\)-end\>"
277syn keyword cssTextAttr contained start end adjacent
278syn match cssTextAttr contained "\<inter-\(word\|ideographic\|cluster\)\>"
279syn keyword cssTextAttr contained distribute kashida first last
280syn keyword cssTextAttr contained clip ellipsis unrestricted suppress
281syn match cssTextAttr contained "\<break-all\>"
282syn match cssTextAttr contained "\<break-word\>"
283syn keyword cssTextAttr contained hyphenate
Bram Moolenaar071d4272004-06-13 20:20:40 +0000284
Bram Moolenaar071d4272004-06-13 20:20:40 +0000285
Bram Moolenaard09acef2012-09-21 14:54:30 +0200286syn match cssTransformProp contained "\<transform\(-\(origin\|style\)\)\=\>"
287syn match cssTransformProp contained "\<perspective\(-origin\)\=\>"
288syn match cssTransformProp contained "\<backface-visibility\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000289
Bram Moolenaard09acef2012-09-21 14:54:30 +0200290syn match cssTransitionProp contained "\<transition\(-\(delay\|duration\|property\|timing-function\)\)\=\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000291
Bram Moolenaard09acef2012-09-21 14:54:30 +0200292syn match cssUIProp contained "\<nav-\(down\|index\|left\|right\|up\)\=\>"
293syn match cssUIProp contained "\<outline-offset\>"
294syn match cssUIProp contained "\<box-sizing\>"
295syn keyword cssUIProp contained appearance icon resize
296syn keyword cssUIAttr contained window button menu field
Bram Moolenaar071d4272004-06-13 20:20:40 +0000297
298syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>"
299syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numerals\)\)\=\)\>"
300syn keyword cssAuralProp contained volume during azimuth elevation stress richness
301syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>"
302syn keyword cssAuralAttr contained silent
303syn match cssAuralAttr contained "\<spell-out\>"
304syn keyword cssAuralAttr contained non mix
305syn match cssAuralAttr contained "\<\(left\|right\)-side\>"
306syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>"
307syn keyword cssAuralAttr contained leftwards rightwards behind
308syn keyword cssAuralAttr contained below level above higher
309syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\)\>"
310syn keyword cssAuralAttr contained faster slower
311syn keyword cssAuralAttr contained male female child code digits continuous
Bram Moolenaard09acef2012-09-21 14:54:30 +0200312syn match cssAuralAttr contained "\<lower\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000313
Bram Moolenaard09acef2012-09-21 14:54:30 +0200314" cursor
315syn keyword cssUIProp contained cursor
316syn match cssUIAttr contained "\<[ns]\=[ew]\=-resize\>"
317syn keyword cssUIAttr contained crosshair default help move pointer
318syn keyword cssUIAttr contained progress wait
319
320" FIXME: I could not find them in reference
321syn keyword cssUIAttr contained invert maker size zoom
322syn match cssRenderAttr contained "\<run-in\>"
323syn match cssRenderAttr contained "\<text-rendering\>"
324syn match cssRenderAttr contained "\<font-smoothing\>"
325syn match cssRenderProp contained "\<marker-offset\>"
326syn match cssRenderAttr contained "\<bidi-override\>"
327
Bram Moolenaar071d4272004-06-13 20:20:40 +0000328
329" FIXME: This allows cssMediaBlock before the semicolon, which is wrong.
330syn region cssInclude start="@import" end=";" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
331syn match cssBraces contained "[{}]"
332syn match cssError contained "{@<>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200333syn region cssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssVendor,cssDefinition
Bram Moolenaar071d4272004-06-13 20:20:40 +0000334syn match cssBraceError "}"
335
Bram Moolenaard09acef2012-09-21 14:54:30 +0200336" Pseudo class
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100337syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssPseudoClassId,cssUnicodeEscape
Bram Moolenaard09acef2012-09-21 14:54:30 +0200338syn keyword cssPseudoClassId link visited active hover focus before after left right lang
Bram Moolenaar071d4272004-06-13 20:20:40 +0000339syn match cssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
Bram Moolenaard09acef2012-09-21 14:54:30 +0200340" FIXME: handle functions.
341"syn region cssPseudoClassLang matchgroup=cssPseudoClassId start="lang(" end=")"
342syn match cssPseudoClassId contained "\<\(last\|only\|nth\|nth-last\)-child\>"
343syn match cssPseudoClassId contained "\<\(first\|last\|only\|nth\|nth-last\)-of-type\>"
344syn keyword cssPseudoClassId root empty target enable disabled checked not invalid
345syn match cssPseudoClassId contained "::\(-moz-\)\=selection"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000346
Bram Moolenaard09acef2012-09-21 14:54:30 +0200347" Comment
Bram Moolenaar29c34722007-05-12 15:34:06 +0000348syn region cssComment start="/\*" end="\*/" contains=@Spell
Bram Moolenaard09acef2012-09-21 14:54:30 +0200349syn region cssComment start="//" skip="\\$" end="$" keepend contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +0000350
351syn match cssUnicodeEscape "\\\x\{1,6}\s\?"
352syn match cssSpecialCharQQ +\\"+ contained
353syn match cssSpecialCharQ +\\'+ contained
354syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEscape,cssSpecialCharQQ
355syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ
Bram Moolenaard09acef2012-09-21 14:54:30 +0200356
357" Vendor Prefix
358syn match cssVendor contained "\(-\(webkit\|moz\|o\|ms\)-\)"
359
Bram Moolenaar071d4272004-06-13 20:20:40 +0000360
361if main_syntax == "css"
362 syn sync minlines=10
363endif
364
365" Define the default highlighting.
366" For version 5.7 and earlier: only when not done already
367" For version 5.8 and later: only when an item doesn't have highlighting yet
368if version >= 508 || !exists("did_css_syn_inits")
369 if version < 508
370 let did_css_syn_inits = 1
371 command -nargs=+ HiLink hi link <args>
372 else
373 command -nargs=+ HiLink hi def link <args>
374 endif
375
376 HiLink cssComment Comment
Bram Moolenaard09acef2012-09-21 14:54:30 +0200377 HiLink cssVendor Comment
Bram Moolenaar071d4272004-06-13 20:20:40 +0000378 HiLink cssTagName Statement
Bram Moolenaard09acef2012-09-21 14:54:30 +0200379 HiLink cssDeprecated Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000380 HiLink cssSelectorOp Special
381 HiLink cssSelectorOp2 Special
Bram Moolenaard09acef2012-09-21 14:54:30 +0200382
383 HiLink cssAnimationProp StorageClass
384 HiLink cssBackgroundProp StorageClass
385 HiLink cssBorderOutlineProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000386 HiLink cssBoxProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200387 HiLink cssColorProp StorageClass
388 HiLink cssContentForPagedMediaProp StorageClass
389 HiLink cssDimensionProp StorageClass
390 HiLink cssFlexibleBoxProp StorageClass
391 HiLink cssFontProp StorageClass
392 HiLink cssGeneratedContentProp StorageClass
393 HiLink cssGridProp StorageClass
394 HiLink cssHyerlinkProp StorageClass
395 HiLink cssLineboxProp StorageClass
396 HiLink cssListProp StorageClass
397 HiLink cssMarginProp StorageClass
398 HiLink cssMarqueeProp StorageClass
399 HiLink cssMultiColumnProp StorageClass
400 HiLink cssPaddingProp StorageClass
401 HiLink cssPagedMediaProp StorageClass
402 HiLink cssPositioningProp StorageClass
403 HiLink cssPrintProp StorageClass
404 HiLink cssRubyProp StorageClass
405 HiLink cssSpeechProp StorageClass
406 HiLink cssTableProp StorageClass
407 HiLink cssTextProp StorageClass
408 HiLink cssTransformProp StorageClass
409 HiLink cssTransitionProp StorageClass
410 HiLink cssUIProp StorageClass
Bram Moolenaar071d4272004-06-13 20:20:40 +0000411 HiLink cssAuralProp StorageClass
412 HiLink cssRenderProp StorageClass
Bram Moolenaard09acef2012-09-21 14:54:30 +0200413
414 HiLink cssAnimationAttr Type
415 HiLink cssBackgroundAttr Type
416 HiLink cssBorderOutlineAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000417 HiLink cssBoxAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200418 HiLink cssColorAttr Type
419 HiLink cssContentForPagedMediaAttr Type
420 HiLink cssDimensionAttr Type
421 HiLink cssFlexibleBoxAttr Type
422 HiLink cssFontAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000423 HiLink cssGeneratedContentAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200424 HiLink cssGridAttr Type
425 HiLink cssHyerlinkAttr Type
426 HiLink cssLineboxAttr Type
427 HiLink cssListAttr Type
428 HiLink cssMarginAttr Type
429 HiLink cssMarqueeAttr Type
430 HiLink cssMultiColumnAttr Type
431 HiLink cssPaddingAttr Type
432 HiLink cssPagedMediaAttr Type
433 HiLink cssPositioningAttr Type
434 HiLink cssPrintAttr Type
435 HiLink cssRubyAttr Type
436 HiLink cssSpeechAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000437 HiLink cssTableAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200438 HiLink cssTextAttr Type
439 HiLink cssTransformAttr Type
440 HiLink cssTransitionAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000441 HiLink cssUIAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200442 HiLink cssAuralAttr Type
443 HiLink cssRenderAttr Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000444 HiLink cssCommonAttr Type
Bram Moolenaard09acef2012-09-21 14:54:30 +0200445
Bram Moolenaar071d4272004-06-13 20:20:40 +0000446 HiLink cssPseudoClassId PreProc
447 HiLink cssPseudoClassLang Constant
448 HiLink cssValueLength Number
449 HiLink cssValueInteger Number
450 HiLink cssValueNumber Number
451 HiLink cssValueAngle Number
452 HiLink cssValueTime Number
453 HiLink cssValueFrequency Number
454 HiLink cssFunction Constant
455 HiLink cssURL String
456 HiLink cssFunctionName Function
457 HiLink cssColor Constant
458 HiLink cssIdentifier Function
459 HiLink cssInclude Include
460 HiLink cssImportant Special
461 HiLink cssBraces Function
462 HiLink cssBraceError Error
463 HiLink cssError Error
464 HiLink cssInclude Include
465 HiLink cssUnicodeEscape Special
466 HiLink cssStringQQ String
467 HiLink cssStringQ String
468 HiLink cssMedia Special
469 HiLink cssMediaType Special
470 HiLink cssMediaComma Normal
471 HiLink cssFontDescriptor Special
472 HiLink cssFontDescriptorFunction Constant
473 HiLink cssFontDescriptorProp StorageClass
474 HiLink cssFontDescriptorAttr Type
475 HiLink cssUnicodeRange Constant
Bram Moolenaar29c34722007-05-12 15:34:06 +0000476 HiLink cssClassName Function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000477 delcommand HiLink
478endif
479
480let b:current_syntax = "css"
481
482if main_syntax == 'css'
483 unlet main_syntax
484endif
485
Bram Moolenaar0c5fa7d2012-10-05 22:26:30 +0200486let &cpo = s:cpo_save
487unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000488" vim: ts=8
489