OLD | NEW |
1 /* FIXME : | 1 /* FIXME : |
2 :extend() is not handled specifically : its highlighting is buggy. | 2 :extend() is not handled specifically : its highlighting is buggy. |
3 Mixin usage must be inside a ruleset to be highlighted. | 3 Mixin usage must be inside a ruleset to be highlighted. |
4 At-rules (e.g. import) containing interpolations are buggy. | 4 At-rules (e.g. import) containing interpolations are buggy. |
5 Detached rulesets are highlighted as at-rules. | 5 Detached rulesets are highlighted as at-rules. |
6 A comment before a mixin usage prevents the latter to be properly highlighted. | 6 A comment before a mixin usage prevents the latter to be properly highlighted. |
7 */ | 7 */ |
8 | 8 |
9 Prism.languages.less = Prism.languages.extend('css', { | 9 Prism.languages.less = Prism.languages.extend('css', { |
10 'comment': [ | 10 'comment': [ |
(...skipping 11 matching lines...) Expand all Loading... |
22 }, | 22 }, |
23 // selectors and mixins are considered the same | 23 // selectors and mixins are considered the same |
24 'selector': { | 24 'selector': { |
25 pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{
};@])*?(?=\s*\{)/, | 25 pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{
};@])*?(?=\s*\{)/, |
26 inside: { | 26 inside: { |
27 // mixin parameters | 27 // mixin parameters |
28 'variable': /@+[\w-]+/ | 28 'variable': /@+[\w-]+/ |
29 } | 29 } |
30 }, | 30 }, |
31 | 31 |
32 » 'property': /(\b|\B)(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i, | 32 » 'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i, |
33 'punctuation': /[{}();:,]/, | 33 'punctuation': /[{}();:,]/, |
34 'operator': /[+\-*\/]/ | 34 'operator': /[+\-*\/]/ |
35 }); | 35 }); |
36 | 36 |
37 // Invert function and punctuation positions | 37 // Invert function and punctuation positions |
38 Prism.languages.insertBefore('less', 'punctuation', { | 38 Prism.languages.insertBefore('less', 'punctuation', { |
39 'function': Prism.languages.less.function | 39 'function': Prism.languages.less.function |
40 }); | 40 }); |
41 | 41 |
42 Prism.languages.insertBefore('less', 'property', { | 42 Prism.languages.insertBefore('less', 'property', { |
43 'variable': [ | 43 'variable': [ |
44 // Variable declaration (the colon must be consumed!) | 44 // Variable declaration (the colon must be consumed!) |
45 { | 45 { |
46 pattern: /@[\w-]+\s*:/, | 46 pattern: /@[\w-]+\s*:/, |
47 inside: { | 47 inside: { |
48 "punctuation": /:/ | 48 "punctuation": /:/ |
49 } | 49 } |
50 }, | 50 }, |
51 | 51 |
52 // Variable usage | 52 // Variable usage |
53 /@@?[\w-]+/ | 53 /@@?[\w-]+/ |
54 ], | 54 ], |
55 'mixin-usage': { | 55 'mixin-usage': { |
56 pattern: /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/, | 56 pattern: /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/, |
57 lookbehind: true, | 57 lookbehind: true, |
58 alias: 'function' | 58 alias: 'function' |
59 } | 59 } |
60 }); | 60 }); |
OLD | NEW |