Keep both capability event types

This commit is contained in:
Daniel Imms 2023-08-25 09:21:03 -07:00
parent 0d474f0081
commit ca22267ddc
No known key found for this signature in database
GPG key ID: E5CF412B63651C69
10 changed files with 39 additions and 37 deletions

View file

@ -83,26 +83,28 @@ export interface ITerminalCapabilityStore {
readonly items: IterableIterator<TerminalCapability>;
/**
* Fired when a capability is added.
* @deprecated Use onDidAddCapability2
* Fired when a capability is added. The event data for this is only the
* {@link TerminalCapability} type, use {@link onDidAddCapability} to access the actual
* capability.
*/
readonly onDidAddCapability: Event<TerminalCapability>;
readonly onDidAddCapabilityType: Event<TerminalCapability>;
/**
* Fired when a capability is removed.
* @deprecated Use onDidRemoveCapability2
* Fired when a capability is removed. The event data for this is only the
* {@link TerminalCapability} type, use {@link onDidAddCapability} to access the actual
* capability.
*/
readonly onDidRemoveCapability: Event<TerminalCapability>;
readonly onDidRemoveCapabilityType: Event<TerminalCapability>;
/**
* Fired when a capability is added.
*/
readonly onDidAddCapability2: Event<TerminalCapabilityChangeEvent<any>>;
readonly onDidAddCapability: Event<TerminalCapabilityChangeEvent<any>>;
/**
* Fired when a capability is removed.
*/
readonly onDidRemoveCapability2: Event<TerminalCapabilityChangeEvent<any>>;
readonly onDidRemoveCapability: Event<TerminalCapabilityChangeEvent<any>>;
/**
* Gets whether the capability exists in the store.

View file

@ -11,14 +11,14 @@ export class TerminalCapabilityStore extends Disposable implements ITerminalCapa
private _map: Map<TerminalCapability, { type: TerminalCapability }> = new Map();
private readonly _onDidRemoveCapability = this._register(new Emitter<TerminalCapability>());
readonly onDidRemoveCapability = this._onDidRemoveCapability.event;
readonly onDidRemoveCapabilityType = this._onDidRemoveCapability.event;
private readonly _onDidAddCapability = this._register(new Emitter<TerminalCapability>());
readonly onDidAddCapability = this._onDidAddCapability.event;
readonly onDidAddCapabilityType = this._onDidAddCapability.event;
private readonly _onDidRemoveCapability2 = this._register(new Emitter<TerminalCapabilityChangeEvent<any>>());
readonly onDidRemoveCapability2 = this._onDidRemoveCapability2.event;
readonly onDidRemoveCapability = this._onDidRemoveCapability2.event;
private readonly _onDidAddCapability2 = this._register(new Emitter<TerminalCapabilityChangeEvent<any>>());
readonly onDidAddCapability2 = this._onDidAddCapability2.event;
readonly onDidAddCapability = this._onDidAddCapability2.event;
get items(): IterableIterator<TerminalCapability> {
return this._map.keys();
@ -54,14 +54,14 @@ export class TerminalCapabilityStoreMultiplexer extends Disposable implements IT
readonly _stores: ITerminalCapabilityStore[] = [];
private readonly _onDidRemoveCapability = this._register(new Emitter<TerminalCapability>());
readonly onDidRemoveCapability = this._onDidRemoveCapability.event;
readonly onDidRemoveCapabilityType = this._onDidRemoveCapability.event;
private readonly _onDidAddCapability = this._register(new Emitter<TerminalCapability>());
readonly onDidAddCapability = this._onDidAddCapability.event;
readonly onDidAddCapabilityType = this._onDidAddCapability.event;
private readonly _onDidRemoveCapability2 = this._register(new Emitter<TerminalCapabilityChangeEvent<any>>());
readonly onDidRemoveCapability2 = this._onDidRemoveCapability2.event;
readonly onDidRemoveCapability = this._onDidRemoveCapability2.event;
private readonly _onDidAddCapability2 = this._register(new Emitter<TerminalCapabilityChangeEvent<any>>());
readonly onDidAddCapability2 = this._onDidAddCapability2.event;
readonly onDidAddCapability = this._onDidAddCapability2.event;
get items(): IterableIterator<TerminalCapability> {
return this._items();
@ -102,9 +102,9 @@ export class TerminalCapabilityStoreMultiplexer extends Disposable implements IT
this._onDidAddCapability.fire(capability);
this._onDidAddCapability2.fire({ id: capability, capability: store.get(capability)! });
}
store.onDidAddCapability(e => this._onDidAddCapability.fire(e));
store.onDidAddCapability2(e => this._onDidAddCapability2.fire(e));
store.onDidRemoveCapability(e => this._onDidRemoveCapability.fire(e));
store.onDidRemoveCapability2(e => this._onDidRemoveCapability2.fire(e));
store.onDidAddCapabilityType(e => this._onDidAddCapability.fire(e));
store.onDidAddCapability(e => this._onDidAddCapability2.fire(e));
store.onDidRemoveCapabilityType(e => this._onDidRemoveCapability.fire(e));
store.onDidRemoveCapability(e => this._onDidRemoveCapability2.fire(e));
}
}

View file

@ -177,8 +177,8 @@ export class TerminalEditorService extends Disposable implements ITerminalEditor
this._instanceDisposables.set(inputKey, [
instance.onDidFocus(this._onDidFocusInstance.fire, this._onDidFocusInstance),
instance.onDisposed(this._onDidDisposeInstance.fire, this._onDidDisposeInstance),
instance.capabilities.onDidAddCapability(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidRemoveCapability(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidAddCapabilityType(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidRemoveCapabilityType(() => this._onDidChangeInstanceCapability.fire(instance)),
]);
this.instances.push(instance);
this._onDidChangeInstances.fire();

View file

@ -369,8 +369,8 @@ export class TerminalGroup extends Disposable implements ITerminalGroup {
this._setActiveInstance(instance);
this._onDidFocusInstance.fire(instance);
}),
instance.capabilities.onDidAddCapability(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidRemoveCapability(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidAddCapabilityType(() => this._onDidChangeInstanceCapability.fire(instance)),
instance.capabilities.onDidRemoveCapabilityType(() => this._onDidChangeInstanceCapability.fire(instance)),
]);
}

View file

@ -412,7 +412,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
this._terminalShellIntegrationEnabledContextKey = TerminalContextKeys.terminalShellIntegrationEnabled.bindTo(scopedContextKeyService);
this._logService.trace(`terminalInstance#ctor (instanceId: ${this.instanceId})`, this._shellLaunchConfig);
this._register(this.capabilities.onDidAddCapability(e => {
this._register(this.capabilities.onDidAddCapabilityType(e => {
this._logService.debug('terminalInstance added capability', e);
if (e === TerminalCapability.CwdDetection) {
this.capabilities.get(TerminalCapability.CwdDetection)?.onDidChangeCwd(e => {
@ -429,7 +429,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
});
}
}));
this._register(this.capabilities.onDidRemoveCapability(e => this._logService.debug('terminalInstance removed capability', e)));
this._register(this.capabilities.onDidRemoveCapabilityType(e => this._logService.debug('terminalInstance removed capability', e)));
// Resolve just the icon ahead of time so that it shows up immediately in the tabs. This is
// disabled in remote because this needs to be sync and the OS may differ on the remote
@ -804,7 +804,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
this._updateProcessCwd();
}
});
this._register(this.capabilities.onDidAddCapability(e => {
this._register(this.capabilities.onDidAddCapabilityType(e => {
if (e === TerminalCapability.CwdDetection) {
onKeyListener?.dispose();
onKeyListener = undefined;

View file

@ -1246,7 +1246,7 @@ export class TerminalService extends Disposable implements ITerminalService {
}
// Added capabilities
const addCapabilityMultiplexer = this.onInstanceEvent(instance => Event.map(instance.capabilities.onDidAddCapability2, changeEvent => ({ instance, changeEvent })));
const addCapabilityMultiplexer = this.onInstanceEvent(instance => Event.map(instance.capabilities.onDidAddCapability, changeEvent => ({ instance, changeEvent })));
addCapabilityMultiplexer.event(e => {
if (e.changeEvent.id === capabilityId) {
addCapability(e.instance, e.changeEvent.capability);
@ -1254,7 +1254,7 @@ export class TerminalService extends Disposable implements ITerminalService {
});
// Removed capabilities
const removeCapabilityMultiplexer = this.onInstanceEvent(instance => instance.capabilities.onDidRemoveCapability2);
const removeCapabilityMultiplexer = this.onInstanceEvent(instance => instance.capabilities.onDidRemoveCapability);
removeCapabilityMultiplexer.event(e => {
if (e.id === capabilityId) {
capabilityListeners.deleteAndDispose(e.capability);

View file

@ -112,7 +112,7 @@ export class TerminalViewPane extends ViewPane {
}
}));
this._register(this._terminalService.onDidCreateInstance((i) => {
i.capabilities.onDidAddCapability(c => {
i.capabilities.onDidAddCapabilityType(c => {
if (c === TerminalCapability.CommandDetection && this._gutterDecorationsEnabled()) {
this._parentDomElement?.classList.add('shell-integration');
}

View file

@ -69,8 +69,8 @@ export class DecorationAddon extends Disposable implements ITerminalAddon {
}));
this._register(this._themeService.onDidColorThemeChange(() => this._refreshStyles(true)));
this._updateDecorationVisibility();
this._register(this._capabilities.onDidAddCapability(c => this._createCapabilityDisposables(c)));
this._register(this._capabilities.onDidRemoveCapability(c => this._removeCapabilityDisposables(c)));
this._register(this._capabilities.onDidAddCapabilityType(c => this._createCapabilityDisposables(c)));
this._register(this._capabilities.onDidRemoveCapabilityType(c => this._removeCapabilityDisposables(c)));
this._register(lifecycleService.onWillShutdown(() => this._disposeAllDecorations()));
this._terminalDecorationHoverService = instantiationService.createInstance(TerminalDecorationHoverManager);
}

View file

@ -14,8 +14,8 @@ suite('TerminalCapabilityStore', () => {
setup(() => {
store = new TerminalCapabilityStore();
store.onDidAddCapability(e => addEvents.push(e));
store.onDidRemoveCapability(e => removeEvents.push(e));
store.onDidAddCapabilityType(e => addEvents.push(e));
store.onDidRemoveCapabilityType(e => removeEvents.push(e));
addEvents = [];
removeEvents = [];
});
@ -61,8 +61,8 @@ suite('TerminalCapabilityStoreMultiplexer', () => {
setup(() => {
multiplexer = new TerminalCapabilityStoreMultiplexer();
multiplexer.onDidAddCapability(e => addEvents.push(e));
multiplexer.onDidRemoveCapability(e => removeEvents.push(e));
multiplexer.onDidAddCapabilityType(e => addEvents.push(e));
multiplexer.onDidRemoveCapabilityType(e => removeEvents.push(e));
store1 = new TerminalCapabilityStore();
store2 = new TerminalCapabilityStore();
addEvents = [];

View file

@ -89,7 +89,7 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
if (commandDetectionCapability) {
this._registerCommandHandlers();
} else {
this._register(this._capabilities.onDidAddCapability(c => {
this._register(this._capabilities.onDidAddCapabilityType(c => {
if (c === TerminalCapability.CommandDetection) {
this._registerCommandHandlers();
}