diff --git a/server/src/lsp-server.ts b/server/src/lsp-server.ts index ad343a3d..3bcd1851 100644 --- a/server/src/lsp-server.ts +++ b/server/src/lsp-server.ts @@ -97,9 +97,10 @@ export class LspServer { this.logger.log('initialize', params); this.initializeParams = params; - const { logVerbosity, plugins }: TypeScriptInitializationOptions = { + const { logVerbosity, plugins, preferences }: TypeScriptInitializationOptions = { logVerbosity: this.options.tsserverLogVerbosity, plugins: [], + preferences: {}, ...this.initializeParams.initializationOptions }; const logFile = this.getLogFile(logVerbosity); @@ -124,7 +125,8 @@ export class LspServer { this.tspClient.start(); this.tspClient.request(CommandTypes.Configure, { preferences: { - allowTextChangesInNewFiles: true + allowTextChangesInNewFiles: true, + ...preferences } }); diff --git a/server/src/ts-protocol.ts b/server/src/ts-protocol.ts index 77f0ed82..673dfb3c 100644 --- a/server/src/ts-protocol.ts +++ b/server/src/ts-protocol.ts @@ -9,6 +9,7 @@ * **IMPORTANT** this module should not depend on `vscode-languageserver` only protocol and types */ import * as lsp from 'vscode-languageserver-protocol'; +import { UserPreferences } from 'typescript/lib/protocol'; export namespace TypeScriptRenameRequest { export const type = new lsp.RequestType("_typescript.rename"); @@ -22,6 +23,7 @@ export interface TypeScriptPlugin { export interface TypeScriptInitializationOptions { logVerbosity?: string plugins: TypeScriptPlugin[] + preferences?: UserPreferences } export type TypeScriptInitializeParams = lsp.InitializeParams & {