diff --git a/src/vs/editor/browser/widget/diffEditorWidget.ts b/src/vs/editor/browser/widget/diffEditorWidget.ts index 216e31ab49e..0cf378ee559 100644 --- a/src/vs/editor/browser/widget/diffEditorWidget.ts +++ b/src/vs/editor/browser/widget/diffEditorWidget.ts @@ -1878,6 +1878,11 @@ function createDecoration(startLineNumber: number, startColumn: number, endLineN }; } +const enum DiffEditorLineClasses { + Insert = 'line-insert', + Delete = 'line-delete' +} + const DECORATIONS = { arrowRevertChange: ModelDecorationOptions.register({ @@ -1907,13 +1912,13 @@ const DECORATIONS = { lineInsert: ModelDecorationOptions.register({ description: 'diff-editor-line-insert', - className: 'line-insert', + className: DiffEditorLineClasses.Insert, marginClassName: 'gutter-insert', isWholeLine: true }), lineInsertWithSign: ModelDecorationOptions.register({ description: 'diff-editor-line-insert-with-sign', - className: 'line-insert', + className: DiffEditorLineClasses.Insert, linesDecorationsClassName: 'insert-sign ' + ThemeIcon.asClassName(diffInsertIcon), marginClassName: 'gutter-insert', isWholeLine: true @@ -1921,13 +1926,13 @@ const DECORATIONS = { lineDelete: ModelDecorationOptions.register({ description: 'diff-editor-line-delete', - className: 'line-delete', + className: DiffEditorLineClasses.Delete, marginClassName: 'gutter-delete', isWholeLine: true }), lineDeleteWithSign: ModelDecorationOptions.register({ description: 'diff-editor-line-delete-with-sign', - className: 'line-delete', + className: DiffEditorLineClasses.Delete, linesDecorationsClassName: 'delete-sign ' + ThemeIcon.asClassName(diffRemoveIcon), marginClassName: 'gutter-delete', isWholeLine: true diff --git a/src/vs/editor/browser/widget/diffReview.ts b/src/vs/editor/browser/widget/diffReview.ts index a615c329e05..12889bed475 100644 --- a/src/vs/editor/browser/widget/diffReview.ts +++ b/src/vs/editor/browser/widget/diffReview.ts @@ -33,6 +33,7 @@ import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; import { ILanguageIdCodec } from 'vs/editor/common/languages'; import { ILanguageService } from 'vs/editor/common/languages/language'; import { ILineChange } from 'vs/editor/common/diff/smartLinesDiffComputer'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; const DIFF_LINES_PADDING = 3; @@ -66,6 +67,11 @@ class DiffEntry { } } +const enum DiffEditorLineClasses { + Insert = 'line-insert', + Delete = 'line-delete' +} + class Diff { readonly entries: DiffEntry[]; @@ -95,7 +101,8 @@ export class DiffReview extends Disposable { constructor( diffEditor: DiffEditorWidget, - @ILanguageService private readonly _languageService: ILanguageService + @ILanguageService private readonly _languageService: ILanguageService, + @IAudioCueService private readonly _audioCueService: IAudioCueService ) { super(); this._diffEditor = diffEditor; @@ -149,7 +156,7 @@ export class DiffReview extends Disposable { || e.equals(KeyMod.Alt | KeyCode.DownArrow) ) { e.preventDefault(); - this._goToRow(this._getNextRow()); + this._goToRow(this._getNextRow(), 'next'); } if ( @@ -158,7 +165,7 @@ export class DiffReview extends Disposable { || e.equals(KeyMod.Alt | KeyCode.UpArrow) ) { e.preventDefault(); - this._goToRow(this._getPrevRow()); + this._goToRow(this._getPrevRow(), 'previous'); } if ( @@ -215,7 +222,7 @@ export class DiffReview extends Disposable { this._isVisible = true; this._diffEditor.doLayout(); this._render(); - this._goToRow(this._getNextRow()); + this._goToRow(this._getPrevRow(), 'previous'); } public next(): void { @@ -250,7 +257,7 @@ export class DiffReview extends Disposable { this._isVisible = true; this._diffEditor.doLayout(); this._render(); - this._goToRow(this._getNextRow()); + this._goToRow(this._getNextRow(), 'next'); } private accept(): void { @@ -312,12 +319,18 @@ export class DiffReview extends Disposable { return null; } - private _goToRow(row: HTMLElement): void { - const prev = this._getCurrentFocusedRow(); + private _goToRow(row: HTMLElement, type?: 'next' | 'previous'): void { + const current = this._getCurrentFocusedRow(); row.tabIndex = 0; row.focus(); - if (prev && prev !== row) { - prev.tabIndex = -1; + if (current && current !== row) { + current.tabIndex = -1; + } + const element = !type ? current : type === 'next' ? current?.nextElementSibling : current?.previousElementSibling; + if (element?.classList.contains(DiffEditorLineClasses.Insert)) { + this._audioCueService.playAudioCue(AudioCue.diffLineInserted, true); + } else if (element?.classList.contains(DiffEditorLineClasses.Delete)) { + this._audioCueService.playAudioCue(AudioCue.diffLineDeleted, true); } this.scrollbar.scanDomNode(); } diff --git a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts index 8e9a237c5b3..9f15f355956 100644 --- a/src/vs/editor/standalone/browser/standaloneCodeEditor.ts +++ b/src/vs/editor/standalone/browser/standaloneCodeEditor.ts @@ -495,7 +495,7 @@ export class StandaloneDiffEditor extends DiffEditorWidget implements IStandalon @IConfigurationService configurationService: IConfigurationService, @IContextMenuService contextMenuService: IContextMenuService, @IEditorProgressService editorProgressService: IEditorProgressService, - @IClipboardService clipboardService: IClipboardService, + @IClipboardService clipboardService: IClipboardService ) { const options = { ..._options }; updateConfigurationService(configurationService, options, true); diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts b/src/vs/platform/audioCues/browser/audioCueService.ts similarity index 90% rename from src/vs/workbench/contrib/audioCues/browser/audioCueService.ts rename to src/vs/platform/audioCues/browser/audioCueService.ts index 6aeb6d66f25..a7ca2398964 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCueService.ts +++ b/src/vs/platform/audioCues/browser/audioCueService.ts @@ -17,7 +17,7 @@ export const IAudioCueService = createDecorator('audioCue'); export interface IAudioCueService { readonly _serviceBrand: undefined; - playAudioCue(cue: AudioCue): Promise; + playAudioCue(cue: AudioCue, allowManyInParallel?: boolean): Promise; playAudioCues(cues: AudioCue[]): Promise; isEnabled(cue: AudioCue): IObservable; @@ -39,9 +39,9 @@ export class AudioCueService extends Disposable implements IAudioCueService { super(); } - public async playAudioCue(cue: AudioCue): Promise { + public async playAudioCue(cue: AudioCue, allowManyInParallel = false): Promise { if (this.isEnabled(cue).get()) { - await this.playSound(cue.sound); + await this.playSound(cue.sound, allowManyInParallel); } } @@ -70,7 +70,7 @@ export class AudioCueService extends Disposable implements IAudioCueService { this.playingSounds.add(sound); const url = FileAccess.asBrowserUri( - `vs/workbench/contrib/audioCues/browser/media/${sound.fileName}` + `vs/platform/audioCues/common/media/${sound.fileName}` ).toString(); const audio = new Audio(url); audio.volume = this.getVolumeInPercent() / 100; @@ -164,6 +164,8 @@ export class Sound { public static readonly taskCompleted = Sound.register({ fileName: 'taskCompleted.mp3' }); public static readonly taskFailed = Sound.register({ fileName: 'taskFailed.mp3' }); public static readonly terminalBell = Sound.register({ fileName: 'terminalBell.mp3' }); + public static readonly diffLineInserted = Sound.register({ fileName: 'diffLineInserted.mp3' }); + public static readonly diffLineDeleted = Sound.register({ fileName: 'diffLineDeleted.mp3' }); private constructor(public readonly fileName: string) { } } @@ -247,6 +249,18 @@ export class AudioCue { settingsKey: 'audioCues.terminalBell' }); + public static readonly diffLineInserted = AudioCue.register({ + name: localize('audioCues.diffLineInserted', 'Diff Line Inserted'), + sound: Sound.diffLineInserted, + settingsKey: 'audioCues.diffLineInserted' + }); + + public static readonly diffLineDeleted = AudioCue.register({ + name: localize('audioCues.diffLineDeleted', 'Diff Line Deleted'), + sound: Sound.diffLineDeleted, + settingsKey: 'audioCues.diffLineDeleted' + }); + private constructor( public readonly sound: Sound, public readonly name: string, diff --git a/src/vs/workbench/contrib/audioCues/browser/media/break.mp3 b/src/vs/platform/audioCues/browser/media/break.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/break.mp3 rename to src/vs/platform/audioCues/browser/media/break.mp3 diff --git a/src/vs/platform/audioCues/browser/media/diffLineDeleted.mp3 b/src/vs/platform/audioCues/browser/media/diffLineDeleted.mp3 new file mode 100644 index 00000000000..fc7ec846611 Binary files /dev/null and b/src/vs/platform/audioCues/browser/media/diffLineDeleted.mp3 differ diff --git a/src/vs/platform/audioCues/browser/media/diffLineInserted.mp3 b/src/vs/platform/audioCues/browser/media/diffLineInserted.mp3 new file mode 100644 index 00000000000..5f3ede4ced7 Binary files /dev/null and b/src/vs/platform/audioCues/browser/media/diffLineInserted.mp3 differ diff --git a/src/vs/workbench/contrib/audioCues/browser/media/error.mp3 b/src/vs/platform/audioCues/browser/media/error.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/error.mp3 rename to src/vs/platform/audioCues/browser/media/error.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/foldedAreas.mp3 b/src/vs/platform/audioCues/browser/media/foldedAreas.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/foldedAreas.mp3 rename to src/vs/platform/audioCues/browser/media/foldedAreas.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/quickFixes.mp3 b/src/vs/platform/audioCues/browser/media/quickFixes.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/quickFixes.mp3 rename to src/vs/platform/audioCues/browser/media/quickFixes.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/taskCompleted.mp3 b/src/vs/platform/audioCues/browser/media/taskCompleted.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/taskCompleted.mp3 rename to src/vs/platform/audioCues/browser/media/taskCompleted.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/taskFailed.mp3 b/src/vs/platform/audioCues/browser/media/taskFailed.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/taskFailed.mp3 rename to src/vs/platform/audioCues/browser/media/taskFailed.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/terminalBell.mp3 b/src/vs/platform/audioCues/browser/media/terminalBell.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/terminalBell.mp3 rename to src/vs/platform/audioCues/browser/media/terminalBell.mp3 diff --git a/src/vs/workbench/contrib/audioCues/browser/media/warning.mp3 b/src/vs/platform/audioCues/browser/media/warning.mp3 similarity index 100% rename from src/vs/workbench/contrib/audioCues/browser/media/warning.mp3 rename to src/vs/platform/audioCues/browser/media/warning.mp3 diff --git a/src/vs/workbench/browser/parts/editor/editor.contribution.ts b/src/vs/workbench/browser/parts/editor/editor.contribution.ts index fbe1d5a8853..d38d510d380 100644 --- a/src/vs/workbench/browser/parts/editor/editor.contribution.ts +++ b/src/vs/workbench/browser/parts/editor/editor.contribution.ts @@ -129,7 +129,6 @@ Registry.as(WorkbenchExtensions.Workbench).regi Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(DynamicEditorConfigurations, LifecyclePhase.Ready); registerEditorContribution(FloatingClickMenu.ID, FloatingClickMenu); - //#endregion //#region Quick Access diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCueDebuggerContribution.ts b/src/vs/workbench/contrib/audioCues/browser/audioCueDebuggerContribution.ts index 3b400d3fafc..84e1a657153 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCueDebuggerContribution.ts +++ b/src/vs/workbench/contrib/audioCues/browser/audioCueDebuggerContribution.ts @@ -5,8 +5,8 @@ import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { autorunWithStore } from 'vs/base/common/observable'; +import { IAudioCueService, AudioCue } from 'vs/platform/audioCues/browser/audioCueService'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { IDebugService, IDebugSession } from 'vs/workbench/contrib/debug/common/debug'; export class AudioCueLineDebuggerContribution diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCueLineFeatureContribution.ts b/src/vs/workbench/contrib/audioCues/browser/audioCueLineFeatureContribution.ts index 490fab6c4c6..c3a895a3ecb 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCueLineFeatureContribution.ts +++ b/src/vs/workbench/contrib/audioCues/browser/audioCueLineFeatureContribution.ts @@ -14,9 +14,9 @@ import { FoldingController } from 'vs/editor/contrib/folding/browser/folding'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ITextModel } from 'vs/editor/common/model'; import { GhostTextController } from 'vs/editor/contrib/inlineCompletions/browser/ghostTextController'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { CursorChangeReason } from 'vs/editor/common/cursorEvents'; import { autorun, autorunDelta, constObservable, debouncedObservable, derived, IObservable, observableFromEvent, observableFromPromise, wasEventTriggeredRecently } from 'vs/base/common/observable'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; export class AudioCueLineFeatureContribution extends Disposable diff --git a/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts b/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts index 2fc361426fd..bcfbc1fae7f 100644 --- a/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts +++ b/src/vs/workbench/contrib/audioCues/browser/audioCues.contribution.ts @@ -3,17 +3,17 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ShowAudioCueHelp } from 'vs/workbench/contrib/audioCues/browser/commands'; import { localize } from 'vs/nls'; import { registerAction2 } from 'vs/platform/actions/common/actions'; import { Extensions as ConfigurationExtensions, IConfigurationPropertySchema, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { InstantiationType, registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { Registry } from 'vs/platform/registry/common/platform'; import { Extensions as WorkbenchExtensions, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; +import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; +import { IAudioCueService, AudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; import { AudioCueLineDebuggerContribution } from 'vs/workbench/contrib/audioCues/browser/audioCueDebuggerContribution'; import { AudioCueLineFeatureContribution } from 'vs/workbench/contrib/audioCues/browser/audioCueLineFeatureContribution'; -import { AudioCueService, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; -import { ShowAudioCueHelp } from 'vs/workbench/contrib/audioCues/browser/commands'; -import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; registerSingleton(IAudioCueService, AudioCueService, InstantiationType.Delayed); @@ -87,6 +87,14 @@ Registry.as(ConfigurationExtensions.Configuration).regis 'description': localize('audioCues.terminalQuickFix', "Plays a sound when terminal Quick Fixes are available."), ...audioCueFeatureBase, }, + 'audioCues.diffLineInserted': { + 'description': localize('audioCues.diffLineInserted', "Plays a sound when the focus moves to an inserted line in diff review mode"), + ...audioCueFeatureBase, + }, + 'audioCues.diffLineDeleted': { + 'description': localize('audioCues.diffLineDeleted', "Plays a sound when the focus moves to a deleted line in diff review mode"), + ...audioCueFeatureBase, + }, } }); diff --git a/src/vs/workbench/contrib/audioCues/browser/commands.ts b/src/vs/workbench/contrib/audioCues/browser/commands.ts index ab6b124bfce..834c481cc5d 100644 --- a/src/vs/workbench/contrib/audioCues/browser/commands.ts +++ b/src/vs/workbench/contrib/audioCues/browser/commands.ts @@ -7,9 +7,9 @@ import { Codicon } from 'vs/base/common/codicons'; import { localize } from 'vs/nls'; import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { Action2 } from 'vs/platform/actions/common/actions'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; export class ShowAudioCueHelp extends Action2 { diff --git a/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.ts b/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.ts index 1cd411eb22c..38ea286744c 100644 --- a/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.ts +++ b/src/vs/workbench/contrib/inlayHints/browser/inlayHintsAccessibilty.ts @@ -15,11 +15,11 @@ import { InlayHintItem, asCommandLink } from 'vs/editor/contrib/inlayHints/brows import { InlayHintsController } from 'vs/editor/contrib/inlayHints/browser/inlayHintsController'; import { localize } from 'vs/nls'; import { registerAction2 } from 'vs/platform/actions/common/actions'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; import { IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { Link } from 'vs/platform/opener/browser/link'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; export class InlayHintsAccessibility implements IEditorContribution { diff --git a/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.ts b/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.ts index 762f9f6f578..7c88571ea9f 100644 --- a/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.ts +++ b/src/vs/workbench/contrib/tasks/browser/taskTerminalStatus.ts @@ -15,7 +15,7 @@ import { ITerminalStatus } from 'vs/workbench/contrib/terminal/browser/terminalS import { MarkerSeverity } from 'vs/platform/markers/common/markers'; import { spinningLoading } from 'vs/platform/theme/common/iconRegistry'; import { IMarker } from 'vs/platform/terminal/common/capabilities/capabilities'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; interface ITerminalData { terminal: ITerminalInstance; diff --git a/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts b/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts index 76f88556c89..1b29fa27657 100644 --- a/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts +++ b/src/vs/workbench/contrib/tasks/electron-sandbox/taskService.ts @@ -46,7 +46,7 @@ import { IPaneCompositePartService } from 'vs/workbench/services/panecomposite/b import { IThemeService } from 'vs/platform/theme/common/themeService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; -import { IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; +import { IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; interface IWorkspaceFolderConfigurationResult { workspaceFolder: IWorkspaceFolder; diff --git a/src/vs/workbench/contrib/tasks/test/browser/taskTerminalStatus.test.ts b/src/vs/workbench/contrib/tasks/test/browser/taskTerminalStatus.test.ts index 11239dc5fa2..f15422f2768 100644 --- a/src/vs/workbench/contrib/tasks/test/browser/taskTerminalStatus.test.ts +++ b/src/vs/workbench/contrib/tasks/test/browser/taskTerminalStatus.test.ts @@ -5,9 +5,9 @@ import { ok } from 'assert'; import { Emitter, Event } from 'vs/base/common/event'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { ACTIVE_TASK_STATUS, FAILED_TASK_STATUS, SUCCEEDED_TASK_STATUS, TaskTerminalStatus } from 'vs/workbench/contrib/tasks/browser/taskTerminalStatus'; import { AbstractProblemCollector } from 'vs/workbench/contrib/tasks/common/problemCollectors'; import { CommonTask, ITaskEvent, TaskEventKind, TaskRunType } from 'vs/workbench/contrib/tasks/common/tasks'; diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 3ef386a0319..73b1c1fa40b 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -55,7 +55,6 @@ import { IThemeService } from 'vs/platform/theme/common/themeService'; import { IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; import { IWorkspaceTrustRequestService } from 'vs/platform/workspace/common/workspaceTrust'; import { IViewDescriptorService, IViewsService, ViewContainerLocation } from 'vs/workbench/common/views'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { TaskSettingId } from 'vs/workbench/contrib/tasks/common/tasks'; import { IDetectedLinks, TerminalLinkManager } from 'vs/workbench/contrib/terminal/browser/links/terminalLinkManager'; import { TerminalLinkQuickpick } from 'vs/workbench/contrib/terminal/browser/links/terminalLinkQuickpick'; @@ -89,6 +88,7 @@ import { IWorkbenchLayoutService, Position } from 'vs/workbench/services/layout/ import { IPathService } from 'vs/workbench/services/path/common/pathService'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; import type { IMarker, ITerminalAddon, Terminal as XTermTerminal } from 'xterm'; +import { IAudioCueService, AudioCue } from 'vs/platform/audioCues/browser/audioCueService'; const enum Constants { /** diff --git a/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts b/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts index 2694519e7d3..7e64705a746 100644 --- a/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts +++ b/src/vs/workbench/contrib/terminal/browser/xterm/quickFixAddon.ts @@ -11,7 +11,6 @@ import { asArray } from 'vs/base/common/arrays'; import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IOpenerService } from 'vs/platform/opener/common/opener'; -import { AudioCue, IAudioCueService } from 'vs/workbench/contrib/audioCues/browser/audioCueService'; import { ITerminalQuickFixOpenerAction, ITerminalQuickFixOptions, TerminalQuickFixAction, TerminalQuickFixMatchResult } from 'vs/workbench/contrib/terminal/browser/terminal'; import { DecorationSelector, updateLayout } from 'vs/workbench/contrib/terminal/browser/xterm/decorationStyles'; import { IDecoration, Terminal } from 'xterm'; @@ -24,6 +23,7 @@ import { ITerminalContributionService } from 'vs/workbench/contrib/terminal/comm import { IExtensionTerminalQuickFix } from 'vs/platform/terminal/common/terminal'; import { URI } from 'vs/base/common/uri'; import { gitCreatePr, gitPushSetUpstream, gitSimilar } from 'vs/workbench/contrib/terminal/browser/terminalQuickFixBuiltinActions'; +import { AudioCue, IAudioCueService } from 'vs/platform/audioCues/browser/audioCueService'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IActionWidgetService } from 'vs/platform/actionWidget/browser/actionWidget'; import { ActionSet } from 'vs/platform/actionWidget/common/actionWidget';