From b1b8b9605d804793f557c92e2d7b1f659d8c99f0 Mon Sep 17 00:00:00 2001 From: "jakob.stendahl" Date: Mon, 5 Dec 2022 12:27:41 +0100 Subject: Move IDE components into its own store, fix some state issues, change state update method to push instead of pull --- src/NeoRuntimeManager/index.js | 13 +++++++++++-- src/SocketIO/index.js | 3 +++ 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/NeoRuntimeManager/index.js b/src/NeoRuntimeManager/index.js index 1a56b04..5989f61 100644 --- a/src/NeoRuntimeManager/index.js +++ b/src/NeoRuntimeManager/index.js @@ -235,6 +235,12 @@ function setVariable(name, value) { * */ function debugModeEmitState() { + eventEmitter.emit("debugger:state", { + mode: modeDebuggerId, + running: runtimeProcess.isRunning, + debugMode: modeDebuggerActive, + matrix: matrix + }); } /** @@ -261,8 +267,7 @@ function startDebugger(debuggerModeId) { } if (debugModeStateEmitIntervall == null) { - debugModeStateEmitIntervall = setInterval(() => { - }, 500); + debugModeStateEmitIntervall = setInterval(debugModeEmitState, 1000); } modeDebuggerActive = true; @@ -294,6 +299,10 @@ function stopDebugger() { modeDebuggerActive = false; eventEmitter.removeAllListeners("proc:start", modeDebuggerProcStartHandler); modeDebuggerProcStartHandler = null; + + clearInterval(debugModeStateEmitIntervall); + debugModeStateEmitIntervall = null; + ipc.sendCommand(IPC.COMMAND.SET_SEND_STRIP_BUF, false); return {success: true} } diff --git a/src/SocketIO/index.js b/src/SocketIO/index.js index ff8f378..675efc5 100644 --- a/src/SocketIO/index.js +++ b/src/SocketIO/index.js @@ -269,12 +269,14 @@ function createAuthorizedNamespace(io) { let onProcStop = (code) => socket.emit("editor:proc:exit", code); let onProcStdout = (stdout) => socket.volatile.emit("editor:proc:stdout", stdout); let onProcStderr = (stderr) => socket.volatile.emit("editor:proc:stderr", stderr); + let onDebuggerState = (state) => socket.volatile.emit("editor:debugger:state", state); let closeDebugger = () => { debuggerOpen = false; neoModules.neoRuntimeManager.event.removeListener("proc:start", onProcStart); neoModules.neoRuntimeManager.event.removeListener("proc:stop", onProcStop); neoModules.neoRuntimeManager.event.removeListener("proc:stdout", onProcStdout); neoModules.neoRuntimeManager.event.removeListener("proc:stderr", onProcStderr); + neoModules.neoRuntimeManager.event.removeListener("debugger:state", onDebuggerState); return neoModules.neoRuntimeManager.stopDebugger(); }; socket.on("editor:open", (modeId, fn) => { @@ -282,6 +284,7 @@ function createAuthorizedNamespace(io) { neoModules.neoRuntimeManager.event.on("proc:exit", onProcStop); neoModules.neoRuntimeManager.event.on("proc:stdout", onProcStdout); neoModules.neoRuntimeManager.event.on("proc:stderr", onProcStderr); + neoModules.neoRuntimeManager.event.on("debugger:state", onDebuggerState); let res = neoModules.neoRuntimeManager.startDebugger(modeId); if (!res.success) { fn(res); return; } logger.info(`Starting debugger for ${modeId}.`) -- cgit v1.2.3