adopt new languageserver node modules

This commit is contained in:
Martin Aeschlimann
2020-05-28 18:04:11 +02:00
parent ed834bea3a
commit 1ece4c4c25
6 changed files with 46 additions and 70 deletions

View File

@@ -4,35 +4,21 @@
*--------------------------------------------------------------------------------------------*/
import { ExtensionContext } from 'vscode';
import { CommonLanguageClient, LanguageClientOptions, MessageTransports } from 'vscode-languageclient';
import { LanguageClientOptions } from 'vscode-languageclient';
import { startClient, LanguageClientConstructor } from '../cssClient';
import { BrowserMessageReader, BrowserMessageWriter } from 'vscode-jsonrpc/lib/browser/main';
import { LanguageClient } from 'vscode-languageclient/browser';
declare const Worker: {
new(stringUrl: string): any;
};
class BrowserLanguageClient extends CommonLanguageClient {
constructor(id: string, name: string, clientOptions: LanguageClientOptions, private worker: any) {
super(id, name, clientOptions);
}
protected createMessageTransports(_encoding: string): Promise<MessageTransports> {
const reader = new BrowserMessageReader(this.worker);
const writer = new BrowserMessageWriter(this.worker);
return Promise.resolve({ reader, writer });
}
}
// this method is called when vs code is activated
export function activate(context: ExtensionContext) {
const serverMain = context.asAbsolutePath('server/dist/browser/cssServerMain.js');
try {
const worker = new Worker(serverMain);
const newLanguageClient: LanguageClientConstructor = (id: string, name: string, clientOptions: LanguageClientOptions) => {
return new BrowserLanguageClient(id, name, clientOptions, worker);
return new LanguageClient(id, name, clientOptions, worker);
};
startClient(context, newLanguageClient, {});