reprism
Version:
Modular Syntax highlighting for the web
30 lines (28 loc) • 966 B
JavaScript
export default {
language: 'dart',
init: Prism => {
Prism.languages.dart = Prism.languages.extend('clike', {
string: [
{
pattern: /r?("""|''')[\s\S]*?\1/,
greedy: true,
},
{
pattern: /r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
greedy: true,
},
],
keyword: [
/\b(?:async|sync|yield)\*/,
/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/,
],
operator: /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/,
})
Prism.languages.insertBefore('dart', 'function', {
metadata: {
pattern: /@\w+/,
alias: 'symbol',
},
})
},
}