Skip to content

Commit ee83577

Browse files
authored
play terminal command failed signal when a command w non zero exit code is navigated to in accessible terminal view (microsoft#210269)
1 parent d28dc16 commit ee83577

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,14 +428,14 @@ const configuration: IConfigurationNode = {
428428
},
429429
'accessibility.signals.terminalCommandFailed': {
430430
...signalFeatureBase,
431-
'description': localize('accessibility.signals.terminalCommandFailed', "Plays a signal when a terminal command fails (non-zero exit code)."),
431+
'description': localize('accessibility.signals.terminalCommandFailed', "Plays a signal when a terminal command fails (non-zero exit code) or when a command with such an exit code is navigated to in the accessible view."),
432432
'properties': {
433433
'sound': {
434-
'description': localize('accessibility.signals.terminalCommandFailed.sound', "Plays a sound when a terminal command fails (non-zero exit code)."),
434+
'description': localize('accessibility.signals.terminalCommandFailed.sound', "Plays a sound when a terminal command fails (non-zero exit code) or when a command with such an exit code is navigated to in the accessible view."),
435435
...soundFeatureBase
436436
},
437437
'announcement': {
438-
'description': localize('accessibility.signals.terminalCommandFailed.announcement', "Indicates when a terminal command fails (non-zero exit code)."),
438+
'description': localize('accessibility.signals.terminalCommandFailed.announcement', "Indicates when a terminal command fails (non-zero exit code) or when a command with such an exit code is navigated to in the accessible view."),
439439
...announcementFeatureBase
440440
},
441441
}

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
3131
import { TerminalSettingId } from 'vs/platform/terminal/common/terminal';
3232
import { Event } from 'vs/base/common/event';
3333
import { ICurrentPartialCommand } from 'vs/platform/terminal/common/capabilities/commandDetection/terminalCommand';
34+
import { AccessibilitySignal, IAccessibilitySignalService } from 'vs/platform/accessibilitySignal/browser/accessibilitySignalService';
3435

3536
class TextAreaSyncContribution extends DisposableStore implements ITerminalContribution {
3637
static readonly ID = 'terminal.textAreaSync';
@@ -76,7 +77,8 @@ export class TerminalAccessibleViewContribution extends Disposable implements IT
7677
@IInstantiationService private readonly _instantiationService: IInstantiationService,
7778
@ITerminalService private readonly _terminalService: ITerminalService,
7879
@IConfigurationService private readonly _configurationService: IConfigurationService,
79-
@IContextKeyService private readonly _contextKeyService: IContextKeyService) {
80+
@IContextKeyService private readonly _contextKeyService: IContextKeyService,
81+
@IAccessibilitySignalService private readonly _accessibilitySignalService: IAccessibilitySignalService) {
8082
super();
8183
this._register(AccessibleViewAction.addImplementation(90, 'terminal', () => {
8284
if (this._terminalService.activeInstance !== this._instance) {
@@ -179,7 +181,11 @@ export class TerminalAccessibleViewContribution extends Disposable implements IT
179181
if (!filteredCommands.length) {
180182
return;
181183
}
182-
this._accessibleViewService.setPosition(new Position(filteredCommands[0].lineNumber, 1), true);
184+
const command = filteredCommands[0];
185+
this._accessibleViewService.setPosition(new Position(command.lineNumber, 1), true);
186+
if (command.exitCode) {
187+
this._accessibilitySignalService.playSignal(AccessibilitySignal.terminalCommandFailed);
188+
}
183189
}
184190

185191
private _getCommandsWithEditorLine(): ICommandWithEditorLine[] | undefined {
@@ -195,7 +201,7 @@ export class TerminalAccessibleViewContribution extends Disposable implements IT
195201
if (!lineNumber) {
196202
continue;
197203
}
198-
result.push({ command, lineNumber });
204+
result.push({ command, lineNumber, exitCode: command.exitCode });
199205
}
200206
if (currentCommand) {
201207
const lineNumber = this._getEditorLineForCommand(currentCommand);

src/vs/workbench/contrib/terminalContrib/accessibility/browser/terminalAccessibleBufferProvider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export class TerminalAccessibleBufferProvider extends DisposableStore implements
8787
if (lineNumber === undefined) {
8888
continue;
8989
}
90-
result.push({ command, lineNumber });
90+
result.push({ command, lineNumber, exitCode: command.exitCode });
9191
}
9292
if (currentCommand) {
9393
const lineNumber = this._getEditorLineForCommand(currentCommand);
@@ -114,5 +114,5 @@ export class TerminalAccessibleBufferProvider extends DisposableStore implements
114114
return line + 1;
115115
}
116116
}
117-
export interface ICommandWithEditorLine { command: ITerminalCommand | ICurrentPartialCommand; lineNumber: number }
117+
export interface ICommandWithEditorLine { command: ITerminalCommand | ICurrentPartialCommand; lineNumber: number; exitCode?: number }
118118

0 commit comments

Comments
 (0)