Skip to content

Commit 2411a9c

Browse files
authored
add inlineChat.accessibleDiffView setting (microsoft#205837)
fixes microsoft#205714
1 parent f7f9fb0 commit 2411a9c

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/vs/workbench/contrib/inlineChat/browser/inlineChatStrategies.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,13 @@ import { countWords } from 'vs/workbench/contrib/chat/common/chatWordCounter';
3131
import { InlineChatFileCreatePreviewWidget, InlineChatLivePreviewWidget } from 'vs/workbench/contrib/inlineChat/browser/inlineChatLivePreviewWidget';
3232
import { HunkInformation, ReplyResponse, Session } from 'vs/workbench/contrib/inlineChat/browser/inlineChatSession';
3333
import { InlineChatZoneWidget } from 'vs/workbench/contrib/inlineChat/browser/inlineChatWidget';
34-
import { CTX_INLINE_CHAT_CHANGE_HAS_DIFF, CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF, CTX_INLINE_CHAT_DOCUMENT_CHANGED, overviewRulerInlineChatDiffInserted } from 'vs/workbench/contrib/inlineChat/common/inlineChat';
34+
import { CTX_INLINE_CHAT_CHANGE_HAS_DIFF, CTX_INLINE_CHAT_CHANGE_SHOWS_DIFF, CTX_INLINE_CHAT_DOCUMENT_CHANGED, InlineChatConfigKeys, overviewRulerInlineChatDiffInserted } from 'vs/workbench/contrib/inlineChat/common/inlineChat';
3535
import { HunkState } from './inlineChatSession';
3636
import { assertType } from 'vs/base/common/types';
3737
import { IModelService } from 'vs/editor/common/services/model';
3838
import { performAsyncTextEdit, asProgressiveEdit } from './utils';
3939
import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility';
40+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
4041

4142
export interface IEditObserver {
4243
start(): void;
@@ -445,6 +446,7 @@ export class LiveStrategy extends EditModeStrategy {
445446
@IContextKeyService contextKeyService: IContextKeyService,
446447
@IEditorWorkerService protected readonly _editorWorkerService: IEditorWorkerService,
447448
@IAccessibilityService private readonly _accessibilityService: IAccessibilityService,
449+
@IConfigurationService private readonly _configService: IConfigurationService,
448450
@IInstantiationService protected readonly _instaService: IInstantiationService,
449451
) {
450452
super(session, editor, zone);
@@ -705,7 +707,9 @@ export class LiveStrategy extends EditModeStrategy {
705707
const remainingHunks = this._session.hunkData.pending;
706708
this._updateSummaryMessage(remainingHunks);
707709

708-
if (this._accessibilityService.isScreenReaderOptimized()) {
710+
711+
const mode = this._configService.getValue<'on' | 'off' | 'auto'>(InlineChatConfigKeys.AccessibleDiffView);
712+
if (mode === 'on' || mode === 'auto' && this._accessibilityService.isScreenReaderOptimized()) {
709713
this._zone.widget.showAccessibleHunk(this._session, widgetData.hunk);
710714
}
711715

src/vs/workbench/contrib/inlineChat/common/inlineChat.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ export const enum InlineChatConfigKeys {
227227
FinishOnType = 'inlineChat.finishOnType',
228228
AcceptedOrDiscardBeforeSave = 'inlineChat.acceptedOrDiscardBeforeSave',
229229
HoldToSpeech = 'inlineChat.holdToSpeech',
230+
AccessibleDiffView = 'inlineChat.accessibleDiffView'
230231
}
231232

232233
Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfiguration({
@@ -257,6 +258,17 @@ Registry.as<IConfigurationRegistry>(Extensions.Configuration).registerConfigurat
257258
description: localize('holdToSpeech', "Whether holding the inline chat keybinding will automatically enable speech recognition."),
258259
default: true,
259260
type: 'boolean'
261+
},
262+
[InlineChatConfigKeys.AccessibleDiffView]: {
263+
description: localize('accessibleDiffView', "Whether the inline chat also renders an accessible diff viewer for its changes."),
264+
default: 'auto',
265+
type: 'string',
266+
enum: ['auto', 'on', 'off'],
267+
markdownEnumDescriptions: [
268+
localize('accessibleDiffView.auto', "The accessible diff viewer is based screen reader mode being enabled."),
269+
localize('accessibleDiffView.on', "The accessible diff viewer is always enabled."),
270+
localize('accessibleDiffView.off', "The accessible diff viewer is never enabled."),
271+
],
260272
}
261273
}
262274
});

0 commit comments

Comments
 (0)