mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 10:27:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			454 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			454 lines
		
	
	
		
			8.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
| Language: Stylus
 | |
| Author: Bryant Williams <b.n.williams@gmail.com>
 | |
| Description: Stylus is an expressive, robust, feature-rich CSS language built for nodejs.
 | |
| Website: https://github.com/stylus/stylus
 | |
| Category: css
 | |
| */
 | |
| 
 | |
| export default 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 {
 | |
|     name: 'Stylus',
 | |
|     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
 | |
|         }
 | |
|       }
 | |
|     ]
 | |
|   };
 | |
| }
 |