MiniCPM5-2B-WebGPU-Pi-HTTP / app /src /editor-highlight.worker.mjs
Mike0021's picture
Enable browser HTTP commands with CORS-aware errors and bounded requests
39371ea verified
Raw History Blame Contribute Delete
1.71 kB
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(/<span /g)?.length ?? 0) < 12_000) html = highlighted;
}
} catch { /* A grammar failure must never prevent editing a file. */ }
self.postMessage({ id, html });
};