Skip to content

Commit c6f6657

Browse files
committed
add TextEncoder to runtime
1 parent eba3d29 commit c6f6657

4 files changed

Lines changed: 15 additions & 7 deletions

File tree

extensions/css-language-features/client/src/browser/cssClientMain.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ import { LanguageClient } from 'vscode-languageclient/browser';
1111
declare const Worker: {
1212
new(stringUrl: string): any;
1313
};
14+
declare const TextDecoder: {
15+
new(encoding?: string): { decode(buffer: ArrayBuffer): string; };
16+
};
1417

1518
// this method is called when vs code is activated
1619
export function activate(context: ExtensionContext) {
@@ -21,7 +24,7 @@ export function activate(context: ExtensionContext) {
2124
return new LanguageClient(id, name, clientOptions, worker);
2225
};
2326

24-
startClient(context, newLanguageClient, {});
27+
startClient(context, newLanguageClient, { TextDecoder });
2528

2629
} catch (e) {
2730
console.log(e);

extensions/css-language-features/client/src/cssClient.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ const localize = nls.loadMessageBundle();
1717

1818
export type LanguageClientConstructor = (name: string, description: string, clientOptions: LanguageClientOptions) => CommonLanguageClient;
1919

20-
export function startClient(context: ExtensionContext, newLanguageClient: LanguageClientConstructor, runtime: { fs?: RequestService }) {
20+
export interface Runtime {
21+
TextDecoder: { new(encoding?: string): { decode(buffer: ArrayBuffer): string; } };
22+
fs?: RequestService;
23+
}
24+
25+
export function startClient(context: ExtensionContext, newLanguageClient: LanguageClientConstructor, runtime: Runtime) {
2126

2227
const customDataSource = getCustomDataSource(context.subscriptions);
2328

extensions/css-language-features/client/src/node/cssClientMain.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import { getNodeFSRequestService } from './nodeFs';
77
import { ExtensionContext, extensions } from 'vscode';
88
import { startClient, LanguageClientConstructor } from '../cssClient';
9-
109
import { ServerOptions, TransportKind, LanguageClientOptions, LanguageClient } from 'vscode-languageclient/node';
10+
import { TextDecoder } from 'util';
1111

1212
// this method is called when vs code is activated
1313
export function activate(context: ExtensionContext) {
@@ -34,5 +34,5 @@ export function activate(context: ExtensionContext) {
3434
return new LanguageClient(id, name, serverOptions, clientOptions);
3535
};
3636

37-
startClient(context, newLanguageClient, { fs: getNodeFSRequestService() });
37+
startClient(context, newLanguageClient, { fs: getNodeFSRequestService(), TextDecoder });
3838
}

extensions/css-language-features/client/src/requests.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { Uri, workspace } from 'vscode';
77
import { RequestType, CommonLanguageClient } from 'vscode-languageclient';
8-
import { TextDecoder } from 'util';
8+
import { Runtime } from './cssClient';
99

1010
export namespace FsContentRequest {
1111
export const type: RequestType<{ uri: string; encoding?: string; }, string, any, any> = new RequestType('fs/content');
@@ -18,14 +18,14 @@ export namespace FsReadDirRequest {
1818
export const type: RequestType<string, [string, FileType][], any, any> = new RequestType('fs/readDir');
1919
}
2020

21-
export function serveFileSystemRequests(client: CommonLanguageClient, runtime: { fs?: RequestService; }) {
21+
export function serveFileSystemRequests(client: CommonLanguageClient, runtime: Runtime) {
2222
client.onRequest(FsContentRequest.type, (param: { uri: string; encoding?: string; }) => {
2323
const uri = Uri.parse(param.uri);
2424
if (uri.scheme === 'file' && runtime.fs) {
2525
return runtime.fs.getContent(param.uri);
2626
}
2727
return workspace.fs.readFile(uri).then(buffer => {
28-
return new TextDecoder(param.encoding).decode(buffer);
28+
return new runtime.TextDecoder(param.encoding).decode(buffer);
2929
});
3030
});
3131
client.onRequest(FsReadDirRequest.type, (uriString: string) => {

0 commit comments

Comments
 (0)