diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.ts b/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.ts index 0fe95024b71..16b2065c405 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibilityContributions.ts @@ -27,9 +27,10 @@ import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { getNotificationFromContext } from 'vs/workbench/browser/parts/notifications/notificationsCommands'; import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService'; import { NotificationFocusedContext } from 'vs/workbench/common/contextkeys'; -import { IAccessibleViewService, IAccessibleContentProvider, IAccessibleViewOptions, AccessibleViewType, AccessibilityHelpAction, AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { IAccessibleViewService, IAccessibleContentProvider, IAccessibleViewOptions, AccessibleViewType } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { IHoverService } from 'vs/workbench/services/hover/browser/hover'; import { alert } from 'vs/base/browser/ui/aria/aria'; +import { AccessibilityHelpAction, AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; export class EditorAccessibilityHelpContribution extends Disposable { static ID: 'editorAccessibilityHelpContribution'; diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibleView.ts b/src/vs/workbench/contrib/accessibility/browser/accessibleView.ts index 05643b5c838..8b9d4ef3d13 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibleView.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibleView.ts @@ -6,14 +6,13 @@ import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar'; import { alert } from 'vs/base/browser/ui/aria/aria'; -import { Codicon } from 'vs/base/common/codicons'; -import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; +import { KeyCode } from 'vs/base/common/keyCodes'; import { Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle'; import { marked } from 'vs/base/common/marked/marked'; import { isMacintosh } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import { IEditorConstructionOptions } from 'vs/editor/browser/config/editorConfiguration'; -import { Command, EditorExtensionsRegistry, MultiCommand, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; +import { EditorExtensionsRegistry } from 'vs/editor/browser/editorExtensions'; import { CodeEditorWidget, ICodeEditorWidgetOptions } from 'vs/editor/browser/widget/codeEditorWidget'; import { ITextModel } from 'vs/editor/common/model'; import { IModelService } from 'vs/editor/common/services/model'; @@ -22,18 +21,18 @@ import { CodeActionController } from 'vs/editor/contrib/codeAction/browser/codeA import { localize } from 'vs/nls'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { MenuWorkbenchToolBar } from 'vs/platform/actions/browser/toolbar'; -import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; +import { MenuId } from 'vs/platform/actions/common/actions'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { ContextKeyExpr, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IContextViewDelegate, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; -import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IPickerQuickAccessItem } from 'vs/platform/quickinput/browser/pickerQuickAccess'; import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; import { AccessibilityVerbositySettingId, accessibilityHelpIsShown, accessibleViewIsShown } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; +import { AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; import { getSimpleEditorOptions } from 'vs/workbench/contrib/codeEditor/browser/simpleEditorOptions'; const enum DIMENSIONS { @@ -388,7 +387,8 @@ class AccessibleView extends Disposable { private _getAccessibleViewHelpDialogContent(providerHasSymbols?: boolean): string { const navigationHint = this._getNavigationHint(); const goToSymbolHint = this._getGoToSymbolHint(providerHasSymbols); - const toolbarHint = this._getToolbarHint(); + const toolbarHint = localize('toolbar', "Navigate to the toolbar ({0} or Shift+Tab)"); + let hint = localize('intro', "In the accessible view, you can:\n"); if (navigationHint) { hint += ' - ' + navigationHint + '\n'; @@ -402,17 +402,6 @@ class AccessibleView extends Disposable { return hint; } - private _getToolbarHint(): string { - let toolbarHint = ''; - const toolbarKb = this._keybindingService.lookupKeybinding('editor.action.accessibleViewFocusToolbar')?.getLabel(); - if (toolbarKb) { - toolbarHint = localize('toolbar', "Navigate to the toolbar ({0} or Shift+Tab)", toolbarKb); - } else { - toolbarHint = localize('toolbarNoKb', "Navigate to the toolbar (Shift+Tab)"); - } - return toolbarHint; - } - private _getNavigationHint(): string { let hint = ''; const nextKeybinding = this._keybindingService.lookupKeybinding('editor.action.accessibleViewNext')?.getAriaLabel(); @@ -543,162 +532,3 @@ interface IAccessibleViewSymbol extends IPickerQuickAccessItem { info: string; firstListItem?: string; } -const accessibleViewMenu = { - id: MenuId.AccessibleView, - group: 'navigation', - when: accessibleViewIsShown -}; -const commandPalette = { - id: MenuId.CommandPalette, - group: '', - order: 1 -}; -class AccessibleViewNextAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewNext', - precondition: accessibleViewIsShown, - keybinding: { - primary: KeyMod.Alt | KeyCode.BracketRight, - weight: KeybindingWeight.WorkbenchContrib - }, - menu: [commandPalette, accessibleViewMenu], - icon: Codicon.chevronRight, - title: localize('editor.action.accessibleViewNext', "Show Next in Accessible View") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).next(); - } -} -registerAction2(AccessibleViewNextAction); - - -class AccessibleViewPreviousAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewPrevious', - precondition: accessibleViewIsShown, - keybinding: { - primary: KeyMod.Alt | KeyCode.BracketLeft, - weight: KeybindingWeight.WorkbenchContrib - }, - icon: Codicon.chevronLeft, - menu: [commandPalette, accessibleViewMenu], - title: localize('editor.action.accessibleViewPrevious', "Show Previous in Accessible View") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).previous(); - } -} -registerAction2(AccessibleViewPreviousAction); - - -class AccessibleViewGoToSymbolAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewGoToSymbol', - precondition: accessibleViewIsShown, - keybinding: { - primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KeyO, - weight: KeybindingWeight.WorkbenchContrib + 10 - }, - icon: Codicon.symbolField, - menu: [commandPalette, accessibleViewMenu], - title: localize('editor.action.accessibleViewGoToSymbol', "Go To Symbol in Accessible View") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).goToSymbol(); - } -} -registerAction2(AccessibleViewGoToSymbolAction); - -function registerCommand(command: T): T { - command.register(); - return command; -} - -export const AccessibilityHelpAction = registerCommand(new MultiCommand({ - id: 'editor.action.accessibilityHelp', - precondition: undefined, - kbOpts: { - primary: KeyMod.Alt | KeyCode.F1, - weight: KeybindingWeight.WorkbenchContrib, - linux: { - primary: KeyMod.Alt | KeyMod.Shift | KeyCode.F1, - secondary: [KeyMod.Alt | KeyCode.F1] - } - }, - menuOpts: [{ - menuId: MenuId.CommandPalette, - group: '', - title: localize('editor.action.accessibilityHelp', "Open Accessibility Help"), - order: 1 - }], -})); - - -export const AccessibleViewAction = registerCommand(new MultiCommand({ - id: 'editor.action.accessibleView', - precondition: undefined, - kbOpts: { - primary: KeyMod.Alt | KeyCode.F2, - weight: KeybindingWeight.WorkbenchContrib, - linux: { - primary: KeyMod.Alt | KeyMod.Shift | KeyCode.F2, - secondary: [KeyMod.Alt | KeyCode.F2] - } - }, - menuOpts: [{ - menuId: MenuId.CommandPalette, - group: '', - title: localize('editor.action.accessibleView', "Open Accessible View"), - order: 1 - }], -})); - -class AccessibleViewDisableHintAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewDisableHint', - keybinding: { - when: ContextKeyExpr.or(accessibleViewIsShown, accessibilityHelpIsShown), - primary: KeyMod.Alt | KeyCode.F6, - weight: KeybindingWeight.WorkbenchContrib - }, - icon: Codicon.treeFilterClear, - menu: [commandPalette, - { - id: MenuId.AccessibleView, - group: 'navigation', - when: ContextKeyExpr.or(accessibleViewIsShown, accessibilityHelpIsShown) - }], - title: localize('editor.action.accessibleViewDisableHint', "Disable Accessible View Hint") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).disableHint(); - } -} -registerAction2(AccessibleViewDisableHintAction); - -class AccessibleViewFocusToolbarAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewFocusToolbar', - keybinding: { - when: accessibleViewIsShown, - primary: KeyMod.Alt | KeyCode.F7, - weight: KeybindingWeight.WorkbenchContrib - }, - menu: [commandPalette], - title: localize('editor.action.accessibleViewFocusToolbar', "Accessible View Focus Toolbar") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).focusToolbar(); - } -} -registerAction2(AccessibleViewFocusToolbarAction); diff --git a/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.ts b/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.ts index e68fc303fcc..3d4a87e04dc 100644 --- a/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.ts +++ b/src/vs/workbench/contrib/accessibility/browser/accessibleViewActions.ts @@ -153,22 +153,3 @@ class AccessibleViewDisableHintAction extends Action2 { } } registerAction2(AccessibleViewDisableHintAction); - -class AccessibleViewFocusToolbarAction extends Action2 { - constructor() { - super({ - id: 'editor.action.accessibleViewFocusToolbar', - keybinding: { - when: accessibleViewIsShown, - primary: KeyMod.Alt | KeyCode.F7, - weight: KeybindingWeight.WorkbenchContrib - }, - menu: [commandPalette], - title: localize('editor.action.accessibleViewFocusToolbar', "Accessible View Focus Toolbar") - }); - } - run(accessor: ServicesAccessor): void { - accessor.get(IAccessibleViewService).focusToolbar(); - } -} -registerAction2(AccessibleViewFocusToolbarAction); diff --git a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts index 36c78c52993..8b783da509f 100644 --- a/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts +++ b/src/vs/workbench/contrib/chat/browser/actions/chatActions.ts @@ -29,7 +29,7 @@ import { IChatWidgetHistoryService } from 'vs/workbench/contrib/chat/common/chat import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { Registry } from 'vs/platform/registry/common/platform'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; -import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; export const CHAT_CATEGORY = { value: localize('chat.category', "Chat"), original: 'Chat' }; diff --git a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts index c3bd91e88fb..1f366894d67 100644 --- a/src/vs/workbench/contrib/chat/browser/chat.contribution.ts +++ b/src/vs/workbench/contrib/chat/browser/chat.contribution.ts @@ -37,7 +37,7 @@ import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle import '../common/chatColors'; import { registerMoveActions } from 'vs/workbench/contrib/chat/browser/actions/chatMoveActions'; import { registerClearActions } from 'vs/workbench/contrib/chat/browser/actions/chatClearActions'; -import { AccessibleViewAction, AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { isResponseVM } from 'vs/workbench/contrib/chat/common/chatViewModel'; import { CONTEXT_IN_CHAT_SESSION } from 'vs/workbench/contrib/chat/common/chatContextKeys'; import { ChatAccessibilityService } from 'vs/workbench/contrib/chat/browser/chatAccessibilityService'; @@ -48,6 +48,7 @@ import { IMarkdownString } from 'vs/base/common/htmlContent'; import { ChatProviderService, IChatProviderService } from 'vs/workbench/contrib/chat/common/chatProvider'; import { ChatSlashCommandService, IChatSlashCommandService } from 'vs/workbench/contrib/chat/common/chatSlashCommands'; import { alertFocusChange } from 'vs/workbench/contrib/accessibility/browser/accessibilityContributions'; +import { AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; // Register configuration const configurationRegistry = Registry.as(ConfigurationExtensions.Configuration); diff --git a/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts b/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts index d4fef318c62..26754add9a0 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts @@ -20,7 +20,8 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { FloatingClickWidget } from 'vs/workbench/browser/codeeditor'; import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; -import { AccessibilityHelpAction, AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; class DiffEditorHelperContribution extends Disposable implements IDiffEditorContribution { diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.ts index 5c72e361d0e..8b6c004f074 100644 --- a/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.ts +++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChat.contribution.ts @@ -15,12 +15,13 @@ import { Registry } from 'vs/platform/registry/common/platform'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { InlineChatNotebookContribution } from 'vs/workbench/contrib/inlineChat/browser/inlineChatNotebook'; import { AccessibilityVerbositySettingId } from 'vs/workbench/contrib/accessibility/browser/accessibilityConfiguration'; -import { AccessibleViewAction, AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibleViewType, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { Disposable } from 'vs/base/common/lifecycle'; import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService'; import { localize } from 'vs/nls'; import { Extensions, IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; +import { AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; registerSingleton(IInlineChatService, InlineChatServiceImpl, InstantiationType.Delayed); registerSingleton(IInlineChatSessionService, InlineChatSessionService, InstantiationType.Delayed); diff --git a/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts b/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts index eda55f31d9b..05bb019ec59 100644 --- a/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts +++ b/src/vs/workbench/contrib/inlineChat/browser/inlineChatActions.ts @@ -31,7 +31,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { Position } from 'vs/editor/common/core/position'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { AccessibilityHelpAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; CommandsRegistry.registerCommandAlias('interactiveEditor.start', 'inlineChat.start'); diff --git a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts index 7df3d82cc89..15ac6a3068e 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts @@ -114,8 +114,9 @@ import { NotebookLoggingService } from 'vs/workbench/contrib/notebook/browser/se import product from 'vs/platform/product/common/product'; import { NOTEBOOK_IS_ACTIVE_EDITOR, NOTEBOOK_OUTPUT_FOCUSED } from 'vs/workbench/contrib/notebook/common/notebookContextKeys'; import { runAccessibilityHelpAction, showAccessibleOutput } from 'vs/workbench/contrib/notebook/browser/notebookAccessibility'; -import { AccessibilityHelpAction, AccessibleViewAction, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +import { IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; +import { AccessibilityHelpAction, AccessibleViewAction } from 'vs/workbench/contrib/accessibility/browser/accessibleViewActions'; /*--------------------------------------------------------------------------------------------- */ diff --git a/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts b/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts index 0af08a0985a..cc697917066 100644 --- a/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts +++ b/src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts @@ -12,7 +12,8 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { IQuickPick, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; import { terminalTabFocusModeContextKey } from 'vs/platform/terminal/common/terminal'; -import { AccessibilityHelpAction, IAccessibleViewService } from 'vs/workbench/contrib/accessibility/browser/accessibleView'; +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'; import { registerTerminalAction } from 'vs/workbench/contrib/terminal/browser/terminalActions'; import { registerTerminalContribution } from 'vs/workbench/contrib/terminal/browser/terminalExtensions';