mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 21:55:38 +00:00
Pass object instead of unwrapped args for term create
This commit is contained in:
parent
51a5caf3f2
commit
08cf3df745
|
@ -18,9 +18,10 @@ import { serializeEnvironmentVariableCollection } from 'vs/workbench/contrib/ter
|
|||
import { CancellationTokenSource } from 'vs/base/common/cancellation';
|
||||
import { generateUuid } from 'vs/base/common/uuid';
|
||||
import { ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable';
|
||||
import { IProcessReadyEvent, IShellLaunchConfigDto, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalEnvironment, ITerminalLaunchError, ITerminalProfile, TerminalShellType } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessReadyEvent, IShellLaunchConfigDto, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError, ITerminalProfile, TerminalShellType } from 'vs/platform/terminal/common/terminal';
|
||||
import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBuffering';
|
||||
import { ThemeIcon } from 'vs/platform/theme/common/themeService';
|
||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||
|
||||
export interface IExtHostTerminalService extends ExtHostTerminalServiceShape, IDisposable {
|
||||
|
||||
|
@ -120,24 +121,27 @@ export class ExtHostTerminal {
|
|||
}
|
||||
|
||||
public async create(
|
||||
shellPath?: string,
|
||||
shellArgs?: string[] | string,
|
||||
cwd?: string | URI,
|
||||
env?: ITerminalEnvironment,
|
||||
icon?: URI | { light: URI; dark: URI } | ThemeIcon,
|
||||
initialText?: string,
|
||||
waitOnExit?: boolean,
|
||||
strictEnv?: boolean,
|
||||
hideFromUser?: boolean,
|
||||
isFeatureTerminal?: boolean,
|
||||
isExtensionOwnedTerminal?: boolean,
|
||||
useShellEnvironment?: boolean,
|
||||
isSplitTerminal?: boolean
|
||||
options: vscode.TerminalOptions,
|
||||
internalOptions?: ITerminalInternalOptions,
|
||||
): Promise<void> {
|
||||
if (typeof this._id !== 'string') {
|
||||
throw new Error('Terminal has already been created');
|
||||
}
|
||||
await this._proxy.$createTerminal(this._id, { name: this._name, shellPath, shellArgs, cwd, env, icon, initialText, waitOnExit, strictEnv, hideFromUser, isFeatureTerminal, isExtensionOwnedTerminal, useShellEnvironment, isSplitTerminal });
|
||||
await this._proxy.$createTerminal(this._id, {
|
||||
name: options.name,
|
||||
shellPath: withNullAsUndefined(options.shellPath),
|
||||
shellArgs: withNullAsUndefined(options.shellArgs),
|
||||
cwd: withNullAsUndefined(options.cwd),
|
||||
env: withNullAsUndefined(options.env),
|
||||
icon: withNullAsUndefined(options.iconPath),
|
||||
initialText: withNullAsUndefined(options.message),
|
||||
strictEnv: withNullAsUndefined(options.strictEnv),
|
||||
hideFromUser: withNullAsUndefined(options.hideFromUser),
|
||||
isFeatureTerminal: withNullAsUndefined(internalOptions?.isFeatureTerminal),
|
||||
isExtensionOwnedTerminal: true,
|
||||
useShellEnvironment: withNullAsUndefined(internalOptions?.useShellEnvironment),
|
||||
isSplitTerminal: withNullAsUndefined(internalOptions?.isSplitTerminal)
|
||||
});
|
||||
}
|
||||
|
||||
public async createExtensionTerminal(iconPath?: URI | { light: URI; dark: URI } | ThemeIcon): Promise<number> {
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||
import { generateUuid } from 'vs/base/common/uuid';
|
||||
import { TerminalLaunchConfig } from 'vs/workbench/api/common/extHost.protocol';
|
||||
import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService';
|
||||
import { BaseExtHostTerminalService, ExtHostTerminal, ITerminalInternalOptions } from 'vs/workbench/api/common/extHostTerminalService';
|
||||
import type * as vscode from 'vscode';
|
||||
|
@ -25,22 +23,7 @@ export class ExtHostTerminalService extends BaseExtHostTerminalService {
|
|||
public createTerminalFromOptions(options: vscode.TerminalOptions, internalOptions?: ITerminalInternalOptions): vscode.Terminal {
|
||||
const terminal = new ExtHostTerminal(this._proxy, generateUuid(), options, options.name);
|
||||
this._terminals.push(terminal);
|
||||
// TODO: Pass in options instead of individual props
|
||||
terminal.create(
|
||||
withNullAsUndefined(options.shellPath),
|
||||
withNullAsUndefined(options.shellArgs),
|
||||
withNullAsUndefined(options.cwd),
|
||||
withNullAsUndefined(options.env),
|
||||
withNullAsUndefined(options.iconPath),
|
||||
withNullAsUndefined(options.message),
|
||||
/*options.waitOnExit*/ undefined,
|
||||
withNullAsUndefined(options.strictEnv),
|
||||
withNullAsUndefined(options.hideFromUser),
|
||||
withNullAsUndefined(internalOptions?.isFeatureTerminal),
|
||||
true,
|
||||
withNullAsUndefined(internalOptions?.useShellEnvironment),
|
||||
withNullAsUndefined(internalOptions?.isSplitTerminal)
|
||||
);
|
||||
terminal.create(options, internalOptions);
|
||||
return terminal.value;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue