Debug info on frontend with #debug hash

This commit is contained in:
Radon Rosborough 2020-07-05 12:41:07 -06:00
parent 337658a8bf
commit 404aeef235
1 changed files with 20 additions and 6 deletions

View File

@ -17,6 +17,8 @@ import { FitAddon } from "xterm-addon-fit";
import "xterm/css/xterm.css"; import "xterm/css/xterm.css";
const DEBUG = window.location.hash === "#debug";
interface RijuConfig { interface RijuConfig {
id: string; id: string;
monacoLang: string; monacoLang: string;
@ -61,6 +63,9 @@ class RijuMessageReader extends AbstractMessageReader {
} }
switch (message?.event) { switch (message?.event) {
case "lspOutput": case "lspOutput":
if (DEBUG) {
console.log("RECEIVE LSP:", message?.output);
}
this.callback!(message?.output); this.callback!(message?.output);
break; break;
} }
@ -77,6 +82,9 @@ class RijuMessageWriter extends AbstractMessageWriter {
} }
write(msg: Message): void { write(msg: Message): void {
if (DEBUG) {
console.log("SEND LSP:", msg);
}
this.socket.send(JSON.stringify({ event: "lspInput", input: msg })); this.socket.send(JSON.stringify({ event: "lspInput", input: msg }));
} }
} }
@ -99,6 +107,13 @@ async function main() {
const initialRetryDelayMs = 200; const initialRetryDelayMs = 200;
let retryDelayMs = initialRetryDelayMs; let retryDelayMs = initialRetryDelayMs;
function sendMessage(message: any) {
if (DEBUG) {
console.log("SEND", message);
}
socket?.send(JSON.stringify(message));
}
function tryConnect() { function tryConnect() {
let clientDisposable: Disposable | null = null; let clientDisposable: Disposable | null = null;
console.log("Connecting to server..."); console.log("Connecting to server...");
@ -118,6 +133,9 @@ async function main() {
console.error("Malformed message from server:", event.data); console.error("Malformed message from server:", event.data);
return; return;
} }
if (DEBUG && message?.event !== "lspOutput") {
console.log("RECEIVE:", message);
}
if (message?.event && message?.event !== "error") { if (message?.event && message?.event !== "error") {
retryDelayMs = initialRetryDelayMs; retryDelayMs = initialRetryDelayMs;
} }
@ -190,11 +208,7 @@ async function main() {
let socket: WebSocket | null = null; let socket: WebSocket | null = null;
tryConnect(); tryConnect();
term.onData( term.onData((data) => sendMessage({ event: "terminalInput", input: data }));
(data) =>
socket &&
socket.send(JSON.stringify({ event: "terminalInput", input: data }))
);
const editor = monaco.editor.create(document.getElementById("editor")!, { const editor = monaco.editor.create(document.getElementById("editor")!, {
minimap: { enabled: false }, minimap: { enabled: false },
@ -205,7 +219,7 @@ async function main() {
monaco.editor.setModelLanguage(editor.getModel()!, config.monacoLang); monaco.editor.setModelLanguage(editor.getModel()!, config.monacoLang);
document.getElementById("runButton")!.addEventListener("click", () => { document.getElementById("runButton")!.addEventListener("click", () => {
socket?.send(JSON.stringify({ event: "runCode", code: editor.getValue() })); sendMessage({ event: "runCode", code: editor.getValue() });
}); });
MonacoServices.install(editor); MonacoServices.install(editor);