From f0792e5fd977ca43480b898516abbf7300902c08 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Wed, 16 Feb 2022 10:19:58 -0500 Subject: =?UTF-8?q?Maintain=20=E2=80=A2Show=20display=20even=20if=20there'?= =?UTF-8?q?s=20an=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/repl.js | 19 +++++++++++-------- docs/style.css | 1 - 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/repl.js b/docs/repl.js index 6e7a691a..ceea08c2 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -21,20 +21,23 @@ if (doc.count) { let setExplain = e=>e; let repl = () => { let s=Array.from(doc.code.value), src=str(s); - doc.rslt.classList.remove('err'); doc.rslt.textContent=' '; setExplain(); setcount(s); setTimeout(() => { + doc.rslt.textContent = ''; + let ssep='', sep = () => doc.rslt.append(ssep); + let disp = t => { sep(); ssep='\n'; doc.rslt.append(t); } + sysvals.show = (x,w) => { disp(fmt(x)); return x; } + didInitPlot = 0; try { - let out=[]; sysvals.show = (x,w) => { out.push(x); return x; } - didInitPlot = 0; let c=compile(src); setExplain(src,c); - out.push(run.apply(null,c)); - doc.rslt.textContent=out.map(fmt).join('\n'); + disp(fmt(run.apply(null,c))); } catch(e) { - doc.rslt.classList.add('err'); - doc.rslt.textContent=fmtErr(e); + let n = document.createElement('span'); + n.classList.add('Error'); + n.innerText = fmtErr(e); + sep(); disp(n); highlightErr(s, e); } sysvals.js=dojs; // In case it was disabled by fragment loading @@ -107,7 +110,7 @@ let highlightErr = (s, e) => { let l=0, sl = j=>s.slice(l,l=j).join(''); for (let i=0; i