codemp-vscode/src/extension.ts

39 lines
1.7 KiB
TypeScript
Raw Normal View History

import * as vscode from 'vscode';
import * as codemp from '@codemp/codemp'; // TODO why won't it work with a custom name???
2023-12-24 16:23:50 +01:00
import * as codemplogic from './codemp';
2023-12-24 15:04:34 +01:00
2024-02-14 15:41:32 +01:00
export let LOGGER = vscode.window.createOutputChannel("codemp", {log: true});
// extension is activated the very first time the command is executed
export function activate(context: vscode.ExtensionContext) {
// Use the console to output diagnostic information (console.log) and errors (console.error)
console.log('Congratulations, your extension "codempvscode" is now active!');
// start codemp log poller
2024-02-14 15:41:32 +01:00
log_poller_task(new codemp.JsLogger(true)); // don't await it! run it in background forever
// register commands: the commandId parameter must match the command field in package.json
for (let cmd of [
vscode.commands.registerCommand('codempvscode.connect', codemplogic.connect),
vscode.commands.registerCommand('codempvscode.join', codemplogic.join),
vscode.commands.registerCommand('codempvscode.attach', codemplogic.attach),
vscode.commands.registerCommand('codempvscode.createBuffer', codemplogic.createBuffer),
vscode.commands.registerCommand('codempvscode.listBuffers', codemplogic.listBuffers),
// vscode.commands.registerCommand('codempvscode.disconnectBuffer', codemplogic.disconnectBuffer),
vscode.commands.registerCommand('codempvscode.sync', codemplogic.sync),
2024-02-14 15:41:32 +01:00
vscode.commands.registerCommand('codempvscode.printOpCache', codemplogic.printOpCache)
]) {
context.subscriptions.push(cmd);
}
}
2024-02-14 15:41:32 +01:00
async function log_poller_task(logger: codemp.JsLogger) {
console.log("starting logger task");
while (true) {
let message = await logger.message();
if (message === null) break;
console.log(message);
2024-02-14 15:41:32 +01:00
LOGGER.info(message);
}
console.log("stopping logger task");
}