From 492878754a9c32bc8676221d3c6f66e2a2ee48a6 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 30 May 2024 09:22:17 +0200 Subject: [PATCH 1/3] add strudelMirror to scope --- website/src/repl/Repl.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index d709d058..aabefcdc 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -114,6 +114,7 @@ export function Repl({ embedded = false }) { }, bgFill: false, }); + window.strudelMirror = editor; // init settings From d424b118ff9422b93c7ea84747a1cc2783a5299a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 30 May 2024 09:34:31 +0200 Subject: [PATCH 2/3] add a few helpers --- packages/codemirror/codemirror.mjs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index d28bf95d..05e26242 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -345,6 +345,18 @@ export class StrudelMirror { clear() { this.onStartRepl && document.removeEventListener('start-repl', this.onStartRepl); } + getCursorLocation() { + return this.editor.state.selection.main.head; + } + setCursorLocation(col) { + return this.editor.dispatch({ selection: { anchor: col } }); + } + appendCode(code) { + const cursor = this.getCursorLocation(); + this.setCode(this.code + code); + this.setCursorLocation(cursor); + } + } function parseBooleans(value) { From e408fedaf6cabec11f6a86a8fd5ee2c165fba1ab Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 30 May 2024 09:34:46 +0200 Subject: [PATCH 3/3] format --- packages/codemirror/codemirror.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index 05e26242..0a722e1d 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -356,7 +356,6 @@ export class StrudelMirror { this.setCode(this.code + code); this.setCursorLocation(cursor); } - } function parseBooleans(value) {