Blame view

bower_components/prism/components/prism-less.js 1.4 KB
73bcce88   luigser   COMPONENTS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  /* FIXME :
   :extend() is not handled specifically : its highlighting is buggy.
   Mixin usage must be inside a ruleset to be highlighted.
   At-rules (e.g. import) containing interpolations are buggy.
   Detached rulesets are highlighted as at-rules.
   A comment before a mixin usage prevents the latter to be properly highlighted.
   */
  
  Prism.languages.less = Prism.languages.extend('css', {
  	'comment': [
  		/\/\*[\w\W]*?\*\//,
  		{
  			pattern: /(^|[^\\])\/\/.*/,
  			lookbehind: true
  		}
  	],
  	'atrule': {
  		pattern: /@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,
  		inside: {
  			'punctuation': /[:()]/
  		}
  	},
  	// selectors and mixins are considered the same
  	'selector': {
  		pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,
  		inside: {
  			// mixin parameters
  			'variable': /@+[\w-]+/
  		}
  	},
  
eb240478   Luigi Serra   public room cards...
32
  	'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,
73bcce88   luigser   COMPONENTS
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
  	'punctuation': /[{}();:,]/,
  	'operator': /[+\-*\/]/
  });
  
  // Invert function and punctuation positions
  Prism.languages.insertBefore('less', 'punctuation', {
  	'function': Prism.languages.less.function
  });
  
  Prism.languages.insertBefore('less', 'property', {
  	'variable': [
  		// Variable declaration (the colon must be consumed!)
  		{
  			pattern: /@[\w-]+\s*:/,
  			inside: {
  				"punctuation": /:/
  			}
  		},
  
  		// Variable usage
  		/@@?[\w-]+/
  	],
  	'mixin-usage': {
  		pattern: /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,
  		lookbehind: true,
  		alias: 'function'
  	}
  });