Locally add prismjs
This commit is contained in:
parent
35af792c6a
commit
6aa044cf9b
701 changed files with 35787 additions and 0 deletions
172
node_modules/prismjs/components/prism-javascript.js
generated
vendored
Normal file
172
node_modules/prismjs/components/prism-javascript.js
generated
vendored
Normal file
|
@ -0,0 +1,172 @@
|
|||
Prism.languages.javascript = Prism.languages.extend('clike', {
|
||||
'class-name': [
|
||||
Prism.languages.clike['class-name'],
|
||||
{
|
||||
pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,
|
||||
lookbehind: true
|
||||
}
|
||||
],
|
||||
'keyword': [
|
||||
{
|
||||
pattern: /((?:^|\})\s*)catch\b/,
|
||||
lookbehind: true
|
||||
},
|
||||
{
|
||||
pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
|
||||
lookbehind: true
|
||||
},
|
||||
],
|
||||
// Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
|
||||
'function': /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
|
||||
'number': {
|
||||
pattern: RegExp(
|
||||
/(^|[^\w$])/.source +
|
||||
'(?:' +
|
||||
(
|
||||
// constant
|
||||
/NaN|Infinity/.source +
|
||||
'|' +
|
||||
// binary integer
|
||||
/0[bB][01]+(?:_[01]+)*n?/.source +
|
||||
'|' +
|
||||
// octal integer
|
||||
/0[oO][0-7]+(?:_[0-7]+)*n?/.source +
|
||||
'|' +
|
||||
// hexadecimal integer
|
||||
/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source +
|
||||
'|' +
|
||||
// decimal bigint
|
||||
/\d+(?:_\d+)*n/.source +
|
||||
'|' +
|
||||
// decimal number (integer or float) but no bigint
|
||||
/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source
|
||||
) +
|
||||
')' +
|
||||
/(?![\w$])/.source
|
||||
),
|
||||
lookbehind: true
|
||||
},
|
||||
'operator': /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
|
||||
});
|
||||
|
||||
Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;
|
||||
|
||||
Prism.languages.insertBefore('javascript', 'keyword', {
|
||||
'regex': {
|
||||
pattern: RegExp(
|
||||
// lookbehind
|
||||
// eslint-disable-next-line regexp/no-dupe-characters-character-class
|
||||
/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source +
|
||||
// Regex pattern:
|
||||
// There are 2 regex patterns here. The RegExp set notation proposal added support for nested character
|
||||
// classes if the `v` flag is present. Unfortunately, nested CCs are both context-free and incompatible
|
||||
// with the only syntax, so we have to define 2 different regex patterns.
|
||||
/\//.source +
|
||||
'(?:' +
|
||||
/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source +
|
||||
'|' +
|
||||
// `v` flag syntax. This supports 3 levels of nested character classes.
|
||||
/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source +
|
||||
')' +
|
||||
// lookahead
|
||||
/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source
|
||||
),
|
||||
lookbehind: true,
|
||||
greedy: true,
|
||||
inside: {
|
||||
'regex-source': {
|
||||
pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
|
||||
lookbehind: true,
|
||||
alias: 'language-regex',
|
||||
inside: Prism.languages.regex
|
||||
},
|
||||
'regex-delimiter': /^\/|\/$/,
|
||||
'regex-flags': /^[a-z]+$/,
|
||||
}
|
||||
},
|
||||
// This must be declared before keyword because we use "function" inside the look-forward
|
||||
'function-variable': {
|
||||
pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
|
||||
alias: 'function'
|
||||
},
|
||||
'parameter': [
|
||||
{
|
||||
pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
|
||||
lookbehind: true,
|
||||
inside: Prism.languages.javascript
|
||||
},
|
||||
{
|
||||
pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
|
||||
lookbehind: true,
|
||||
inside: Prism.languages.javascript
|
||||
},
|
||||
{
|
||||
pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
|
||||
lookbehind: true,
|
||||
inside: Prism.languages.javascript
|
||||
},
|
||||
{
|
||||
pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
|
||||
lookbehind: true,
|
||||
inside: Prism.languages.javascript
|
||||
}
|
||||
],
|
||||
'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/
|
||||
});
|
||||
|
||||
Prism.languages.insertBefore('javascript', 'string', {
|
||||
'hashbang': {
|
||||
pattern: /^#!.*/,
|
||||
greedy: true,
|
||||
alias: 'comment'
|
||||
},
|
||||
'template-string': {
|
||||
pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,
|
||||
greedy: true,
|
||||
inside: {
|
||||
'template-punctuation': {
|
||||
pattern: /^`|`$/,
|
||||
alias: 'string'
|
||||
},
|
||||
'interpolation': {
|
||||
pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,
|
||||
lookbehind: true,
|
||||
inside: {
|
||||
'interpolation-punctuation': {
|
||||
pattern: /^\$\{|\}$/,
|
||||
alias: 'punctuation'
|
||||
},
|
||||
rest: Prism.languages.javascript
|
||||
}
|
||||
},
|
||||
'string': /[\s\S]+/
|
||||
}
|
||||
},
|
||||
'string-property': {
|
||||
pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,
|
||||
lookbehind: true,
|
||||
greedy: true,
|
||||
alias: 'property'
|
||||
}
|
||||
});
|
||||
|
||||
Prism.languages.insertBefore('javascript', 'operator', {
|
||||
'literal-property': {
|
||||
pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,
|
||||
lookbehind: true,
|
||||
alias: 'property'
|
||||
},
|
||||
});
|
||||
|
||||
if (Prism.languages.markup) {
|
||||
Prism.languages.markup.tag.addInlined('script', 'javascript');
|
||||
|
||||
// add attribute support for all DOM events.
|
||||
// https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events
|
||||
Prism.languages.markup.tag.addAttribute(
|
||||
/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,
|
||||
'javascript'
|
||||
);
|
||||
}
|
||||
|
||||
Prism.languages.js = Prism.languages.javascript;
|
Loading…
Add table
Add a link
Reference in a new issue