sussudio
Version:
An unofficial VS Code Internal API
84 lines (83 loc) • 3.75 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 "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { IProcessEnvironment } from "../../../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>;
}