| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 | module.exports = function(hljs) {  var VARIABLE = {    className: 'variable',    begin: '\\$' + hljs.IDENT_RE  };  var HEX_COLOR = {    className: 'number',    begin: '#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})'  };  var AT_KEYWORDS = [    'charset',    'css',    'debug',    'extend',    'font-face',    'for',    'import',    'include',    'media',    'mixin',    'page',    'warn',    'while'  ];  var PSEUDO_SELECTORS = [    'after',    'before',    'first-letter',    'first-line',    'active',    'first-child',    'focus',    'hover',    'lang',    'link',    'visited'  ];  var TAGS = [    'a',    'abbr',    'address',    'article',    'aside',    'audio',    'b',    'blockquote',    'body',    'button',    'canvas',    'caption',    'cite',    'code',    'dd',    'del',    'details',    'dfn',    'div',    'dl',    'dt',    'em',    'fieldset',    'figcaption',    'figure',    'footer',    'form',    'h1',    'h2',    'h3',    'h4',    'h5',    'h6',    'header',    'hgroup',    'html',    'i',    'iframe',    'img',    'input',    'ins',    'kbd',    'label',    'legend',    'li',    'mark',    'menu',    'nav',    'object',    'ol',    'p',    'q',    'quote',    'samp',    'section',    'span',    'strong',    'summary',    'sup',    'table',    'tbody',    'td',    'textarea',    'tfoot',    'th',    'thead',    'time',    'tr',    'ul',    'var',    'video'  ];  var LOOKAHEAD_TAG_END = '(?=[\\.\\s\\n\\[\\:,])';  var ATTRIBUTES = [    'align-content',    'align-items',    'align-self',    'animation',    'animation-delay',    'animation-direction',    'animation-duration',    'animation-fill-mode',    'animation-iteration-count',    'animation-name',    'animation-play-state',    'animation-timing-function',    'auto',    'backface-visibility',    'background',    'background-attachment',    'background-clip',    'background-color',    'background-image',    'background-origin',    'background-position',    'background-repeat',    'background-size',    'border',    'border-bottom',    'border-bottom-color',    'border-bottom-left-radius',    'border-bottom-right-radius',    'border-bottom-style',    'border-bottom-width',    'border-collapse',    'border-color',    'border-image',    'border-image-outset',    'border-image-repeat',    'border-image-slice',    'border-image-source',    'border-image-width',    'border-left',    'border-left-color',    'border-left-style',    'border-left-width',    'border-radius',    'border-right',    'border-right-color',    'border-right-style',    'border-right-width',    'border-spacing',    'border-style',    'border-top',    'border-top-color',    'border-top-left-radius',    'border-top-right-radius',    'border-top-style',    'border-top-width',    'border-width',    'bottom',    'box-decoration-break',    'box-shadow',    'box-sizing',    'break-after',    'break-before',    'break-inside',    'caption-side',    'clear',    'clip',    'clip-path',    'color',    'column-count',    'column-fill',    'column-gap',    'column-rule',    'column-rule-color',    'column-rule-style',    'column-rule-width',    'column-span',    'column-width',    'columns',    'content',    'counter-increment',    'counter-reset',    'cursor',    'direction',    'display',    'empty-cells',    'filter',    'flex',    'flex-basis',    'flex-direction',    'flex-flow',    'flex-grow',    'flex-shrink',    'flex-wrap',    'float',    'font',    'font-family',    'font-feature-settings',    'font-kerning',    'font-language-override',    'font-size',    'font-size-adjust',    'font-stretch',    'font-style',    'font-variant',    'font-variant-ligatures',    'font-weight',    'height',    'hyphens',    'icon',    'image-orientation',    'image-rendering',    'image-resolution',    'ime-mode',    'inherit',    'initial',    'justify-content',    'left',    'letter-spacing',    'line-height',    'list-style',    'list-style-image',    'list-style-position',    'list-style-type',    'margin',    'margin-bottom',    'margin-left',    'margin-right',    'margin-top',    'marks',    'mask',    'max-height',    'max-width',    'min-height',    'min-width',    'nav-down',    'nav-index',    'nav-left',    'nav-right',    'nav-up',    'none',    'normal',    'object-fit',    'object-position',    'opacity',    'order',    'orphans',    'outline',    'outline-color',    'outline-offset',    'outline-style',    'outline-width',    'overflow',    'overflow-wrap',    'overflow-x',    'overflow-y',    'padding',    'padding-bottom',    'padding-left',    'padding-right',    'padding-top',    'page-break-after',    'page-break-before',    'page-break-inside',    'perspective',    'perspective-origin',    'pointer-events',    'position',    'quotes',    'resize',    'right',    'tab-size',    'table-layout',    'text-align',    'text-align-last',    'text-decoration',    'text-decoration-color',    'text-decoration-line',    'text-decoration-style',    'text-indent',    'text-overflow',    'text-rendering',    'text-shadow',    'text-transform',    'text-underline-position',    'top',    'transform',    'transform-origin',    'transform-style',    'transition',    'transition-delay',    'transition-duration',    'transition-property',    'transition-timing-function',    'unicode-bidi',    'vertical-align',    'visibility',    'white-space',    'widows',    'width',    'word-break',    'word-spacing',    'word-wrap',    'z-index'  ];  // illegals  var ILLEGAL = [    '\\?',    '(\\bReturn\\b)', // monkey    '(\\bEnd\\b)', // monkey    '(\\bend\\b)', // vbscript    '(\\bdef\\b)', // gradle    ';', // a whole lot of languages    '#\\s', // markdown    '\\*\\s', // markdown    '===\\s', // markdown    '\\|',    '%', // prolog  ];  return {    aliases: ['styl'],    case_insensitive: false,    keywords: 'if else for in',    illegal: '(' + ILLEGAL.join('|') + ')',    contains: [      // strings      hljs.QUOTE_STRING_MODE,      hljs.APOS_STRING_MODE,      // comments      hljs.C_LINE_COMMENT_MODE,      hljs.C_BLOCK_COMMENT_MODE,      // hex colors      HEX_COLOR,      // class tag      {        begin: '\\.[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,        className: 'selector-class'      },      // id tag      {        begin: '\\#[a-zA-Z][a-zA-Z0-9_-]*' + LOOKAHEAD_TAG_END,        className: 'selector-id'      },      // tags      {        begin: '\\b(' + TAGS.join('|') + ')' + LOOKAHEAD_TAG_END,        className: 'selector-tag'      },      // psuedo selectors      {        begin: '&?:?:\\b(' + PSEUDO_SELECTORS.join('|') + ')' + LOOKAHEAD_TAG_END      },      // @ keywords      {        begin: '\@(' + AT_KEYWORDS.join('|') + ')\\b'      },      // variables      VARIABLE,      // dimension      hljs.CSS_NUMBER_MODE,      // number      hljs.NUMBER_MODE,      // functions      //  - only from beginning of line + whitespace      {        className: 'function',        begin: '^[a-zA-Z][a-zA-Z0-9_\-]*\\(.*\\)',        illegal: '[\\n]',        returnBegin: true,        contains: [          {className: 'title', begin: '\\b[a-zA-Z][a-zA-Z0-9_\-]*'},          {            className: 'params',            begin: /\(/,            end: /\)/,            contains: [              HEX_COLOR,              VARIABLE,              hljs.APOS_STRING_MODE,              hljs.CSS_NUMBER_MODE,              hljs.NUMBER_MODE,              hljs.QUOTE_STRING_MODE            ]          }        ]      },      // attributes      //  - only from beginning of line + whitespace      //  - must have whitespace after it      {        className: 'attribute',        begin: '\\b(' + ATTRIBUTES.reverse().join('|') + ')\\b',        starts: {          // value container          end: /;|$/,          contains: [            HEX_COLOR,            VARIABLE,            hljs.APOS_STRING_MODE,            hljs.QUOTE_STRING_MODE,            hljs.CSS_NUMBER_MODE,            hljs.NUMBER_MODE,            hljs.C_BLOCK_COMMENT_MODE          ],          illegal: /\./,          relevance: 0        }      }    ]  };};
 |