diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts b/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts index 1c26424410f..d8b25e74470 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts +++ b/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts @@ -201,6 +201,12 @@ export class AudioCue { settingsKey: 'audioCues.lineHasInlineSuggestion', }); + public static readonly terminalQuickFix = AudioCue.register({ + name: localize('audioCues.terminalQuickFix.name', 'Terminal Quick Fix'), + sound: Sound.quickFixes, + settingsKey: 'audioCues.terminalQuickFix', + }); + public static readonly onDebugBreak = AudioCue.register({ name: localize('audioCues.onDebugBreak.name', 'Debugger Stopped on Breakpoint'), sound: Sound.break, diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts b/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts index facb74870e4..061845f3af8 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts +++ b/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts @@ -76,6 +76,10 @@ Registry.as(ConfigurationExtensions.Configuration).regis 'description': localize('audioCues.taskEnded', "Plays a sound when a task ends."), ...audioCueFeatureBase, }, + 'audioCues.terminalQuickFix': { + 'description': localize('audioCues.terminalQuickFix', "Plays a sound when a terminal quick fixes are available"), + ...audioCueFeatureBase, + }, } }); diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts b/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts index d988516c0ac..e9f2e91fe93 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts @@ -19,6 +19,7 @@ import { IColorTheme, ICssStyleCollector, registerThemingParticipant } from 'vs/ import { PANEL_BACKGROUND } from 'vs/workbench/common/theme'; import { TERMINAL_BACKGROUND_COLOR } from 'vs/workbench/contrib/terminal/common/terminalColorRegistry'; import { Color } from 'vs/base/common/color'; +import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; export interface ITerminalQuickFix { showMenu(): void; @@ -51,7 +52,8 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon, constructor(private readonly _capabilities: ITerminalCapabilityStore, @IContextMenuService private readonly _contextMenuService: IContextMenuService, - @IConfigurationService private readonly _configurationService: IConfigurationService) { + @IConfigurationService private readonly _configurationService: IConfigurationService, + @IAudioCueService private readonly _audioCueService: IAudioCueService) { super(); const commandDetectionCapability = this._capabilities.get(TerminalCapability.CommandDetection); if (commandDetectionCapability) { @@ -121,6 +123,7 @@ export class TerminalQuickFixAddon extends Disposable implements ITerminalAddon, this._currentQuickFixElement = e; e.classList.add(DecorationSelector.QuickFix, DecorationSelector.LightBulb, DecorationSelector.Codicon, DecorationSelector.CommandDecoration, DecorationSelector.XtermDecoration); updateLayout(this._configurationService, e); + this._audioCueService.playAudioCue(AudioCue.terminalQuickFix); if (actions) { this._decorationMarkerIds.add(decoration.marker.id); dom.addDisposableListener(e, dom.EventType.CLICK, () => {