prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
63 lines (62 loc) • 1.98 kB
JavaScript
import { a as languages } from "../../core-8vQkh0Rd.js";
import { n as extend, r as insertBefore } from "../../language-D-vtM55V.js";
import { a as clikeString, o as dotPunctuation, t as boolean } from "../../patterns-C0vJBvXO.js";
import { n as re } from "../../shared-BPLAFNn7.js";
import "./javascript.js";
import "./javadoclike.js";
import "./typescript.js";
//#region src/prism/languages/jsdoc.js
var javascript = languages.js;
var type = "\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}";
var parameterPrefix = `(@(?:arg|argument|param|property)\\s+(?:${type}\\s+)?)`;
insertBefore(languages.jsdoc = extend("javadoclike", { "parameter": {
pattern: RegExp(parameterPrefix + "(?:(?!\\s)[$\\w\\xa0-\\uffff.])+(?!\\S)"),
lookbehind: true,
inside: dotPunctuation
} }), "keyword", {
"optional-parameter": {
pattern: RegExp(parameterPrefix + "\\[(?:(?!\\s)[$\\w\\xa0-\\uffff.])+(?:=[^[\\]]+)?\\](?!\\S)"),
lookbehind: true,
inside: {
"code": {
pattern: /(=)[^]+(?=.)/,
lookbehind: true,
alias: "language-javascript",
inside: javascript
},
"punctuation": /[=[\]]/,
"parameter": {
pattern: /[^]+/,
inside: dotPunctuation
}
}
},
"class-name": [{
pattern: re("(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<0>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*", [type]),
lookbehind: true,
inside: dotPunctuation
}, {
pattern: RegExp("(@[a-z]+\\s+)" + type),
lookbehind: true,
inside: {
"string": clikeString,
"number": javascript.number,
"boolean": boolean,
"keyword": languages.ts.keyword,
"operator": /=>|\.{3}|[&|?:*]/,
"punctuation": /[()[\]{}.,;<>=]/
}
}],
"example": {
pattern: /(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,
lookbehind: true,
inside: { "code": {
pattern: /^([ ]*(?:\*[ ]*|(?!\*)))\S.*/m,
lookbehind: true,
alias: "language-javascript",
inside: javascript
} }
}
});
//#endregion
//# sourceMappingURL=jsdoc.js.map