Public
esbuildProxy
Viewing readonly version: 33View latest version
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { autocompletion } from "@codemirror/autocomplete";
import { javascript } from "@codemirror/lang-javascript";
import { Compartment } from "@codemirror/state";
import { tsAutocomplete, tsFacet, tsHover, tsLinter, tsSync } from "@valtown/codemirror-ts";
import { type WorkerShape } from "@valtown/codemirror-ts/worker";
import { basicSetup, EditorView } from "codemirror";
import * as Comlink from "comlink";
const innerWorker = new Worker("./worker.ts", {
type: "module",
});
const worker = Comlink.wrap<WorkerShape>(innerWorker);
const container = new Compartment();
for (const textarea of document.querySelectorAll("form textarea.for-codemirror")) {
const form = textarea.closest("form");
const submitButton = form.querySelector("button[type=\"submit\"], input[type=\"submit\"]");
textarea.setAttribute("hidden", "true");
const parent = textarea.parentElement!;
const newDiv = document.createElement("div");
parent.insertBefore(newDiv, textarea);
const editor = new EditorView({
doc: textarea.value,
extensions: [
basicSetup,
javascript({
typescript: true,
jsx: true,
}),
container.of([]),
],
parent: newDiv,
});