From f7f6ac3554d0b5e380985b1a2070000bfd8ef77b Mon Sep 17 00:00:00 2001 From: lf- Date: Wed, 30 Dec 2020 01:17:25 -0800 Subject: Add an option for extra env vars in the Code extension --- editors/code/src/client.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'editors/code/src/client.ts') diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index 63ab82dde..539e487ec 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts @@ -6,6 +6,10 @@ import { DocumentSemanticsTokensSignature, DocumentSemanticsTokensEditsSignature import { assert } from './util'; import { WorkspaceEdit } from 'vscode'; +export interface Env { + [name: string]: string; +} + function renderCommand(cmd: ra.CommandLink) { return `[${cmd.title}](command:${cmd.command}?${encodeURIComponent(JSON.stringify(cmd.arguments))} '${cmd.tooltip!}')`; } @@ -27,14 +31,17 @@ async function semanticHighlightingWorkaround v return res; } -export function createClient(serverPath: string, cwd: string): lc.LanguageClient { +export function createClient(serverPath: string, cwd: string, extraEnv: Env): lc.LanguageClient { // '.' Is the fallback if no folder is open // TODO?: Workspace folders support Uri's (eg: file://test.txt). // It might be a good idea to test if the uri points to a file. + const newEnv = Object.assign({}, process.env); + Object.assign(newEnv, extraEnv); + const run: lc.Executable = { command: serverPath, - options: { cwd }, + options: { cwd, env: newEnv }, }; const serverOptions: lc.ServerOptions = { run, -- cgit v1.2.3