Cleanup app.js

This commit is contained in:
plondon 2021-09-25 12:04:10 -04:00
parent 6c7844531b
commit 40db08fa3d
1 changed files with 2 additions and 125 deletions

View File

@ -1,5 +1,3 @@
import { AbstractMessageReader } from "vscode-jsonrpc/lib/messageReader.js";
import { AbstractMessageWriter } from "vscode-jsonrpc/lib/messageWriter.js";
import { Terminal } from "xterm"; import { Terminal } from "xterm";
import { FitAddon } from "xterm-addon-fit"; import { FitAddon } from "xterm-addon-fit";
@ -8,11 +6,6 @@ import "xterm/css/xterm.css";
const DEBUG = window.location.hash === "#debug"; const DEBUG = window.location.hash === "#debug";
const config = window.rijuConfig; const config = window.rijuConfig;
const formatButton = document.getElementById("formatButton");
const lspButton = document.getElementById("lspButton");
const lspButtonState = document.getElementById("lspButtonState");
const connectionStatus = document.getElementById("connectionStatus");
function closeModal() { function closeModal() {
document.querySelector("html").classList.remove("is-clipped"); document.querySelector("html").classList.remove("is-clipped");
document.getElementById("modal").classList.remove("is-active"); document.getElementById("modal").classList.remove("is-active");
@ -26,85 +19,6 @@ function showError({ message, data }) {
document.querySelector("html").classList.add("is-clipped"); document.querySelector("html").classList.add("is-clipped");
} }
class RijuMessageReader extends AbstractMessageReader {
constructor(socket) {
super();
this.state = "initial";
this.callback = null;
this.messageQueue = [];
this.socket = socket;
this.socket.addEventListener("message", (event) => {
this.readMessage(event.data);
});
}
listen(callback) {
if (this.state === "initial") {
this.state = "listening";
this.callback = callback;
while (this.messageQueue.length > 0) {
this.readMessage(this.messageQueue.pop());
}
}
}
readMessage(rawMessage) {
if (this.state === "initial") {
this.messageQueue.splice(0, 0, rawMessage);
} else if (this.state === "listening") {
let message;
try {
message = JSON.parse(rawMessage);
} catch (err) {
return;
}
switch (message && message.event) {
case "lspOutput":
if (DEBUG) {
console.log("RECEIVE LSP:", message.output);
}
this.callback(message.output);
break;
}
}
}
}
class RijuMessageWriter extends AbstractMessageWriter {
constructor(socket) {
super();
this.socket = socket;
}
write(msg) {
switch (msg.method) {
case "initialize":
msg.params.processId = null;
if (config.lsp.disableDynamicRegistration) {
this.disableDynamicRegistration(msg);
}
break;
case "textDocument/didOpen":
if (config.lsp.lang) {
msg.params.textDocument.languageId = config.lsp.lang;
}
}
if (DEBUG) {
console.log("SEND LSP:", msg);
}
this.socket.send(JSON.stringify({ event: "lspInput", input: msg }));
}
disableDynamicRegistration(msg) {
if (!msg || typeof msg !== "object") return;
for (const [key, val] of Object.entries(msg)) {
if (key === "dynamicRegistration" && val === true)
msg.dynamicRegistration = false;
this.disableDynamicRegistration(val);
}
}
}
async function main() { async function main() {
let serviceLogBuffers = {}; let serviceLogBuffers = {};
let serviceLogLines = {}; let serviceLogLines = {};
@ -147,10 +61,10 @@ async function main() {
window.addEventListener("message", (msg) => { window.addEventListener("message", (msg) => {
try { try {
if (allowedOrigins.indexOf(msg.origin) !== -1) { if (allowedOrigins.indexOf(msg.origin) !== -1) {
sendMessage(msg.data) sendMessage(msg.data);
} }
} catch (e) { } catch (e) {
console.log("message error: ", e) console.log("message error: ", e);
} }
console.log("message from codeamigo", msg); console.log("message from codeamigo", msg);
}); });
@ -160,7 +74,6 @@ async function main() {
serviceLogLines = {}; serviceLogLines = {};
let clientDisposable = null; let clientDisposable = null;
let servicesDisposable = null; let servicesDisposable = null;
connectionStatus.innerText = "connecting...";
console.log("Connecting to server..."); console.log("Connecting to server...");
socket = new WebSocket( socket = new WebSocket(
(document.location.protocol === "http:" ? "ws://" : "wss://") + (document.location.protocol === "http:" ? "ws://" : "wss://") +
@ -168,7 +81,6 @@ async function main() {
`/api/v1/ws?lang=${encodeURIComponent(config.id)}` `/api/v1/ws?lang=${encodeURIComponent(config.id)}`
); );
socket.addEventListener("open", () => { socket.addEventListener("open", () => {
connectionStatus.innerText = "connected";
console.log("Successfully connected to server"); console.log("Successfully connected to server");
}); });
socket.addEventListener("message", (event) => { socket.addEventListener("message", (event) => {
@ -202,10 +114,6 @@ async function main() {
term.write(message.output); term.write(message.output);
return; return;
case "lspStopped": case "lspStopped":
lspButton.disabled = false;
lspButton.classList.remove("is-loading");
lspButton.classList.add("is-light");
lspButtonState.innerText = "OFF";
if (clientDisposable) { if (clientDisposable) {
clientDisposable.dispose(); clientDisposable.dispose();
clientDisposable = null; clientDisposable = null;
@ -216,10 +124,6 @@ async function main() {
} }
break; break;
case "lspStarted": case "lspStarted":
lspButton.disabled = false;
lspButton.classList.remove("is-loading");
lspButton.classList.remove("is-light");
lspButtonState.innerText = "ON";
if (typeof message.root !== "string") { if (typeof message.root !== "string") {
console.error("Unexpected message from server:", message); console.error("Unexpected message from server:", message);
return; return;
@ -270,10 +174,6 @@ async function main() {
}); });
break; break;
case "lsp": case "lsp":
lspButton.disabled = false;
lspButton.classList.remove("is-loading");
lspButton.classList.add("is-light");
lspButtonState.innerText = "CRASHED";
break; break;
case "terminal": case "terminal":
term.write(`\r\n[${message.error}]`); term.write(`\r\n[${message.error}]`);
@ -299,12 +199,6 @@ async function main() {
servicesDisposable.dispose(); servicesDisposable.dispose();
servicesDisposable = null; servicesDisposable = null;
} }
if (lspButtonState.innerText === "ON") {
lspButton.disabled = false;
lspButton.classList.remove("is-loading");
lspButton.classList.add("is-light");
lspButtonState.innerText = "DISCONNECTED";
}
scheduleConnect(); scheduleConnect();
}); });
} }
@ -312,7 +206,6 @@ async function main() {
function scheduleConnect() { function scheduleConnect() {
idleDueToInactivity = new Date() - lastActivityTimestamp > 10 * 60 * 1000; idleDueToInactivity = new Date() - lastActivityTimestamp > 10 * 60 * 1000;
if (idleDueToInactivity) { if (idleDueToInactivity) {
connectionStatus.innerText = "idle";
return; return;
} }
const delay = retryDelayMs * Math.random(); const delay = retryDelayMs * Math.random();
@ -329,22 +222,6 @@ async function main() {
recordActivity(); recordActivity();
}); });
if (config.lsp) {
lspButton.classList.remove("is-hidden");
lspButton.addEventListener("click", () => {
lspButton.classList.add("is-loading");
lspButton.disabled = true;
lspButton.classList.remove("is-light");
if (lspButtonState.innerText === "ON") {
sendMessage({ event: "lspStop" });
} else {
serviceLogBuffers["lsp"] = "";
serviceLogLines["lsp"] = [];
sendMessage({ event: "lspStart" });
}
});
}
for (const elt of document.querySelectorAll(".will-close-modal")) { for (const elt of document.querySelectorAll(".will-close-modal")) {
elt.addEventListener("click", closeModal); elt.addEventListener("click", closeModal);
} }