rm command, handle hiding accessible buffer in that class

This commit is contained in:
meganrogge
2023-08-25 08:41:54 -07:00
parent 6b74d08f5b
commit 65e6594a67
5 changed files with 12 additions and 24 deletions
@@ -478,6 +478,11 @@ export function registerTerminalActions() {
registerTerminalAction({
id: TerminalCommandId.Focus,
title: terminalStrings.focus,
keybinding: {
when: ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, TerminalContextKeys.accessibleBufferOnLastLine),
primary: KeyMod.CtrlCmd | KeyCode.DownArrow,
weight: KeybindingWeight.WorkbenchContrib
},
precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),
run: async (c) => {
const instance = c.service.activeInstance || await c.service.createTerminal({ location: TerminalLocation.Panel });
@@ -495,7 +495,6 @@ export const enum TerminalCommandId {
HideSuggestWidget = 'workbench.action.terminal.hideSuggestWidget',
FocusHover = 'workbench.action.terminal.focusHover',
ShowEnvironmentContributions = 'workbench.action.terminal.showEnvironmentContributions',
FocusAndHideAccessibleBuffer = 'workbench.action.terminal.focusAndHideAccessibleBuffer',
// Developer commands
@@ -570,7 +569,6 @@ export const DEFAULT_COMMANDS_TO_SKIP_SHELL: string[] = [
TerminalCommandId.HideSuggestWidget,
TerminalCommandId.FocusHover,
AccessibilityCommandId.OpenAccessibilityHelp,
TerminalCommandId.FocusAndHideAccessibleBuffer,
'editor.action.toggleTabFocusMode',
'notifications.hideList',
'notifications.hideToasts',
@@ -11,7 +11,7 @@ import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
import { IQuickPick, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput';
import { TerminalLocation, terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal';
import { terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal';
import { IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView';
import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions';
import { ITerminalContribution, ITerminalInstance, ITerminalService, IXtermTerminal } from 'vs/workbench/contrib/terminal/browser/terminal';
@@ -20,7 +20,6 @@ import { registerTerminalContribution } from 'vs/workbench/contrib/terminal/brow
import { TerminalWidgetManager } from 'vs/workbench/contrib/terminal/browser/widgets/widgetManager';
import { ITerminalProcessManager, TerminalCommandId } from 'vs/workbench/contrib/terminal/common/terminal';
import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey';
import { terminalStrings } from 'vs/workbench/contrib/terminal/common/terminalStrings';
import { TerminalAccessibleContentProvider } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibilityHelp';
import { AccessibleBufferWidget, NavigationType } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBuffer';
import { TextAreaSyncAddon } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/textAreaSyncAddon';
@@ -207,20 +206,3 @@ registerTerminalAction({
await AccessibleBufferContribution.get(instance)?.navigateToCommand(NavigationType.Previous);
}
});
registerTerminalAction({
id: TerminalCommandId.FocusAndHideAccessibleBuffer,
title: terminalStrings.focusAndHideAccessibleBuffer,
f1: false,
keybinding: {
when: ContextKeyExpr.and(TerminalContextKeys.accessibleBufferFocus, TerminalContextKeys.accessibleBufferOnLastLine),
primary: KeyMod.CtrlCmd | KeyCode.DownArrow,
weight: KeybindingWeight.WorkbenchContrib
},
precondition: ContextKeyExpr.or(TerminalContextKeys.processSupported, TerminalContextKeys.terminalHasBeenCreated),
run: async (c) => {
const instance = c.service.activeInstance || await c.service.createTerminal({ location: TerminalLocation.Panel });
instance.getContribution<AccessibleBufferContribution>(AccessibleBufferContribution.ID)?.hide();
instance.focus(true);
}
});
@@ -60,6 +60,7 @@ export class AccessibleBufferWidget extends TerminalAccessibleWidget {
super(ClassName.AccessibleBuffer, _instance, _xterm, TerminalContextKeys.accessibleBufferFocus, TerminalContextKeys.accessibleBufferOnLastLine, _instantiationService, _modelService, _configurationService, _contextKeyService, _terminalService);
this._bufferTracker = _instantiationService.createInstance(BufferContentTracker, _xterm);
this.element.ariaRoleDescription = localize('terminal.integrated.accessibleBuffer', 'Terminal buffer');
_instance.onDidRequestFocus(() => this.hide(true));
this.updateEditor();
this.add(this.editorWidget.onDidFocusEditorText(async () => {
if (this.element.classList.contains(ClassName.Active)) {
@@ -116,8 +116,7 @@ export abstract class TerminalAccessibleWidget extends DisposableStore {
switch (e.keyCode) {
case KeyCode.Escape:
// On escape, hide the accessible buffer and force focus onto the terminal
this.hide();
this._xterm.raw.focus();
this.hide(true);
break;
case KeyCode.Tab:
// On tab or shift+tab, hide the accessible buffer and perform the default tab
@@ -163,10 +162,13 @@ export abstract class TerminalAccessibleWidget extends DisposableStore {
}
}
hide(): void {
hide(focusXterm?: boolean): void {
this._disposeListeners();
this.element.classList.remove(ClassName.Active);
this._xtermElement.classList.remove(ClassName.Hide);
if (focusXterm) {
this._xterm.raw.focus();
}
}
async getTextModel(resource: URI): Promise<ITextModel | null> {