From bbcb9e49d454c2d4d203df7675626c10c25e539d Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 31 Jul 2021 18:16:22 -0400 Subject: Move prefix customization to bottom right of keybar --- docs/repl.js | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'docs/repl.js') diff --git a/docs/repl.js b/docs/repl.js index 1aaeb218..25eef499 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -78,13 +78,8 @@ sysvals.plot = (x,w) => { return '\0'; } -doc.prfx.onchange = ev => { - prefix = ev.target.value; - buildKb(); -} - let keymode=0; // 1 for prefix -let prefix=doc.prfx.value; +let prefix='\\'; doc.code.onkeydown = ev => { let k = ev.which; if (16<=k && k<=20) { @@ -117,17 +112,20 @@ let kk=Array.from('`123456890-=~!@#$%^&*()_+qwertuiop[]QWERTIOP{}asdfghjkl;ASFGH let kv=Array.from('˜˘¨⁼⌜´˝∞¯•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩√⋆⌽𝕨∊↑∧⊔⊏⊐π←→↙𝕎⍷𝕣⍋⊑⊒⍳⊣⊢⍉𝕤↕𝕗𝕘⊸∘○⟜⋄↖𝕊𝔽𝔾«⌾»·˙⥊𝕩↓∨⌊≡∾≍≠𝕏⍒⌈≢≤≥⇐‿↩'); let keys={}, revkeys={}, primhelp={}; kk.map((k,i)=>{keys[k]=kv[i];revkeys[kv[i]]=k;}); -let buildKb = () => { - doc.kb.innerHTML = keydesc.map(d=>{ - let s = syncls[d[0]]; +doc.kb.innerHTML = keydesc + .map(d=>''+Array.from(d)[1]+'') + .concat(['map']) + .join("​"); // zero-width space +let setPrefix = () => { + doc.kb.querySelectorAll("span").forEach((x,i) => { + let d = keydesc[i]; let c = Array.from(d)[1]; let t = d.slice(1+c.length).replace(';','\n'); let k = revkeys[c]; if (k) t += '\n'+prefix+(k==='"'?'"':k); - primhelp[c] = t; - return ''+c+'' - }).concat(['map']).join("​"); // zero-width space + x.title = primhelp[c] = t; + }); } -buildKb(); +setPrefix(); doc.kb.onmousedown = ev => { let t = ev.target; if (t.nodeName === 'SPAN') { @@ -135,17 +133,25 @@ doc.kb.onmousedown = ev => { } } +doc.kb.innerHTML += '
'; +doc.kbext = doc.kb.querySelector('.kbext'); + if (doc.demo) { let fonts=[["BQN386"],["DejaVu","Mod"],["Fairfax","HD"],["3270","font"],["Iosevka","Term"],["Julia","Mono"]]; let fclass = f => f==="3270"?"f"+f:f let fontsel = ''; +doc.kbext.querySelector(".prfx").onchange = ev => { + prefix = ev.target.value; setPrefix(); +} + if (doc.perm) doc.perm.onmouseover = doc.perm.onfocus = () => { let b=(new TextEncoder()).encode(doc.code.value); doc.perm.href='#code='+btoa(String.fromCharCode(...b)); -- cgit v1.2.3