UNPKG

monaco-editor

Version:
215 lines (214 loc) • 10.7 kB
import { createDecorator } from '../../instantiation/common/instantiation.js'; import { localize } from '../../../nls.js'; export const IAudioCueService = createDecorator('audioCue'); /** * Corresponds to the audio files in ./media. */ export class Sound { static register(options) { const sound = new Sound(options.fileName); return sound; } constructor(fileName) { this.fileName = fileName; } } Sound.error = Sound.register({ fileName: 'error.mp3' }); Sound.warning = Sound.register({ fileName: 'warning.mp3' }); Sound.foldedArea = Sound.register({ fileName: 'foldedAreas.mp3' }); Sound.break = Sound.register({ fileName: 'break.mp3' }); Sound.quickFixes = Sound.register({ fileName: 'quickFixes.mp3' }); Sound.taskCompleted = Sound.register({ fileName: 'taskCompleted.mp3' }); Sound.taskFailed = Sound.register({ fileName: 'taskFailed.mp3' }); Sound.terminalBell = Sound.register({ fileName: 'terminalBell.mp3' }); Sound.diffLineInserted = Sound.register({ fileName: 'diffLineInserted.mp3' }); Sound.diffLineDeleted = Sound.register({ fileName: 'diffLineDeleted.mp3' }); Sound.diffLineModified = Sound.register({ fileName: 'diffLineModified.mp3' }); Sound.chatRequestSent = Sound.register({ fileName: 'chatRequestSent.mp3' }); Sound.chatResponsePending = Sound.register({ fileName: 'chatResponsePending.mp3' }); Sound.chatResponseReceived1 = Sound.register({ fileName: 'chatResponseReceived1.mp3' }); Sound.chatResponseReceived2 = Sound.register({ fileName: 'chatResponseReceived2.mp3' }); Sound.chatResponseReceived3 = Sound.register({ fileName: 'chatResponseReceived3.mp3' }); Sound.chatResponseReceived4 = Sound.register({ fileName: 'chatResponseReceived4.mp3' }); Sound.clear = Sound.register({ fileName: 'clear.mp3' }); Sound.save = Sound.register({ fileName: 'save.mp3' }); Sound.format = Sound.register({ fileName: 'format.mp3' }); export class SoundSource { constructor(randomOneOf) { this.randomOneOf = randomOneOf; } } export class AudioCue { static register(options) { const soundSource = new SoundSource('randomOneOf' in options.sound ? options.sound.randomOneOf : [options.sound]); const audioCue = new AudioCue(soundSource, options.name, options.settingsKey, options.alertSettingsKey, options.alertMessage); AudioCue._audioCues.add(audioCue); return audioCue; } constructor(sound, name, settingsKey, alertSettingsKey, alertMessage) { this.sound = sound; this.name = name; this.settingsKey = settingsKey; this.alertSettingsKey = alertSettingsKey; this.alertMessage = alertMessage; } } AudioCue._audioCues = new Set(); AudioCue.error = AudioCue.register({ name: localize('audioCues.lineHasError.name', 'Error on Line'), sound: Sound.error, settingsKey: 'audioCues.lineHasError', alertSettingsKey: "accessibility.alert.error" /* AccessibilityAlertSettingId.Error */, alertMessage: localize('audioCues.lineHasError.alertMessage', 'Error') }); AudioCue.warning = AudioCue.register({ name: localize('audioCues.lineHasWarning.name', 'Warning on Line'), sound: Sound.warning, settingsKey: 'audioCues.lineHasWarning', alertSettingsKey: "accessibility.alert.warning" /* AccessibilityAlertSettingId.Warning */, alertMessage: localize('audioCues.lineHasWarning.alertMessage', 'Warning') }); AudioCue.foldedArea = AudioCue.register({ name: localize('audioCues.lineHasFoldedArea.name', 'Folded Area on Line'), sound: Sound.foldedArea, settingsKey: 'audioCues.lineHasFoldedArea', alertSettingsKey: "accessibility.alert.foldedArea" /* AccessibilityAlertSettingId.FoldedArea */, alertMessage: localize('audioCues.lineHasFoldedArea.alertMessage', 'Folded') }); AudioCue.break = AudioCue.register({ name: localize('audioCues.lineHasBreakpoint.name', 'Breakpoint on Line'), sound: Sound.break, settingsKey: 'audioCues.lineHasBreakpoint', alertSettingsKey: "accessibility.alert.breakpoint" /* AccessibilityAlertSettingId.Breakpoint */, alertMessage: localize('audioCues.lineHasBreakpoint.alertMessage', 'Breakpoint') }); AudioCue.inlineSuggestion = AudioCue.register({ name: localize('audioCues.lineHasInlineSuggestion.name', 'Inline Suggestion on Line'), sound: Sound.quickFixes, settingsKey: 'audioCues.lineHasInlineSuggestion', }); AudioCue.terminalQuickFix = AudioCue.register({ name: localize('audioCues.terminalQuickFix.name', 'Terminal Quick Fix'), sound: Sound.quickFixes, settingsKey: 'audioCues.terminalQuickFix', alertSettingsKey: "accessibility.alert.terminalQuickFix" /* AccessibilityAlertSettingId.TerminalQuickFix */, alertMessage: localize('audioCues.terminalQuickFix.alertMessage', 'Quick Fix') }); AudioCue.onDebugBreak = AudioCue.register({ name: localize('audioCues.onDebugBreak.name', 'Debugger Stopped on Breakpoint'), sound: Sound.break, settingsKey: 'audioCues.onDebugBreak', alertSettingsKey: "accessibility.alert.onDebugBreak" /* AccessibilityAlertSettingId.OnDebugBreak */, alertMessage: localize('audioCues.onDebugBreak.alertMessage', 'Breakpoint') }); AudioCue.noInlayHints = AudioCue.register({ name: localize('audioCues.noInlayHints', 'No Inlay Hints on Line'), sound: Sound.error, settingsKey: 'audioCues.noInlayHints', alertSettingsKey: "accessibility.alert.noInlayHints" /* AccessibilityAlertSettingId.NoInlayHints */, alertMessage: localize('audioCues.noInlayHints.alertMessage', 'No Inlay Hints') }); AudioCue.taskCompleted = AudioCue.register({ name: localize('audioCues.taskCompleted', 'Task Completed'), sound: Sound.taskCompleted, settingsKey: 'audioCues.taskCompleted', alertSettingsKey: "accessibility.alert.taskCompleted" /* AccessibilityAlertSettingId.TaskCompleted */, alertMessage: localize('audioCues.taskCompleted.alertMessage', 'Task Completed') }); AudioCue.taskFailed = AudioCue.register({ name: localize('audioCues.taskFailed', 'Task Failed'), sound: Sound.taskFailed, settingsKey: 'audioCues.taskFailed', alertSettingsKey: "accessibility.alert.taskFailed" /* AccessibilityAlertSettingId.TaskFailed */, alertMessage: localize('audioCues.taskFailed.alertMessage', 'Task Failed') }); AudioCue.terminalCommandFailed = AudioCue.register({ name: localize('audioCues.terminalCommandFailed', 'Terminal Command Failed'), sound: Sound.error, settingsKey: 'audioCues.terminalCommandFailed', alertSettingsKey: "accessibility.alert.terminalCommandFailed" /* AccessibilityAlertSettingId.TerminalCommandFailed */, alertMessage: localize('audioCues.terminalCommandFailed.alertMessage', 'Command Failed') }); AudioCue.terminalBell = AudioCue.register({ name: localize('audioCues.terminalBell', 'Terminal Bell'), sound: Sound.terminalBell, settingsKey: 'audioCues.terminalBell', alertSettingsKey: "accessibility.alert.terminalBell" /* AccessibilityAlertSettingId.TerminalBell */, alertMessage: localize('audioCues.terminalBell.alertMessage', 'Terminal Bell') }); AudioCue.notebookCellCompleted = AudioCue.register({ name: localize('audioCues.notebookCellCompleted', 'Notebook Cell Completed'), sound: Sound.taskCompleted, settingsKey: 'audioCues.notebookCellCompleted', alertSettingsKey: "accessibility.alert.notebookCellCompleted" /* AccessibilityAlertSettingId.NotebookCellCompleted */, alertMessage: localize('audioCues.notebookCellCompleted.alertMessage', 'Notebook Cell Completed') }); AudioCue.notebookCellFailed = AudioCue.register({ name: localize('audioCues.notebookCellFailed', 'Notebook Cell Failed'), sound: Sound.taskFailed, settingsKey: 'audioCues.notebookCellFailed', alertSettingsKey: "accessibility.alert.notebookCellFailed" /* AccessibilityAlertSettingId.NotebookCellFailed */, alertMessage: localize('audioCues.notebookCellFailed.alertMessage', 'Notebook Cell Failed') }); AudioCue.diffLineInserted = AudioCue.register({ name: localize('audioCues.diffLineInserted', 'Diff Line Inserted'), sound: Sound.diffLineInserted, settingsKey: 'audioCues.diffLineInserted', }); AudioCue.diffLineDeleted = AudioCue.register({ name: localize('audioCues.diffLineDeleted', 'Diff Line Deleted'), sound: Sound.diffLineDeleted, settingsKey: 'audioCues.diffLineDeleted', }); AudioCue.diffLineModified = AudioCue.register({ name: localize('audioCues.diffLineModified', 'Diff Line Modified'), sound: Sound.diffLineModified, settingsKey: 'audioCues.diffLineModified', }); AudioCue.chatRequestSent = AudioCue.register({ name: localize('audioCues.chatRequestSent', 'Chat Request Sent'), sound: Sound.chatRequestSent, settingsKey: 'audioCues.chatRequestSent', alertSettingsKey: "accessibility.alert.chatRequestSent" /* AccessibilityAlertSettingId.ChatRequestSent */, alertMessage: localize('audioCues.chatRequestSent.alertMessage', 'Chat Request Sent') }); AudioCue.chatResponseReceived = AudioCue.register({ name: localize('audioCues.chatResponseReceived', 'Chat Response Received'), settingsKey: 'audioCues.chatResponseReceived', sound: { randomOneOf: [ Sound.chatResponseReceived1, Sound.chatResponseReceived2, Sound.chatResponseReceived3, Sound.chatResponseReceived4 ] }, }); AudioCue.chatResponsePending = AudioCue.register({ name: localize('audioCues.chatResponsePending', 'Chat Response Pending'), sound: Sound.chatResponsePending, settingsKey: 'audioCues.chatResponsePending', alertSettingsKey: "accessibility.alert.chatResponsePending" /* AccessibilityAlertSettingId.ChatResponsePending */, alertMessage: localize('audioCues.chatResponsePending.alertMessage', 'Chat Response Pending') }); AudioCue.clear = AudioCue.register({ name: localize('audioCues.clear', 'Clear'), sound: Sound.clear, settingsKey: 'audioCues.clear', alertSettingsKey: "accessibility.alert.clear" /* AccessibilityAlertSettingId.Clear */, alertMessage: localize('audioCues.clear.alertMessage', 'Clear') }); AudioCue.save = AudioCue.register({ name: localize('audioCues.save', 'Save'), sound: Sound.save, settingsKey: 'audioCues.save', alertSettingsKey: "accessibility.alert.save" /* AccessibilityAlertSettingId.Save */, alertMessage: localize('audioCues.save.alertMessage', 'Save') }); AudioCue.format = AudioCue.register({ name: localize('audioCues.format', 'Format'), sound: Sound.format, settingsKey: 'audioCues.format', alertSettingsKey: "accessibility.alert.format" /* AccessibilityAlertSettingId.Format */, alertMessage: localize('audioCues.format.alertMessage', 'Format') });