reprism
Version:
Modular Syntax highlighting for the web
54 lines (53 loc) • 1.69 kB
JavaScript
export default {
language: 'lolcode',
init: Prism => {
Prism.languages.lolcode = {
comment: [/\bOBTW\s+[\s\S]*?\s+TLDR\b/, /\bBTW.+/],
string: {
pattern: /"(?::.|[^"])*"/,
inside: {
variable: /:\{[^}]+\}/,
symbol: [/:\([a-f\d]+\)/i, /:\[[^\]]+\]/, /:[)>o":]/],
},
greedy: true,
},
number: /(?:\B-)?(?:\b\d+\.?\d*|\B\.\d+)/,
symbol: {
pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,
lookbehind: true,
inside: {
keyword: /A(?=\s)/,
},
},
label: {
pattern: /((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,
lookbehind: true,
alias: 'string',
},
function: {
pattern: /((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,
lookbehind: true,
},
keyword: [
{
pattern: /(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,
lookbehind: true,
},
/'Z(?=\s|,|$)/,
],
boolean: {
pattern: /(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,
lookbehind: true,
},
variable: {
pattern: /(^|\s)IT(?=\s|,|$)/,
lookbehind: true,
},
operator: {
pattern: /(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,
lookbehind: true,
},
punctuation: /\.{3}|…|,|!/,
}
},
}