" Better CSS Syntax for Vim " Language: Cascading Style Sheets " Maintainer: Chris Yip , twitter: @Chris_Ys " URL: http://www.vim.org/scripts/script.php?script_id=3183 " GIT: http://github.com/ChrisYs/Better-CSS-Syntax-for-Vim " Last Change: 2010/08/27 " Full CSS2, most of HTML5 & CSS3 properties (include prefix like -moz-) supported " Quit when a syntax file was already loaded if exists("b:current_syntax") finish endif syn case ignore syn match cssTagName /\*/ syn match cssTagName /\<\(a\|abbr\|acronym\|address\|applet\|area\|article\|aside\|audio\|b\|base\|basefont\|bdo\|big\|blockquote\|body\|br\|button\|canvas\|caption\|center\|cite\|code\|col\|colgroup\|command\|datalist\|dd\|del\|details\|dfn\|dir\|div\|dl\|dt\|em\|embed\|fieldset\|font\|form\|figcaption\|figure\|footer\|frame\|frameset\|h1\|h2\|h3\|h4\|h5\|h6\|head\|header\|hgroup\|hr\|html\|img\|i\|iframe\|img\|input\|ins\|isindex\|kbd\|keygen\|label\|legend\|li\|link\|map\|mark\|menu\|meta\|meter\|nav\|noframes\|noscript\|object\|ol\|optgroup\|option\|output\|p\|param\|pre\|progress\|q\|rp\|rt\|ruby\|s\|samp\|script\|section\|select\|small\|span\|strike\|strong\|style\|sub\|summary\|sup\|table\|tbody\|td\|textarea\|tfoot\|th\|thead\|time\|title\|tr\|tt\|ul\|u\|var\|variant\|video\|xmp\)\>/ syn match cssClass "\.[A-Za-z][A-Za-z0-9_-]\{0,\}" syn match cssIdentifier "#[A-Za-z_@][A-Za-z0-9_@-]*" syn match cssPrefix /\(-\(webkit\|moz\|o\|ms\)-\)\|filter/ syn match cssNumber /\(-\)\=\(\.\d\+\|\d\+\(\.\d\+\)\{0,\}\)/ contained syn match cssPseudo /\:\{1,2\}\(link\|visited\|active\|hover\|focus\|before\|after\|left\|right\|root\|empty\|target\|enabled\|disabled\|checked\)\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}first\-\(letter\|line\|child\)\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}\(last\|only\)-child\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}\(first\|last\|only\)-of-type)\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}nth\(-last\)\{0,1\}-child([N0-9]\{0,\})\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}nth\(-last\)\{0,1\}-of-type([N0-9]\{0,\})\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}not([#\.]\{0,\}\S\+)\ze[ :,\.#\[\]{]\+/ syn match cssPseudo /\:\{1,2\}lang([a-zA-Z]\{2\}\(-[a-zA-Z]\{2\}\)\{0,1\})\ze[ :,\.#\[\]{]\+/ syn region cssFuncRegion start=/{/ end=/}/ contains=cssPropRegion syn match cssPropRegion /[^{}]*/ contained contains=cssProp,cssAttrBlock,cssPrefix,cssComment syn region cssAttrBlock start=/:\zs/ end=/\ze[;}]\{1\}/ contained contains=cssAttr,cssColor,cssImportant,cssNumber,cssUnits,cssQuote,cssFunction syn keyword cssAttr above absolute accent adjacent after alias all alphabetic alternate always auto avoid balance baseline back before behind below blink block bold bolder border both bottom capitalize caption cell center central circle clear clone code collapse compact copy crop cross crosshair current dashed default digits disc discard dot dotted double embed end fast faster fill first fixed forward front hanging help here hidden hide high higher horizontal icon ideographic inherit inhibit initial invert italic justify kashida landscape last left level lighter linear loud low lower ltr mathematical manual medium meet menu middle modal move multiple moderate narrower new none normal nowrap oblique overline parent perceptual pointer portrait progress reduced relative reverse ridge right root rtl same saturation scroll separate show silent single slice slide slow slower solid soft square start static stretch strong sub super suppress tab text tibetan top underline unrestricted vertical visible wait wider window contained syn match cssAttr /\/ contained syn match cssAttr /\<\(absolute\|relative\)-colorimetric\>/ contained syn match cssAttr /<\(pause\|rest\)-\(after\|before\)\>/ contained syn match cssAttr /\<\(x-\)\=\(weak\|strong\|low\|high\)\>/ contained syn match cssAttr /\(in\|out\)\(set\|side\)/ contained syn match cssAttr /\<\(block\|inline\)-axis\>/ contained syn match cssAttr /\<\(border\|content\)-box\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(exclude\|include\)-ruby\>/ contained syn match cssAttr /\<\(consider\|disregard\)-shifts\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(\(\(block\|inline\)-line\)\|max\|grid\)-height\>/ contained syn match cssAttr /\<\(far\|left\|right\)-side\>/ contained syn match cssAttr /\<\(left\|right\)wards\>/ contained syn match cssAttr /\<\(center\|far\)-\(left\|right\)\>/ contained syn match cssAttr /\<\(\(text-\)\=\(before\|after\)-\(edge\|central\|ideographic\|alphabetic\|hanging\|mathematical\|use-script\)\)\>/ contained syn match cssAttr /\<\([nwse]\{1,4\}\|col\|row\)-resize\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(end\|line\)-edge\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(upper\|lower\)case\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(literal\|no\)-punctuation\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\<\(font\|text\|max\)-size\>/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssAttr /\/ contained syn match cssProp /\<\(appearance\|binding\|bottom\|clear\|clip\|color\|columns\|content\|crop\|cursor\|direction\|elevation\|empty-cells\|hanging-punctuation\|height\|hyphens\|icon\|inline-box-align\|left\|letter-spacing\|move-to\|opacity\|orphans\|phonemes\|position\|play-during\|presentation-level\|punctuation-trim\|quotes\|rendering-intent\|resize\|richness\|right\|size\|speech-rate\|stress\|string-set\|tab-size\|table-layout\|top\|unicode-bidi\|vertical-align\|visibility\|volume\|widows\|width\|z-index\|zimuth\)\>\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\(-offset\)\{0,1\}\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\<\(margin\|padding\)\(-\(bottom\|left\|right\|top\)\)\=\>\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\<\(max\|min\)-\(height\|width\)\>\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssProp /\\ze\s*:/ contained syn match cssSelector /\[[#\.]\{0,1\}\c[-a-z0-9]\+\([*^$]\{0,1\}=\c[-a-z0-9'"]\+\)\]/ syn match cssUnits /%\|\(cm\|deg\|dpi\|em\|ex|\in\|mm\|pc\|pt\|px\|s\)\>/ contained syn match cssColor /#\(\x\{6\}\|\x\{3\}\)/ contained syn match cssImportant /!important\>/ contained syn region cssComment start=/\/\*/ end=/\*\// contains=@Spell syn region cssFunction start=/\c[-a-z0-9@]*(/ end=/)/ contained contains=cssFile syn region cssFile start=/url(\zs/ end=/\ze)/ contained syn match cssBraket /[{}]/ contained syn match cssQuote /\('.*'\|".*"\)/ contained " Define the default highlighting. command -nargs=+ HL hi def link HL cssAttr SpecialKey HL cssAttrBlock Normal HL cssBraket Function HL cssClass Function HL cssColor Constant HL cssComment Comment HL cssError ErrorMsg HL cssFile Directory HL cssFunction Function HL cssFuncRegion Function HL cssIdentifier Identifier HL cssImportant PreProc HL cssUnits Special HL cssNumber Number HL cssPrefix Special HL cssProp Type HL cssPropRegion Normal HL cssPseudo Structure HL cssQuote String HL cssSelector Structure HL cssString String HL cssTagName Statement HL cssURL String delcommand HL let b:current_syntax = "css" "syn sync minlines=10