Skip to content

Commit f69263f

Browse files
authored
Merge pull request microsoft#187599 from microsoft/merogge/re-view
call `show` with a provider for accessible view
2 parents 60578ed + 5bb3771 commit f69263f

File tree

6 files changed

+9
-35
lines changed

6 files changed

+9
-35
lines changed

src/vs/workbench/contrib/accessibility/browser/accessibility.contribution.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,7 @@ class EditorAccessibilityHelpContribution extends Disposable {
109109
await commandService.executeCommand(NEW_UNTITLED_FILE_COMMAND_ID);
110110
codeEditor = codeEditorService.getActiveCodeEditor()!;
111111
}
112-
accessibleViewService.registerProvider(instantiationService.createInstance(AccessibilityHelpProvider, codeEditor));
113-
accessibleViewService.show('editor');
112+
accessibleViewService.show(instantiationService.createInstance(AccessibilityHelpProvider, codeEditor));
114113
}));
115114
}
116115
}
@@ -136,18 +135,16 @@ class HoverAccessibleViewContribution extends Disposable {
136135
if (!controller || !content) {
137136
return false;
138137
}
139-
const provider = accessibleViewService.registerProvider({
138+
accessibleViewService.show({
140139
id: 'hover',
141140
provideContent() { return content; },
142141
onClose() {
143-
provider.dispose();
144142
controller.focus();
145143
},
146144
options: {
147145
ariaLabel: localize('hoverAccessibleView', "Hover Accessible View"), language: 'typescript', type: AccessibleViewType.View
148146
}
149147
});
150-
accessibleViewService.show('hover');
151148
return true;
152149
}));
153150
}

src/vs/workbench/contrib/accessibility/browser/accessibleView.ts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import { IKeyboardEvent } from 'vs/base/browser/keyboardEvent';
77
import { KeyCode } from 'vs/base/common/keyCodes';
8-
import { Disposable, DisposableStore, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
8+
import { Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
99
import { URI } from 'vs/base/common/uri';
1010
import { IEditorConstructionOptions } from 'vs/editor/browser/config/editorConfiguration';
1111
import { EditorExtensionsRegistry } from 'vs/editor/browser/editorExtensions';
@@ -41,8 +41,7 @@ export const IAccessibleViewService = createDecorator<IAccessibleViewService>('a
4141

4242
export interface IAccessibleViewService {
4343
readonly _serviceBrand: undefined;
44-
show(providerId: string): AccessibleView;
45-
registerProvider(provider: IAccessibleContentProvider): IDisposable;
44+
show(provider: IAccessibleContentProvider): void;
4645
}
4746

4847
export const enum AccessibleViewType {
@@ -178,9 +177,6 @@ class AccessibleView extends Disposable {
178177

179178
export class AccessibleViewService extends Disposable implements IAccessibleViewService {
180179
declare readonly _serviceBrand: undefined;
181-
182-
private _providers: Map<string, IAccessibleContentProvider> = new Map();
183-
184180
private _accessibleView: AccessibleView | undefined;
185181

186182
constructor(
@@ -189,22 +185,10 @@ export class AccessibleViewService extends Disposable implements IAccessibleView
189185
super();
190186
}
191187

192-
registerProvider(provider: IAccessibleContentProvider): IDisposable {
193-
this._providers.set(provider.id, provider);
194-
return toDisposable(() => {
195-
this._providers.delete(provider.id);
196-
});
197-
}
198-
199-
show(providerId: string): AccessibleView {
188+
show(provider: IAccessibleContentProvider): void {
200189
if (!this._accessibleView) {
201190
this._accessibleView = this._register(this._instantiationService.createInstance(AccessibleView));
202191
}
203-
const provider = this._providers.get(providerId);
204-
if (!provider) {
205-
throw new Error(`No accessible view provider with id: ${providerId}`);
206-
}
207192
this._accessibleView.show(provider);
208-
return this._accessibleView;
209193
}
210194
}

src/vs/workbench/contrib/chat/browser/actions/chatAccessibilityHelp.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ export async function runAccessibilityHelpAction(accessor: ServicesAccessor, edi
7171
const cachedPosition = inputEditor.getPosition();
7272
inputEditor.getSupportedActions();
7373
const helpText = getAccessibilityHelpText(accessor, type);
74-
const provider = accessibleViewService.registerProvider({
74+
accessibleViewService.show({
7575
id: type,
7676
provideContent: () => helpText,
7777
onClose: () => {
@@ -81,9 +81,7 @@ export async function runAccessibilityHelpAction(accessor: ServicesAccessor, edi
8181
} else if (type === 'inlineChat') {
8282
InlineChatController.get(editor)?.focus();
8383
}
84-
provider.dispose();
8584
},
8685
options: { type: AccessibleViewType.HelpMenu, ariaLabel: type === 'panelChat' ? localize('chat-help-label', "Chat accessibility help") : localize('inline-chat-label', "Inline chat accessibility help") }
8786
});
88-
accessibleViewService.show(type);
8987
}

src/vs/workbench/contrib/chat/browser/chat.contribution.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,16 +135,14 @@ class ChatAccessibleViewContribution extends Disposable {
135135
if (!responseContent) {
136136
return false;
137137
}
138-
const provider = accessibleViewService.registerProvider({
138+
accessibleViewService.show({
139139
id: 'panelChat',
140140
provideContent(): string { return responseContent; },
141141
onClose() {
142142
widget.focus(focusedItem);
143-
provider.dispose();
144143
},
145144
options: { ariaLabel: nls.localize('chatAccessibleView', "Chat Accessible View"), language: 'typescript', type: AccessibleViewType.View }
146145
});
147-
accessibleViewService.show('panelChat');
148146
return true;
149147
}, CONTEXT_IN_CHAT_SESSION));
150148
}

src/vs/workbench/contrib/notebook/browser/notebookAccessibilityHelp.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,12 @@ function descriptionForCommand(commandId: string, msg: string, noKbMsg: string,
4545
export async function runAccessibilityHelpAction(accessor: ServicesAccessor, editor: ICodeEditor): Promise<void> {
4646
const accessibleViewService = accessor.get(IAccessibleViewService);
4747
const helpText = getAccessibilityHelpText(accessor);
48-
const provider = accessibleViewService.registerProvider({
48+
accessibleViewService.show({
4949
id: 'notebook',
5050
provideContent: () => helpText,
5151
onClose: () => {
5252
editor.focus();
53-
provider.dispose();
5453
},
5554
options: { type: AccessibleViewType.HelpMenu, ariaLabel: 'Notebook accessibility help' }
5655
});
57-
accessibleViewService.show('notebook');
5856
}

src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminal.accessibility.contribution.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ export class TerminalAccessibilityHelpContribution extends Disposable {
7373
if (!terminal) {
7474
return;
7575
}
76-
accessibleViewService.registerProvider(instantiationService.createInstance(TerminalAccessibleContentProvider, instance, terminal));
77-
accessibleViewService.show('terminal');
76+
accessibleViewService.show(instantiationService.createInstance(TerminalAccessibleContentProvider, instance, terminal));
7877
}, TerminalContextKeys.focus));
7978
}
8079
}

0 commit comments

Comments
 (0)