aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjakob.stendahl <jakob.stendahl@infomedia.dk>2022-12-05 12:27:41 +0100
committerJakob Stendahl <jakob.stendahl@outlook.com>2022-12-05 12:27:41 +0100
commitb1b8b9605d804793f557c92e2d7b1f659d8c99f0 (patch)
tree3ba82d71490f1e222080b11c8636b6457bf3ab14 /src
parent7beca23767641c8e52d22109069909f6380cb99b (diff)
downloadLuxcena-Neo-b1b8b9605d804793f557c92e2d7b1f659d8c99f0.tar.gz
Luxcena-Neo-b1b8b9605d804793f557c92e2d7b1f659d8c99f0.zip
Move IDE components into its own store, fix some state issues, change state update method to push instead of pull
Diffstat (limited to 'src')
-rw-r--r--src/NeoRuntimeManager/index.js13
-rw-r--r--src/SocketIO/index.js3
2 files changed, 14 insertions, 2 deletions
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}.`)