prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
52 lines (51 loc) • 2.36 kB
JavaScript
import { l as e } from "../prismCore-5c7f03d0.js";
import "./clike.js";
import "./sql.js";
var n = /\b(?:(?:after|before)(?=\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\s+sharing)\b/i, i = /\b(?:(?=[a-z_]\w*\s*[<\[])|(?!<keyword>))[A-Z_]\w*(?:\s*\.\s*[A-Z_]\w*)*\b(?:\s*(?:\[\s*\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(/<keyword>/g, n.source), t = (a) => RegExp(a.replace(/<CLASS-NAME>/g, i), "i"), r = {
keyword: n,
punctuation: /[()\[\]{};,:.<>]/
};
e.apex = {
comment: e.clike.comment,
string: e.clike.string,
sql: {
pattern: /((?:[=,({:]|\breturn)\s*)\[[^\[\]]*\]/i,
lookbehind: !0,
greedy: !0,
alias: "language-sql",
inside: "sql"
},
annotation: {
pattern: /@\w+\b/,
alias: "punctuation"
},
"class-name": [
{
pattern: t(/(\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\s+\w+\s+on)\s+)<CLASS-NAME>/.source),
lookbehind: !0,
inside: r
},
{
// cast
pattern: t(/(\(\s*)<CLASS-NAME>(?=\s*\)\s*[\w(])/.source),
lookbehind: !0,
inside: r
},
{
// variable/parameter declaration and return types
pattern: t(/<CLASS-NAME>(?=\s*\w+\s*[;=,(){:])/.source),
inside: r
}
],
trigger: {
pattern: /(\btrigger\s+)\w+\b/i,
lookbehind: !0,
alias: "class-name"
},
keyword: n,
function: /\b[a-z_]\w*(?=\s*\()/i,
boolean: /\b(?:false|true)\b/i,
number: /(?:\B\.\d+|\b\d+(?:\.\d+|L)?)\b/i,
operator: /[!=](?:==?)?|\?\.?|&&|\|\||--|\+\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,
punctuation: /[()\[\]{};,.]/
};