refractor
Version:
Lightweight, robust, elegant virtual syntax highlighting using Prism
31 lines (29 loc) • 978 B
JavaScript
'use strict';
module.exports = rip;
rip.displayName = 'rip';
rip.aliases = [];
function rip(Prism) {
Prism.languages.rip = {
comment: /#.*/,
keyword: /(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,
builtin: /@|\bSystem\b/,
boolean: /\b(?:true|false)\b/,
date: /\b\d{4}-\d{2}-\d{2}\b/,
time: /\b\d{2}:\d{2}:\d{2}\b/,
datetime: /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,
character: /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,
regex: {
pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,
lookbehind: true,
greedy: true
},
symbol: /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,
string: {
pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,
greedy: true
},
number: /[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,
punctuation: /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,
reference: /[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/
};
}