UNPKG

@sussudio/platform

Version:

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

71 lines (69 loc) 3.08 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { IShellIntegration, ShellIntegrationStatus } from '../terminal.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import { TerminalCapabilityStore } from '../capabilities/terminalCapabilityStore.mjs'; import { IBufferMarkCapability, ICommandDetectionCapability, ICwdDetectionCapability, ISerializedCommandDetectionCapability, } from '../capabilities/capabilities.mjs'; import { ILogService } from '../../../log/common/log.mjs'; import { ITelemetryService } from '../../../telemetry/common/telemetry.mjs'; import type { ITerminalAddon, Terminal } from 'xterm-headless'; /** * The shell integration addon extends xterm by reading shell integration sequences and creating * capabilities and passing along relevant sequences to the capabilities. This is meant to * encapsulate all handling/parsing of sequences so the capabilities don't need to. */ export declare class ShellIntegrationAddon extends Disposable implements IShellIntegration, ITerminalAddon { private readonly _disableTelemetry; private readonly _telemetryService; private readonly _logService; private _terminal?; readonly capabilities: TerminalCapabilityStore; private _hasUpdatedTelemetry; private _activationTimeout; private _commonProtocolDisposables; private _status; get status(): ShellIntegrationStatus; private readonly _onDidChangeStatus; readonly onDidChangeStatus: import('@sussudio/base/common/event.mjs').Event<ShellIntegrationStatus>; constructor( _disableTelemetry: boolean | undefined, _telemetryService: ITelemetryService | undefined, _logService: ILogService, ); private _disposeCommonProtocol; activate(xterm: Terminal): void; private _handleFinalTermSequence; private _doHandleFinalTermSequence; private _handleVSCodeSequence; private _ensureCapabilitiesOrAddFailureTelemetry; private _clearActivationTimeout; private _doHandleVSCodeSequence; private _updateCwd; private _doHandleITermSequence; private _doHandleSetWindowsFriendlyCwd; /** * Handles the sequence: `OSC 7 ; scheme://cwd ST` */ private _doHandleSetCwd; serialize(): ISerializedCommandDetectionCapability; deserialize(serialized: ISerializedCommandDetectionCapability): void; protected _createOrGetCwdDetection(): ICwdDetectionCapability; protected _createOrGetCommandDetection(terminal: Terminal): ICommandDetectionCapability; protected _createOrGetBufferMarkDetection(terminal: Terminal): IBufferMarkCapability; } export declare function deserializeMessage(message: string): string; export declare function parseKeyValueAssignment(message: string): { key: string; value: string | undefined; }; export declare function parseMarkSequence(sequence: string[]): { id?: string; hidden?: boolean; };