@sussudio/platform
Version:
Internal APIs for VS Code's service injection the base services.
104 lines (102 loc) • 3.57 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* 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>;
}