From b021b25d2ab9460742c36fa9aef67dfd1294243e Mon Sep 17 00:00:00 2001 From: ubi de feo Date: Mon, 9 Dec 2024 13:58:47 +0100 Subject: [PATCH] Ability to run code selection. Selecting whitespace runs the whole script. Signed-off-by: ubi de feo --- ui/arduino/store.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ui/arduino/store.js b/ui/arduino/store.js index c748905..656b772 100644 --- a/ui/arduino/store.js +++ b/ui/arduino/store.js @@ -193,7 +193,23 @@ async function store(state, emitter) { emitter.on('run', async () => { log('run') const openFile = state.openFiles.find(f => f.id == state.editingFile) - const code = openFile.editor.editor.state.doc.toString() + let code = openFile.editor.editor.state.doc.toString() + + // If there is a selection, run only the selected code + const startIndex = openFile.editor.editor.state.selection.ranges[0].from + const endIndex = openFile.editor.editor.state.selection.ranges[0].to + if (endIndex - startIndex > 0) { + selectedCode = openFile.editor.editor.state.doc.toString().substring(startIndex, endIndex) + // Checking to see if the user accidentally double-clicked some whitespace + // While a random selection would yield an error when executed, + // selecting only whitespace would not and the user would have no feedback. + // This check only replaces the full content of the currently selected tab + // with a text selection if the selection is not empty and contains only whitespace. + if (selectedCode.trim().length > 0) { + code = selectedCode + } + } + emitter.emit('open-panel') emitter.emit('render') try { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy