diff --git a/vscode/src/extension.ts b/vscode/src/extension.ts index 24c3240..d119db8 100644 --- a/vscode/src/extension.ts +++ b/vscode/src/extension.ts @@ -35,7 +35,7 @@ function findExecutable(context: vscode.ExtensionContext, configPath: string | u export function activate(context: vscode.ExtensionContext) { const config = vscode.workspace.getConfiguration('tsl') - const serverArguments = config.get('server.arguments') || [] + let serverArguments = config.get('server.arguments') || [] const serverBinary = process.platform === 'win32' ? 'tsl-server.exe' : 'tsl-server' let serverExe = findExecutable( @@ -66,16 +66,18 @@ export function activate(context: vscode.ExtensionContext) { ) } - const runArgs = [...serverArguments] - const debugArgs = ['--log=trace', '--log-stderr'] - if (interpreterExe) { let interpreterDir = path.dirname(interpreterExe) interpreterDir = interpreterDir.replace(/\\/g, '/') + '/' - runArgs.push(`--interpreter=${interpreterDir}`) - debugArgs.push(`--interpreter=${interpreterDir}`) + serverArguments = serverArguments.filter(arg => !arg.startsWith('--interpreter=')) + serverArguments.push(`--interpreter=${interpreterDir}`) } + const runArgs = [...serverArguments] + const debugArgs = serverArguments.map(arg => arg.startsWith('--log=') ? '--log=trace' : arg) + if (!debugArgs.some(arg => arg.startsWith('--log='))) debugArgs.push('--log=trace') + if (!debugArgs.includes('--log-stderr')) debugArgs.push('--log-stderr') + const serverOptions: ServerOptions = { run: { command: serverExe, transport: TransportKind.stdio, args: runArgs }, debug: { command: serverExe, transport: TransportKind.stdio, args: debugArgs } diff --git a/vscode/tsl-tools-3.0.0.vsix b/vscode/tsl-tools-3.0.0.vsix index 41bf712..9c6c268 100644 Binary files a/vscode/tsl-tools-3.0.0.vsix and b/vscode/tsl-tools-3.0.0.vsix differ