move listener to contribution

This commit is contained in:
meganrogge
2023-09-18 13:59:04 -07:00
parent 1076502115
commit b2cb1d8a4c
2 changed files with 12 additions and 13 deletions
@@ -30,6 +30,7 @@ import { Position } from 'vs/editor/common/core/position';
import { ICommandWithEditorLine, TerminalAccessibleBufferProvider } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBufferProvider';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import { TerminalSettingId } from 'vs/platform/terminal/common/terminal';
import { Event } from 'vs/base/common/event';
class TextAreaSyncContribution extends DisposableStore implements ITerminalContribution {
static readonly ID = 'terminal.textAreaSync';
@@ -90,6 +91,14 @@ export class TerminalAccessibleViewContribution extends Disposable implements IT
xterm.raw.loadAddon(addon);
addon.activate(xterm.raw);
this._xterm = xterm;
this._register(this._xterm.raw.onWriteParsed(async () => {
if (this._xterm!.raw.buffer.active.baseY === 0) {
this._bufferTracker?.update();
this.show();
}
}));
const onRequestUpdateEditor = Event.latch(this._xterm.raw.onScroll);
this._register(onRequestUpdateEditor(() => this.show()));
}
show(): void {
if (!this._xterm) {
@@ -10,11 +10,10 @@ import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { TerminalCapability, ITerminalCommand } from 'vs/platform/terminal/common/capabilities/capabilities';
import { ICurrentPartialCommand } from 'vs/platform/terminal/common/capabilities/commandDetectionCapability';
import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration';
import { AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions, IAccessibleViewService, IAccessibleViewSymbol } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
import { AccessibleViewType, IAccessibleContentProvider, IAccessibleViewOptions, IAccessibleViewSymbol } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
import { IXtermTerminal, ITerminalInstance, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
import { BufferContentTracker } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker';
import type { Terminal } from 'xterm';
import { Event } from 'vs/base/common/event';
export class TerminalAccessibleBufferProvider extends DisposableStore implements IAccessibleContentProvider {
options: IAccessibleViewOptions = { type: AccessibleViewType.View, language: 'terminal' };
@@ -27,11 +26,9 @@ export class TerminalAccessibleBufferProvider extends DisposableStore implements
@IConfigurationService _configurationService: IConfigurationService,
@IContextKeyService _contextKeyService: IContextKeyService,
@ITerminalService _terminalService: ITerminalService,
@IConfigurationService configurationService: IConfigurationService,
@IAccessibleViewService private readonly _accessibleViewService: IAccessibleViewService
@IConfigurationService configurationService: IConfigurationService
) {
super();
this.registerListeners();
}
onClose() {
@@ -41,14 +38,7 @@ export class TerminalAccessibleBufferProvider extends DisposableStore implements
if (!this._xterm) {
return;
}
this._xterm.raw.onWriteParsed(async () => {
if (this._xterm!.raw.buffer.active.baseY === 0) {
this._bufferTracker.update();
this._accessibleViewService.show(this);
}
});
const onRequestUpdateEditor = Event.latch(this._xterm.raw.onScroll);
this.add(onRequestUpdateEditor(() => this._accessibleViewService.show(this)));
}
provideContent(): string {