UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

104 lines (102 loc) 3.57 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { Event } from '@sussudio/base/common/event.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import { IProcessEnvironment } from '@sussudio/base/common/platform.mjs'; import { ILogService } from '../../log/common/log.mjs'; import { IProductService } from '../../product/common/productService.mjs'; import { IShellLaunchConfig, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap as IProcessPropertyMap, ProcessPropertyType, TerminalShellType, IProcessReadyEvent, ITerminalProcessOptions, } from '../common/terminal.mjs'; export declare class TerminalProcess extends Disposable implements ITerminalChildProcess { readonly shellLaunchConfig: IShellLaunchConfig; /** * environment used for `findExecutable` */ private readonly _executableEnv; private readonly _options; private readonly _logService; private readonly _productService; readonly id = 0; readonly shouldPersist = false; private _properties; private static _lastKillOrStart; private _exitCode; private _exitMessage; private _closeTimeout; private _ptyProcess; private _currentTitle; private _processStartupComplete; private _isDisposed; private _windowsShellHelper; private _childProcessMonitor; private _titleInterval; private _writeQueue; private _writeTimeout; private _delayedResizer; private readonly _initialCwd; private readonly _ptyOptions; private _isPtyPaused; private _unacknowledgedCharCount; get exitMessage(): string | undefined; get currentTitle(): string; get shellType(): TerminalShellType; get hasChildProcesses(): boolean; private readonly _onProcessData; readonly onProcessData: Event<string>; private readonly _onProcessReady; readonly onProcessReady: Event<IProcessReadyEvent>; private readonly _onDidChangeProperty; readonly onDidChangeProperty: Event<IProcessProperty<any>>; private readonly _onProcessExit; readonly onProcessExit: Event<number>; constructor( shellLaunchConfig: IShellLaunchConfig, cwd: string, cols: number, rows: number, env: IProcessEnvironment, /** * environment used for `findExecutable` */ _executableEnv: IProcessEnvironment, _options: ITerminalProcessOptions, _logService: ILogService, _productService: IProductService, ); start(): Promise<ITerminalLaunchError | undefined>; private _validateCwd; private _validateExecutable; private setupPtyProcess; dispose(): void; private _setupTitlePolling; private _queueProcessExit; private _kill; private _throttleKillSpawn; private _sendProcessId; private _sendProcessTitle; shutdown(immediate: boolean): void; input(data: string, isBinary?: boolean): void; processBinary(data: string): Promise<void>; refreshProperty<T extends ProcessPropertyType>(type: T): Promise<IProcessPropertyMap[T]>; updateProperty<T extends ProcessPropertyType>(type: T, value: IProcessPropertyMap[T]): Promise<void>; private _startWrite; private _doWrite; resize(cols: number, rows: number): void; acknowledgeDataEvent(charCount: number): void; clearUnacknowledgedChars(): void; setUnicodeVersion(version: '6' | '11'): Promise<void>; getInitialCwd(): Promise<string>; getCwd(): Promise<string>; getLatency(): Promise<number>; }