Add VSCode extension output channel

This commit is contained in:
2026-04-15 09:55:55 -06:00
parent 84be8d69b4
commit 8d1b92ab3e

View File

@@ -4,7 +4,10 @@ import * as vscode from "vscode";
import { LanguageClient, LanguageClientOptions, ServerOptions } from "vscode-languageclient/node"; import { LanguageClient, LanguageClientOptions, ServerOptions } from "vscode-languageclient/node";
export async function activate(context: vscode.ExtensionContext) { export async function activate(context: vscode.ExtensionContext) {
const server = launchLsp(); const output = vscode.window.createOutputChannel("Kerolox");
output.appendLine("Kerolox extension activated");
const server = launchLsp(output);
const clientOptions: LanguageClientOptions = { const clientOptions: LanguageClientOptions = {
documentSelector: [{ scheme: "file", language: "kerolox" }] documentSelector: [{ scheme: "file", language: "kerolox" }]
@@ -15,16 +18,17 @@ export async function activate(context: vscode.ExtensionContext) {
const dispose = async () => await client.stop(); const dispose = async () => await client.stop();
context.subscriptions.push({ dispose }); context.subscriptions.push({ dispose });
context.subscriptions.push(output);
} }
export function launchLsp(): ServerOptions { export function launchLsp(output: vscode.OutputChannel): ServerOptions {
return async () => { return async () => {
console.log("creating language server"); output.appendLine("Creating language server");
const server = new LanguageServer(); const server = new LanguageServer();
console.log("language server created"); output.appendLine("Language server created");
const writer = Writable.fromWeb(server.requests); const writer = Writable.fromWeb(server.requests);
const reader = Readable.fromWeb(server.responses); const reader = Readable.fromWeb(server.responses);
console.log("language server bound"); output.appendLine("Language server bound");
return { server, writer, reader }; return { server, writer, reader };
}; };
} }