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