You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
77 lines
1.8 KiB
(function (Prism) { |
|
Prism.languages.sass = Prism.languages.extend('css', { |
|
// Sass comments don't need to be closed, only indented |
|
'comment': { |
|
pattern: /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m, |
|
lookbehind: true, |
|
greedy: true |
|
} |
|
}); |
|
|
|
Prism.languages.insertBefore('sass', 'atrule', { |
|
// We want to consume the whole line |
|
'atrule-line': { |
|
// Includes support for = and + shortcuts |
|
pattern: /^(?:[ \t]*)[@+=].+/m, |
|
greedy: true, |
|
inside: { |
|
'atrule': /(?:@[\w-]+|[+=])/ |
|
} |
|
} |
|
}); |
|
delete Prism.languages.sass.atrule; |
|
|
|
|
|
var variable = /\$[-\w]+|#\{\$[-\w]+\}/; |
|
var operator = [ |
|
/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/, |
|
{ |
|
pattern: /(\s)-(?=\s)/, |
|
lookbehind: true |
|
} |
|
]; |
|
|
|
Prism.languages.insertBefore('sass', 'property', { |
|
// We want to consume the whole line |
|
'variable-line': { |
|
pattern: /^[ \t]*\$.+/m, |
|
greedy: true, |
|
inside: { |
|
'punctuation': /:/, |
|
'variable': variable, |
|
'operator': operator |
|
} |
|
}, |
|
// We want to consume the whole line |
|
'property-line': { |
|
pattern: /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m, |
|
greedy: true, |
|
inside: { |
|
'property': [ |
|
/[^:\s]+(?=\s*:)/, |
|
{ |
|
pattern: /(:)[^:\s]+/, |
|
lookbehind: true |
|
} |
|
], |
|
'punctuation': /:/, |
|
'variable': variable, |
|
'operator': operator, |
|
'important': Prism.languages.sass.important |
|
} |
|
} |
|
}); |
|
delete Prism.languages.sass.property; |
|
delete Prism.languages.sass.important; |
|
|
|
// Now that whole lines for other patterns are consumed, |
|
// what's left should be selectors |
|
Prism.languages.insertBefore('sass', 'punctuation', { |
|
'selector': { |
|
pattern: /^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m, |
|
lookbehind: true, |
|
greedy: true |
|
} |
|
}); |
|
|
|
}(Prism));
|
|
|