1 | Prism.languages.scss = Prism.languages.extend('css', {
|
2 | 'comment': {
|
3 | pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
|
4 | lookbehind: true
|
5 | },
|
6 | 'atrule': {
|
7 | pattern: /@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,
|
8 | inside: {
|
9 | 'rule': /@[\w-]+/
|
10 |
|
11 | }
|
12 | },
|
13 |
|
14 | 'url': /(?:[-a-z]+-)*url(?=\()/i,
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | 'selector': {
|
23 |
|
24 | pattern: /(?=\S)[^@;{}()]?(?:[^@;{}()]|&|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,
|
25 | inside: {
|
26 | 'parent': {
|
27 | pattern: /&/,
|
28 | alias: 'important'
|
29 | },
|
30 | 'placeholder': /%[-\w]+/,
|
31 | 'variable': /\$[-\w]+|#\{\$[-\w]+\}/
|
32 | }
|
33 | }
|
34 | });
|
35 |
|
36 | Prism.languages.insertBefore('scss', 'atrule', {
|
37 | 'keyword': [
|
38 | /@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,
|
39 | {
|
40 | pattern: /( +)(?:from|through)(?= )/,
|
41 | lookbehind: true
|
42 | }
|
43 | ]
|
44 | });
|
45 |
|
46 | Prism.languages.scss.property = {
|
47 | pattern: /(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i,
|
48 | inside: {
|
49 | 'variable': /\$[-\w]+|#\{\$[-\w]+\}/
|
50 | }
|
51 | };
|
52 |
|
53 | Prism.languages.insertBefore('scss', 'important', {
|
54 |
|
55 | 'variable': /\$[-\w]+|#\{\$[-\w]+\}/
|
56 | });
|
57 |
|
58 | Prism.languages.insertBefore('scss', 'function', {
|
59 | 'placeholder': {
|
60 | pattern: /%[-\w]+/,
|
61 | alias: 'selector'
|
62 | },
|
63 | 'statement': {
|
64 | pattern: /\B!(?:default|optional)\b/i,
|
65 | alias: 'keyword'
|
66 | },
|
67 | 'boolean': /\b(?:true|false)\b/,
|
68 | 'null': /\bnull\b/,
|
69 | 'operator': {
|
70 | pattern: /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,
|
71 | lookbehind: true
|
72 | }
|
73 | });
|
74 |
|
75 | Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss; |
\ | No newline at end of file |