terminal: standardize on customPtyImplementation

I initially was doing a larger refactor where the `onInstanceRequestStartExtensionTerminal`
event was removed from the terminalService and instead events would only
be fired in the proxy instance itself, which would be encapsulated better.
However, the task system depends on the global even firing so that the
MainThreadTerminalService can get the terminal for tasks that create
pseudoterminals, so this didn't work out. Kept a more focus refactor
for now.
This commit is contained in:
Connor Peet
2021-04-12 11:03:54 -07:00
parent 6b666279b8
commit 8e183f0d2e
8 changed files with 11 additions and 20 deletions

View File

@@ -13,6 +13,7 @@ import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBu
import { ExtHostContext, ExtHostTerminalServiceShape, IExtHostContext, ITerminalDimensionsDto, MainContext, MainThreadTerminalServiceShape, TerminalIdentifier, TerminalLaunchConfig } from 'vs/workbench/api/common/extHost.protocol';
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
import { ITerminalExternalLinkProvider, ITerminalInstance, ITerminalInstanceService, ITerminalLink, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
import { TerminalProcessExtHostProxy } from 'vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy';
import { IEnvironmentVariableService, ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable';
import { deserializeEnvironmentVariableCollection, serializeEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariableShared';
import { IAvailableProfilesRequest as IAvailableProfilesRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest, ITerminalProcessExtHostProxy } from 'vs/workbench/contrib/terminal/common/terminal';
@@ -130,7 +131,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
env: launchConfig.env,
strictEnv: launchConfig.strictEnv,
hideFromUser: launchConfig.hideFromUser,
isExtensionCustomPtyTerminal: launchConfig.isExtensionCustomPtyTerminal,
customPtyImplementation: (id, rows, cols) => new TerminalProcessExtHostProxy(id, cols, rows, this._terminalService),
extHostTerminalId: extHostTerminalId,
isFeatureTerminal: launchConfig.isFeatureTerminal,
isExtensionOwnedTerminal: launchConfig.isExtensionOwnedTerminal