diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-19 16:13:53 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2022-01-19 16:13:53 -0500 |
| commit | 40be400ecca8c370afa31b60d8f779654b87d1b0 (patch) | |
| tree | e48b90aceb12c67155735303fd4143b2eac71c85 /docs/repl.js | |
| parent | 8c2607133c1147eee5588738c9b05467b799b127 (diff) | |
Go to help page with right-click or modified-click in keybar
Diffstat (limited to 'docs/repl.js')
| -rw-r--r-- | docs/repl.js | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/docs/repl.js b/docs/repl.js index 7180ec53..cf7a9071 100644 --- a/docs/repl.js +++ b/docs/repl.js @@ -86,11 +86,12 @@ sysvals.setplot = (x,w) => { startPlot(); setPlot(x,w); } let keymode=0; // 1 for prefix let prefix='\\'; +let modified=ev=>ev.shiftKey||ev.ctrlKey||ev.altKey||ev.metaKey; doc.code.onkeydown = ev => { let k = ev.which; if (16<=k && k<=20) { return; - } if (k==13 && (ev.shiftKey||ev.ctrlKey||ev.altKey||ev.metaKey)) { // *-enter + } if (k==13 && modified(ev)) { // *-enter repl(); return false; } if (keymode) { keymode = 0; @@ -128,6 +129,7 @@ let setPrefix = () => { 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); + x.hashelp = i < 64; x.title = primhelp[c] = t; }); } @@ -135,7 +137,14 @@ setPrefix(); doc.kb.onmousedown = ev => { let t = ev.target; if (t.nodeName === 'SPAN') { - return typeChar(doc.code, t.textContent, ev); + if (ev.button || modified(ev)) { + let name = t.title.toLowerCase().replace(/ |\n\\.*/g,'') + .replace(/[\n/]/g,'_'); + if (t.hashelp) window.open('help/'+name+'.html'); + return false; + } else { + return typeChar(doc.code, t.textContent, ev); + } } } |
