codemirror

This commit is contained in:
Michiel Borkent 2022-10-10 14:44:10 +02:00
parent 7eec6ef0aa
commit 5cd791e09f

View file

@ -2,7 +2,7 @@
<head>
<script async src="https://ga.jspm.io/npm:es-module-shims@1.6.1/dist/es-module-shims.js"></script>
<script src="https://cdn.jsdelivr.net/npm/scittle@0.3.10/dist/scittle.js"></script>
<script>scittle.core.disable_auto_eval(); console.log('yolo!')</script>
<script>scittle.core.disable_auto_eval();</script>
<script src="https://unpkg.com/react@17/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/scittle@0.3.10/dist/scittle.reagent.js"> </script>
@ -31,28 +31,18 @@
<script type="module" type="application/javascript">
globalThis.cm = await import('codemirror');
globalThis.lc = await import('@nextjournal/lang-clojure');
globalThis.cv = await import('@codemirror/view');
globalThis.cs = await import('@codemirror/state')
scittle.core.eval_script_tags();
</script>
<script type="application/x-scittle">
(require (quote [clojure.string :as str]))
(def cm
(let [doc (str/trim "
(defn foo [x] (js/alert x))
(foo \"hello\")")]
(js/cm.EditorView. #js {:doc doc
:extensions #js [js/cm.basicSetup, (js/lc.clojure)]
:parent (js/document.querySelector "#app")
})))
(set! (.-cm_instance js/globalThis) cm)
(defn eval-me []
(load-string (-> cm .-state .-doc .toString)))
(set! (.-eval_me js/globalThis) eval-me)
</script>
<script type="application/x-scittle" src="codemirror.cljs"></script>
</head>
<body>
<div id="app">
</div>
<button onClick="eval_me()">Eval</button>
<div id="reagent">
</div>
<button id="evalMe" onClick="eval_me()">Eval</button>
</body>
</html>