Add VSCode extension output channel
This commit is contained in:
@@ -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 };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user