reprism
Version:
Modular Syntax highlighting for the web
28 lines (27 loc) • 837 B
JavaScript
export default {
language: 'r',
init: Prism => {
Prism.languages.r = {
comment: /#.*/,
string: {
pattern: /(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,
greedy: true,
},
'percent-operator': {
// Includes user-defined operators
// and %%, %*%, %/%, %in%, %o%, %x%
pattern: /%[^%\s]*%/,
alias: 'operator',
},
boolean: /\b(?:TRUE|FALSE)\b/,
ellipsis: /\.\.(?:\.|\d+)/,
number: [
/\b(?:NaN|Inf)\b/,
/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/,
],
keyword: /\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,
operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,
punctuation: /[(){}\[\],;]/,
}
},
}