Skip to content

Commit a4071cf

Browse files
authored
add audio cue for terminal quick fix (microsoft#162226)
1 parent 5a2baf9 commit a4071cf

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/vs/workbench/contrib/audioCues/browser/audioCueService.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ export class AudioCue {
201201
settingsKey: 'audioCues.lineHasInlineSuggestion',
202202
});
203203

204+
public static readonly terminalQuickFix = AudioCue.register({
205+
name: localize('audioCues.terminalQuickFix.name', 'Terminal Quick Fix'),
206+
sound: Sound.quickFixes,
207+
settingsKey: 'audioCues.terminalQuickFix',
208+
});
209+
204210
public static readonly onDebugBreak = AudioCue.register({
205211
name: localize('audioCues.onDebugBreak.name', 'Debugger Stopped on Breakpoint'),
206212
sound: Sound.break,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).regis
7676
'description': localize('audioCues.taskEnded', "Plays a sound when a task ends."),
7777
...audioCueFeatureBase,
7878
},
79+
'audioCues.terminalQuickFix': {
80+
'description': localize('audioCues.terminalQuickFix', "Plays a sound when a terminal quick fixes are available"),
81+
...audioCueFeatureBase,
82+
},
7983
}
8084
});
8185

src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { IColorTheme, ICssStyleCollector, registerThemingParticipant } from 'vs/
1919
import { PANEL_BACKGROUND } from 'vs/workbench/common/theme';
2020
import { TERMINAL_BACKGROUND_COLOR } from 'vs/workbench/contrib/terminal/common/terminalColorRegistry';
2121
import { Color } from 'vs/base/common/color';
22+
import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService';
2223

2324
export interface ITerminalQuickFix {
2425
showMenu(): void;
@@ -51,7 +52,8 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
5152

5253
constructor(private readonly _capabilities: ITerminalCapabilityStore,
5354
@IContextMenuService private readonly _contextMenuService: IContextMenuService,
54-
@IConfigurationService private readonly _configurationService: IConfigurationService) {
55+
@IConfigurationService private readonly _configurationService: IConfigurationService,
56+
@IAudioCueService private readonly _audioCueService: IAudioCueService) {
5557
super();
5658
const commandDetectionCapability = this._capabilities.get(TerminalCapability.CommandDetection);
5759
if (commandDetectionCapability) {
@@ -121,6 +123,7 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon,
121123
this._currentQuickFixElement = e;
122124
e.classList.add(DecorationSelector.QuickFix, DecorationSelector.LightBulb, DecorationSelector.Codicon, DecorationSelector.CommandDecoration, DecorationSelector.XtermDecoration);
123125
updateLayout(this._configurationService, e);
126+
this._audioCueService.playAudioCue(AudioCue.terminalQuickFix);
124127
if (actions) {
125128
this._decorationMarkerIds.add(decoration.marker.id);
126129
dom.addDisposableListener(e, dom.EventType.CLICK, () => {

0 commit comments

Comments
 (0)