import './prism-worker-setup.mjs'; import Prism from 'prismjs/components/prism-core.js'; import 'prismjs/components/prism-markup.js'; import 'prismjs/components/prism-css.js'; import 'prismjs/components/prism-clike.js'; import 'prismjs/components/prism-javascript.js'; import 'prismjs/components/prism-typescript.js'; import 'prismjs/components/prism-jsx.js'; import 'prismjs/components/prism-tsx.js'; import 'prismjs/components/prism-json.js'; import 'prismjs/components/prism-yaml.js'; import 'prismjs/components/prism-markdown.js'; import 'prismjs/components/prism-python.js'; import 'prismjs/components/prism-bash.js'; import 'prismjs/components/prism-toml.js'; import 'prismjs/components/prism-sql.js'; import 'prismjs/components/prism-csv.js'; import 'prismjs/components/prism-c.js'; import 'prismjs/components/prism-cpp.js'; import 'prismjs/components/prism-csharp.js'; import 'prismjs/components/prism-java.js'; import 'prismjs/components/prism-go.js'; import 'prismjs/components/prism-rust.js'; import 'prismjs/components/prism-diff.js'; import 'prismjs/components/prism-docker.js'; import { canHighlight } from './editor-language.mjs'; Prism.manual = true; self.onmessage = ({ data: { id, text, language } }) => { let html = null; try { if (canHighlight(text) && Prism.languages[language]) { const highlighted = Prism.highlight(text, Prism.languages[language], language); // Avoid building a huge DOM even for short, unusually token-dense files. if (highlighted.length < 1_000_000 && (highlighted.match(/