Add Reason support to Prism.js (#92)

This commit is contained in:
Eric Nakagawa 2017-09-26 10:29:09 -07:00 committed by Joel Marcey
parent effd1113ad
commit 0c66a898b6

View file

@ -234,7 +234,11 @@ const Prism = {
})
);
} else {
env.highlightedCode = Prism.highlight(env.code, env.grammar, env.language);
env.highlightedCode = Prism.highlight(
env.code,
env.grammar,
env.language
);
Prism.hooks.run("before-insert", env);
@ -256,7 +260,6 @@ const Prism = {
const strarr = [text];
if (grammar && grammar.rest) {
const rest = grammar.rest;
for (var token in rest) {
@ -1099,6 +1102,20 @@ Prism.languages.yaml = {
important: /[&*][\w]+/,
punctuation: /---|[:[\]{}\-,|>?]|\.\.\./
};
(Prism.languages.reason = Prism.languages.extend("clike", {
comment: { pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, lookbehind: !0 },
string: { pattern: /"(\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/, greedy: !0 },
"class-name": /\b[A-Z]\w*/,
keyword: /\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,
operator: /\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/
})), Prism.languages.insertBefore("reason", "class-name", {
character: {
pattern: /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'])'/,
alias: "string"
},
constructor: { pattern: /\b[A-Z]\w*\b(?!\s*\.)/, alias: "variable" },
label: { pattern: /\b[a-z]\w*(?=::)/, alias: "symbol" }
}), delete Prism.languages.reason.function;
const PrismComponent = React.createClass({
statics: {