From 64081da3c8c12eddc28eaff05672fe9515e7e502 Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Wed, 7 Jul 2021 09:38:47 -0400 Subject: [PATCH] Rename editorOverrideService closes #126603 --- src/vs/platform/editor/common/editor.ts | 4 +- .../api/browser/mainThreadEditors.ts | 4 +- .../api/browser/mainThreadNotebookEditors.ts | 4 +- .../api/common/extHostTypeConverters.ts | 4 +- src/vs/workbench/browser/contextkeys.ts | 6 +- .../browser/parts/editor/editorActions.ts | 10 +- .../customEditor/browser/customEditors.ts | 8 +- .../common/contributedCustomEditors.ts | 2 +- .../customEditor/common/customEditor.ts | 2 +- .../files/browser/editors/binaryFileEditor.ts | 14 +- .../files/browser/editors/textFileEditor.ts | 4 +- .../contrib/files/browser/fileCommands.ts | 4 +- .../files/browser/views/explorerView.ts | 6 +- .../browser/interactive.contribution.ts | 8 +- .../browser/diff/notebookDiffActions.ts | 4 +- .../notebook/browser/notebook.contribution.ts | 4 +- .../notebook/browser/notebookEditor.ts | 4 +- .../notebook/browser/notebookServiceImpl.ts | 8 +- .../notebook/common/notebookProvider.ts | 2 +- .../notebook/test/notebookServiceImpl.test.ts | 6 +- .../contrib/outline/browser/outlinePane.ts | 4 +- .../common/preferencesContribution.ts | 6 +- .../browser/searchEditor.contribution.ts | 6 +- .../browser/searchEditorActions.ts | 4 +- .../terminal/browser/terminalService.ts | 6 +- .../userDataSync/browser/userDataSync.ts | 4 +- .../browser/userDataSyncMergesView.ts | 4 +- .../browser/gettingStarted.contribution.ts | 4 +- .../browser/editor/editorWalkThrough.ts | 4 +- ...ideService.ts => editorResolverService.ts} | 140 +++++++++--------- .../services/editor/browser/editorService.ts | 28 ++-- ...ideService.ts => editorResolverService.ts} | 18 +-- .../browser/editorOverrideService.test.ts | 18 +-- .../editor/test/browser/editorService.test.ts | 46 +++--- .../preferences/browser/preferencesService.ts | 12 +- .../preferences/common/preferences.ts | 4 +- .../test/browser/preferencesService.test.ts | 4 +- .../common/workingCopyBackupTracker.ts | 4 +- .../browser/workingCopyBackupTracker.test.ts | 4 +- .../browser/workingCopyEditorService.test.ts | 4 +- .../test/browser/parts/editor/editor.test.ts | 10 +- .../test/browser/workbenchTestServices.ts | 8 +- src/vs/workbench/workbench.common.main.ts | 2 +- 43 files changed, 226 insertions(+), 226 deletions(-) rename src/vs/workbench/services/editor/browser/{editorOverrideService.ts => editorResolverService.ts} (83%) rename src/vs/workbench/services/editor/common/{editorOverrideService.ts => editorResolverService.ts} (91%) diff --git a/src/vs/platform/editor/common/editor.ts b/src/vs/platform/editor/common/editor.ts index d01fcfcf895..a44b13eb81b 100644 --- a/src/vs/platform/editor/common/editor.ts +++ b/src/vs/platform/editor/common/editor.ts @@ -161,7 +161,7 @@ export enum EditorActivation { PRESERVE } -export enum EditorOverride { +export enum EditorResolution { /** * Displays a picker and allows the user to decide which editor to use @@ -275,7 +275,7 @@ export interface IEditorOptions { * - `string`: specific override by id * - `EditorOverride`: specific override handling */ - override?: string | EditorOverride; + override?: string | EditorResolution; /** * A optional hint to signal in which context the editor opens. diff --git a/src/vs/workbench/api/browser/mainThreadEditors.ts b/src/vs/workbench/api/browser/mainThreadEditors.ts index 51298a2aa58..d458ccae1ac 100644 --- a/src/vs/workbench/api/browser/mainThreadEditors.ts +++ b/src/vs/workbench/api/browser/mainThreadEditors.ts @@ -14,7 +14,7 @@ import { ISelection } from 'vs/editor/common/core/selection'; import { IDecorationOptions, IDecorationRenderOptions, ILineChange } from 'vs/editor/common/editorCommon'; import { ISingleEditOperation } from 'vs/editor/common/model'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; -import { ITextEditorOptions, IResourceEditorInput, EditorActivation, EditorOverride } from 'vs/platform/editor/common/editor'; +import { ITextEditorOptions, IResourceEditorInput, EditorActivation, EditorResolution } from 'vs/platform/editor/common/editor'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { MainThreadDocumentsAndEditors } from 'vs/workbench/api/browser/mainThreadDocumentsAndEditors'; import { MainThreadTextEditor } from 'vs/workbench/api/browser/mainThreadEditor'; @@ -144,7 +144,7 @@ export class MainThreadTextEditors implements MainThreadTextEditorsShape { // preserve pre 1.38 behaviour to not make group active when preserveFocus: true // but make sure to restore the editor to fix https://github.com/microsoft/vscode/issues/79633 activation: options.preserveFocus ? EditorActivation.RESTORE : undefined, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED }; const input: IResourceEditorInput = { diff --git a/src/vs/workbench/api/browser/mainThreadNotebookEditors.ts b/src/vs/workbench/api/browser/mainThreadNotebookEditors.ts index fa56e4addb3..c8fd0498b00 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebookEditors.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebookEditors.ts @@ -12,7 +12,7 @@ import { INotebookDecorationRenderOptions } from 'vs/workbench/contrib/notebook/ import { ICellRange } from 'vs/workbench/contrib/notebook/common/notebookRange'; import { ILogService } from 'vs/platform/log/common/log'; import { URI, UriComponents } from 'vs/base/common/uri'; -import { EditorActivation, EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorActivation, EditorResolution } from 'vs/platform/editor/common/editor'; import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/common/notebookEditorInput'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -131,7 +131,7 @@ export class MainThreadNotebookEditors implements MainThreadNotebookEditorsShape // preserve pre 1.38 behaviour to not make group active when preserveFocus: true // but make sure to restore the editor to fix https://github.com/microsoft/vscode/issues/79633 activation: options.preserveFocus ? EditorActivation.RESTORE : undefined, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED }; const input = NotebookEditorInput.create(this._instantiationService, URI.revive(resource), viewType); diff --git a/src/vs/workbench/api/common/extHostTypeConverters.ts b/src/vs/workbench/api/common/extHostTypeConverters.ts index f0c495b6361..52cf144bb2e 100644 --- a/src/vs/workbench/api/common/extHostTypeConverters.ts +++ b/src/vs/workbench/api/common/extHostTypeConverters.ts @@ -19,7 +19,7 @@ import { IContentDecorationRenderOptions, IDecorationOptions, IDecorationRenderO import { EndOfLineSequence, TrackedRangeStickiness } from 'vs/editor/common/model'; import * as modes from 'vs/editor/common/modes'; import * as languageSelector from 'vs/editor/common/modes/languageSelector'; -import { EditorOverride, ITextEditorOptions } from 'vs/platform/editor/common/editor'; +import { EditorResolution, ITextEditorOptions } from 'vs/platform/editor/common/editor'; import { IMarkerData, IRelatedInformation, MarkerSeverity, MarkerTag } from 'vs/platform/markers/common/markers'; import { ProgressLocation as MainProgressLocation } from 'vs/platform/progress/common/progress'; import * as extHostProtocol from 'vs/workbench/api/common/extHost.protocol'; @@ -1301,7 +1301,7 @@ export namespace TextEditorOpenOptions { inactive: options.background, preserveFocus: options.preserveFocus, selection: typeof options.selection === 'object' ? Range.from(options.selection) : undefined, - override: typeof options.override === 'boolean' ? EditorOverride.DISABLED : undefined + override: typeof options.override === 'boolean' ? EditorResolution.DISABLED : undefined }; } diff --git a/src/vs/workbench/browser/contextkeys.ts b/src/vs/workbench/browser/contextkeys.ts index 0c52a0aa1ab..72ae5ac6184 100644 --- a/src/vs/workbench/browser/contextkeys.ts +++ b/src/vs/workbench/browser/contextkeys.ts @@ -22,7 +22,7 @@ import { PanelMaximizedContext, PanelPositionContext, PanelVisibleContext } from import { getRemoteName, getVirtualWorkspaceScheme } from 'vs/platform/remote/common/remoteHosts'; import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; import { isNative } from 'vs/base/common/platform'; -import { IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; export const WorkbenchStateContext = new RawContextKey('workbenchState', undefined, { type: 'string', description: localize('workbenchState', "The kind of workspace opened in the window, either 'empty' (no workspace), 'folder' (single folder) or 'workspace' (multi-root workspace)") }); export const WorkspaceFolderCountContext = new RawContextKey('workspaceFolderCount', 0, localize('workspaceFolderCount', "The number of root folders in the workspace")); @@ -79,7 +79,7 @@ export class WorkbenchContextKeysHandler extends Disposable { @IConfigurationService private readonly configurationService: IConfigurationService, @IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService, @IEditorService private readonly editorService: IEditorService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IEditorGroupsService private readonly editorGroupService: IEditorGroupsService, @IWorkbenchLayoutService private readonly layoutService: IWorkbenchLayoutService, @IViewletService private readonly viewletService: IViewletService, @@ -248,7 +248,7 @@ export class WorkbenchContextKeysHandler extends Disposable { this.activeEditorCanRevert.set(!activeEditorPane.input.hasCapability(EditorInputCapabilities.Untitled)); const activeEditorResource = activeEditorPane.input.resource; - const editors = activeEditorResource ? this.editorOverrideService.getEditorIds(activeEditorResource) : []; + const editors = activeEditorResource ? this.editorResolverService.getEditorIds(activeEditorResource) : []; this.activeEditorAvailableEditorIds.set(editors.join(',')); } else { this.activeEditorContext.reset(); diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index 075d636926c..c62d3ca087e 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -23,10 +23,10 @@ import { ItemActivation, IQuickInputService } from 'vs/platform/quickinput/commo import { AllEditorsByMostRecentlyUsedQuickAccess, ActiveGroupEditorsByMostRecentlyUsedQuickAccess, AllEditorsByAppearanceQuickAccess } from 'vs/workbench/browser/parts/editor/editorQuickAccess'; import { Codicon } from 'vs/base/common/codicons'; import { IFilesConfigurationService, AutoSaveMode } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { Schemas } from 'vs/base/common/network'; import { Registry } from 'vs/platform/registry/common/platform'; -import { IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; export class ExecuteCommandAction extends Action { @@ -1922,7 +1922,7 @@ export class ReopenResourcesAction extends Action { editor: activeInput, replacement: activeInput, forceReplaceDirty: activeInput.resource?.scheme === Schemas.untitled, - options: { ...options, override: EditorOverride.PICK } + options: { ...options, override: EditorResolution.PICK } } ], group); } @@ -1937,7 +1937,7 @@ export class ToggleEditorTypeAction extends Action { id: string, label: string, @IEditorService private readonly editorService: IEditorService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, ) { super(id, label); } @@ -1956,7 +1956,7 @@ export class ToggleEditorTypeAction extends Action { const options = activeEditorPane.options; const group = activeEditorPane.group; - const editorIds = this.editorOverrideService.getEditorIds(activeEditorResource).filter(id => id !== activeEditorPane.input.editorId); + const editorIds = this.editorResolverService.getEditorIds(activeEditorResource).filter(id => id !== activeEditorPane.input.editorId); if (editorIds.length === 0) { return; diff --git a/src/vs/workbench/contrib/customEditor/browser/customEditors.ts b/src/vs/workbench/contrib/customEditor/browser/customEditors.ts index a1002a74a13..edb2ab0b11f 100644 --- a/src/vs/workbench/contrib/customEditor/browser/customEditors.ts +++ b/src/vs/workbench/contrib/customEditor/browser/customEditors.ts @@ -24,7 +24,7 @@ import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { CONTEXT_ACTIVE_CUSTOM_EDITOR_ID, CONTEXT_FOCUSED_CUSTOM_EDITOR_IS_EDITABLE, CustomEditorCapabilities, CustomEditorInfo, CustomEditorInfoCollection, ICustomEditorService } from 'vs/workbench/contrib/customEditor/common/customEditor'; import { CustomEditorModelManager } from 'vs/workbench/contrib/customEditor/common/customEditorModelManager'; import { IEditorGroup, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; -import { RegisteredEditorPriority, IEditorOverrideService, IEditorType } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority, IEditorResolverService, IEditorType } from 'vs/workbench/services/editor/common/editorResolverService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; import { ContributedCustomEditors } from '../common/contributedCustomEditors'; @@ -56,7 +56,7 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ @IEditorGroupsService private readonly editorGroupService: IEditorGroupsService, @IInstantiationService private readonly instantiationService: IInstantiationService, @IUriIdentityService private readonly uriIdentityService: IUriIdentityService, - @IEditorOverrideService private readonly extensionContributedEditorService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, ) { super(); @@ -114,7 +114,7 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ if (!globPattern.filenamePattern) { continue; } - this._editorOverrideDisposables.push(this._register(this.extensionContributedEditorService.registerEditor( + this._editorOverrideDisposables.push(this._register(this.editorResolverService.registerEditor( globPattern.filenamePattern, { id: contributedEditor.id, @@ -170,7 +170,7 @@ export class CustomEditorService extends Disposable implements ICustomEditorServ } public getUserConfiguredCustomEditors(resource: URI): CustomEditorInfoCollection { - const resourceAssocations = this.extensionContributedEditorService.getAssociationsForResource(resource); + const resourceAssocations = this.editorResolverService.getAssociationsForResource(resource); return new CustomEditorInfoCollection( coalesce(resourceAssocations .map(association => this._contributedEditors.get(association.viewType)))); diff --git a/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.ts b/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.ts index ea606721b98..7a822e585a4 100644 --- a/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.ts +++ b/src/vs/workbench/contrib/customEditor/common/contributedCustomEditors.ts @@ -12,7 +12,7 @@ import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storag import { Memento } from 'vs/workbench/common/memento'; import { CustomEditorDescriptor, CustomEditorInfo } from 'vs/workbench/contrib/customEditor/common/customEditor'; import { customEditorsExtensionPoint, ICustomEditorsExtensionPoint } from 'vs/workbench/contrib/customEditor/common/extensionPoint'; -import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry'; export const defaultCustomEditor = new CustomEditorInfo({ diff --git a/src/vs/workbench/contrib/customEditor/common/customEditor.ts b/src/vs/workbench/contrib/customEditor/common/customEditor.ts index 21064556bbf..41888153f24 100644 --- a/src/vs/workbench/contrib/customEditor/common/customEditor.ts +++ b/src/vs/workbench/contrib/customEditor/common/customEditor.ts @@ -11,7 +11,7 @@ import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import * as nls from 'vs/nls'; import { IRevertOptions, ISaveOptions } from 'vs/workbench/common/editor'; -import { RegisteredEditorPriority, globMatchesResource, priorityToRank } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority, globMatchesResource, priorityToRank } from 'vs/workbench/services/editor/common/editorResolverService'; export const ICustomEditorService = createDecorator('customEditorService'); diff --git a/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.ts b/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.ts index a244e0a8939..47029b2f3fe 100644 --- a/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.ts +++ b/src/vs/workbench/contrib/files/browser/editors/binaryFileEditor.ts @@ -12,8 +12,8 @@ import { FileEditorInput } from 'vs/workbench/contrib/files/browser/editors/file import { BINARY_FILE_EDITOR_ID } from 'vs/workbench/contrib/files/common/files'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { EditorOverride, IEditorOptions } from 'vs/platform/editor/common/editor'; -import { IEditorOverrideService, OverrideStatus, ReturnedOverride } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { EditorResolution, IEditorOptions } from 'vs/platform/editor/common/editor'; +import { IEditorResolverService, ResolvedStatus, ResolvedEditor } from 'vs/workbench/services/editor/common/editorResolverService'; /** * An implementation of editor for binary files that cannot be displayed. @@ -26,7 +26,7 @@ export class BinaryFileEditor extends BaseBinaryResourceEditor { @ITelemetryService telemetryService: ITelemetryService, @IThemeService themeService: IThemeService, @IEditorService private readonly editorService: IEditorService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IStorageService storageService: IStorageService ) { super( @@ -55,10 +55,10 @@ export class BinaryFileEditor extends BaseBinaryResourceEditor { input.setForceOpenAsText(); // Try to let the user pick an override if there is one availabe - let overridenInput: ReturnedOverride | undefined = await this.editorOverrideService.resolveEditor({ resource: editor.resource, options: { ...options, override: EditorOverride.PICK } }, this.group); - if (overridenInput === OverrideStatus.NONE) { + let overridenInput: ResolvedEditor | undefined = await this.editorResolverService.resolveEditor({ resource: editor.resource, options: { ...options, override: EditorResolution.PICK } }, this.group); + if (overridenInput === ResolvedStatus.NONE) { overridenInput = undefined; - } else if (overridenInput === OverrideStatus.ABORT) { + } else if (overridenInput === ResolvedStatus.ABORT) { return; } @@ -68,7 +68,7 @@ export class BinaryFileEditor extends BaseBinaryResourceEditor { replacement: overridenInput?.editor ?? input, options: { ...overridenInput?.options ?? options, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED } }], this.group); } diff --git a/src/vs/workbench/contrib/files/browser/editors/textFileEditor.ts b/src/vs/workbench/contrib/files/browser/editors/textFileEditor.ts index bbd322b2eed..8e88b645622 100644 --- a/src/vs/workbench/contrib/files/browser/editors/textFileEditor.ts +++ b/src/vs/workbench/contrib/files/browser/editors/textFileEditor.ts @@ -29,7 +29,7 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { CancellationToken } from 'vs/base/common/cancellation'; import { createErrorWithActions } from 'vs/base/common/errors'; -import { EditorActivation, EditorOverride, ITextEditorOptions } from 'vs/platform/editor/common/editor'; +import { EditorActivation, EditorResolution, ITextEditorOptions } from 'vs/platform/editor/common/editor'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; import { IExplorerService } from 'vs/workbench/contrib/files/browser/files'; import { MutableDisposable } from 'vs/base/common/lifecycle'; @@ -226,7 +226,7 @@ export class TextFileEditor extends BaseTextEditor { // and do not control the initial intent that resulted // in us now opening as binary. activation: EditorActivation.PRESERVE, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED }, this.group); } diff --git a/src/vs/workbench/contrib/files/browser/fileCommands.ts b/src/vs/workbench/contrib/files/browser/fileCommands.ts index 9d365bf6aaa..d834b54f85a 100644 --- a/src/vs/workbench/contrib/files/browser/fileCommands.ts +++ b/src/vs/workbench/contrib/files/browser/fileCommands.ts @@ -44,7 +44,7 @@ import { ITextFileService } from 'vs/workbench/services/textfile/common/textfile import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; import { isPromiseCanceledError } from 'vs/base/common/errors'; import { toAction } from 'vs/base/common/actions'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { hash } from 'vs/base/common/hash'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -358,7 +358,7 @@ CommandsRegistry.registerCommand({ const uri = getResourceForCommand(resource, accessor.get(IListService), accessor.get(IEditorService)); if (uri) { - return editorService.openEditor({ resource: uri, options: { override: EditorOverride.PICK } }); + return editorService.openEditor({ resource: uri, options: { override: EditorResolution.PICK } }); } return undefined; diff --git a/src/vs/workbench/contrib/files/browser/views/explorerView.ts b/src/vs/workbench/contrib/files/browser/views/explorerView.ts index e85e0d42c97..cbc4fe86d48 100644 --- a/src/vs/workbench/contrib/files/browser/views/explorerView.ts +++ b/src/vs/workbench/contrib/files/browser/views/explorerView.ts @@ -55,7 +55,7 @@ import { IExplorerService } from 'vs/workbench/contrib/files/browser/files'; import { Codicon } from 'vs/base/common/codicons'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; -import { IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; interface IExplorerViewColors extends IColorMapping { listDropBackground?: ColorValue | undefined; @@ -176,7 +176,7 @@ export class ExplorerView extends ViewPane { @IWorkspaceContextService private readonly contextService: IWorkspaceContextService, @IProgressService private readonly progressService: IProgressService, @IEditorService private readonly editorService: IEditorService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IWorkbenchLayoutService private readonly layoutService: IWorkbenchLayoutService, @IKeybindingService keybindingService: IKeybindingService, @IContextKeyService contextKeyService: IContextKeyService, @@ -507,7 +507,7 @@ export class ExplorerView extends ViewPane { this.rootContext.set(!!stat && stat.isRoot); if (resource) { - const overrides = resource ? this.editorOverrideService.getEditorIds(resource) : []; + const overrides = resource ? this.editorResolverService.getEditorIds(resource) : []; this.availableEditorIdsContext.set(overrides.join(',')); } else { this.availableEditorIdsContext.reset(); diff --git a/src/vs/workbench/contrib/interactive/browser/interactive.contribution.ts b/src/vs/workbench/contrib/interactive/browser/interactive.contribution.ts index 9ca0e104ae6..01824bc7552 100644 --- a/src/vs/workbench/contrib/interactive/browser/interactive.contribution.ts +++ b/src/vs/workbench/contrib/interactive/browser/interactive.contribution.ts @@ -41,7 +41,7 @@ import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegis import { INTERACTIVE_INPUT_CURSOR_BOUNDARY } from 'vs/workbench/contrib/interactive/browser/interactiveCommon'; import { INotebookKernelService } from 'vs/workbench/contrib/notebook/common/notebookKernelService'; import { IInteractiveDocumentService, InteractiveDocumentService } from 'vs/workbench/contrib/interactive/browser/interactiveDocumentService'; -import { IEditorOverrideService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { Context as SuggestContext } from 'vs/editor/contrib/suggest/suggest'; import { EditorActivation } from 'vs/platform/editor/common/editor'; @@ -60,7 +60,7 @@ Registry.as(EditorExtensions.EditorPane).registerEditorPane export class InteractiveDocumentContribution extends Disposable implements IWorkbenchContribution { constructor( @INotebookService notebookService: INotebookService, - @IEditorOverrideService editorOverrideService: IEditorOverrideService, + @IEditorResolverService editorResolverService: IEditorResolverService, @IEditorService editorService: IEditorService, ) { super(); @@ -174,7 +174,7 @@ export class InteractiveDocumentContribution extends Disposable implements IWork })); } - editorOverrideService.registerEditor( + editorResolverService.registerEditor( `${Schemas.vscodeInteractiveInput}:/**`, { id: InteractiveEditor.ID, @@ -191,7 +191,7 @@ export class InteractiveDocumentContribution extends Disposable implements IWork } ); - editorOverrideService.registerEditor( + editorResolverService.registerEditor( `*.interactive`, { id: InteractiveEditor.ID, diff --git a/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.ts b/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.ts index eee6fb7e2df..7c0055bb36f 100644 --- a/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffActions.ts @@ -20,7 +20,7 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { Registry } from 'vs/platform/registry/common/platform'; import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'vs/platform/configuration/common/configurationRegistry'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; // ActiveEditorContext.isEqualTo(SearchEditorConstants.SearchEditorID) @@ -54,7 +54,7 @@ registerAction2(class extends Action2 { label: diffEditorInput.getName(), options: { preserveFocus: false, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED } }, columnToEditorGroup(editorGroupService, undefined)); } diff --git a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts index 5041e1f0752..701c6628239 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts @@ -50,7 +50,7 @@ import { NotebookModelResolverServiceImpl } from 'vs/workbench/contrib/notebook/ import { INotebookKernelService } from 'vs/workbench/contrib/notebook/common/notebookKernelService'; import { NotebookKernelService } from 'vs/workbench/contrib/notebook/browser/notebookKernelServiceImpl'; import { IWorkingCopyIdentifier } from 'vs/workbench/services/workingCopy/common/workingCopy'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { IWorkingCopyEditorService } from 'vs/workbench/services/workingCopy/common/workingCopyEditorService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -472,7 +472,7 @@ class NotebookEditorManager implements IWorkbenchContribution { if (model.isDirty() && !this._editorService.isOpened({ resource: model.resource, typeId: NotebookEditorInput.ID, editorId: model.viewType })) { result.push({ editor: NotebookEditorInput.create(this._instantiationService, model.resource, model.viewType), - options: { inactive: true, preserveFocus: true, pinned: true, override: EditorOverride.DISABLED } + options: { inactive: true, preserveFocus: true, pinned: true, override: EditorResolution.DISABLED } }); } } diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts index f88c3f92d2d..7f4462babd9 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts @@ -11,7 +11,7 @@ import 'vs/css!./media/notebook'; import { localize } from 'vs/nls'; import { extname } from 'vs/base/common/resources'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { IStorageService } from 'vs/platform/storage/common/storage'; @@ -208,7 +208,7 @@ export class NotebookEditor extends EditorPane { [{ label: localize('fail.reOpen', "Reopen file with VS Code standard text editor"), run: async () => { - await this._editorService.openEditor({ resource: input.resource, forceFile: true, options: { ...options, override: EditorOverride.DISABLED } }); + await this._editorService.openEditor({ resource: input.resource, forceFile: true, options: { ...options, override: EditorResolution.DISABLED } }); } }] ); diff --git a/src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts b/src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts index 8b7991ca2e7..ef05f403974 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookServiceImpl.ts @@ -36,7 +36,7 @@ import { updateEditorTopPadding } from 'vs/workbench/contrib/notebook/common/not import { NotebookOutputRendererInfo } from 'vs/workbench/contrib/notebook/common/notebookOutputRenderer'; import { NotebookEditorDescriptor, NotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookProvider'; import { ComplexNotebookProviderInfo, INotebookContentProvider, INotebookSerializer, INotebookService, SimpleNotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookService'; -import { RegisteredEditorInfo, RegisteredEditorPriority, DiffEditorInputFactoryFunction, EditorInputFactoryFunction, IEditorOverrideService, IEditorType, UntitledEditorInputFactoryFunction } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorInfo, RegisteredEditorPriority, DiffEditorInputFactoryFunction, EditorInputFactoryFunction, IEditorResolverService, IEditorType, UntitledEditorInputFactoryFunction } from 'vs/workbench/services/editor/common/editorResolverService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { IExtensionPointUser } from 'vs/workbench/services/extensions/common/extensionsRegistry'; @@ -56,7 +56,7 @@ export class NotebookProviderInfoStore extends Disposable { constructor( @IStorageService storageService: IStorageService, @IExtensionService extensionService: IExtensionService, - @IEditorOverrideService private readonly _editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly _editorResolverService: IEditorResolverService, @IConfigurationService private readonly _configurationService: IConfigurationService, @IAccessibilityService private readonly _accessibilityService: IAccessibilityService, @IInstantiationService private readonly _instantiationService: IInstantiationService, @@ -182,7 +182,7 @@ export class NotebookProviderInfoStore extends Disposable { return { editor: NotebookDiffEditorInput.create(this._instantiationService, modified.resource!, undefined, undefined, original.resource!, notebookProviderInfo.id) }; }; // Register the notebook editor - disposables.add(this._editorOverrideService.registerEditor( + disposables.add(this._editorResolverService.registerEditor( globPattern, notebookEditorInfo, notebookEditorOptions, @@ -191,7 +191,7 @@ export class NotebookProviderInfoStore extends Disposable { notebookDiffEditorInputFactory )); // Then register the schema handler as exclusive for that notebook - disposables.add(this._editorOverrideService.registerEditor( + disposables.add(this._editorResolverService.registerEditor( `${Schemas.vscodeNotebookCell}:/**/${globPattern}`, { ...notebookEditorInfo, priority: RegisteredEditorPriority.exclusive }, notebookEditorOptions, diff --git a/src/vs/workbench/contrib/notebook/common/notebookProvider.ts b/src/vs/workbench/contrib/notebook/common/notebookProvider.ts index 93b3de22fba..4a1c386ca31 100644 --- a/src/vs/workbench/contrib/notebook/common/notebookProvider.ts +++ b/src/vs/workbench/contrib/notebook/common/notebookProvider.ts @@ -7,7 +7,7 @@ import * as glob from 'vs/base/common/glob'; import { URI } from 'vs/base/common/uri'; import { basename } from 'vs/base/common/path'; import { INotebookExclusiveDocumentFilter, isDocumentExcludePattern, TransientOptions } from 'vs/workbench/contrib/notebook/common/notebookCommon'; -import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; type NotebookSelector = string | glob.IRelativePattern | INotebookExclusiveDocumentFilter; diff --git a/src/vs/workbench/contrib/notebook/test/notebookServiceImpl.test.ts b/src/vs/workbench/contrib/notebook/test/notebookServiceImpl.test.ts index 20620f241d9..2b731195cef 100644 --- a/src/vs/workbench/contrib/notebook/test/notebookServiceImpl.test.ts +++ b/src/vs/workbench/contrib/notebook/test/notebookServiceImpl.test.ts @@ -13,8 +13,8 @@ import { IFileService } from 'vs/platform/files/common/files'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { NotebookProviderInfoStore } from 'vs/workbench/contrib/notebook/browser/notebookServiceImpl'; import { NotebookProviderInfo } from 'vs/workbench/contrib/notebook/common/notebookProvider'; -import { EditorOverrideService } from 'vs/workbench/services/editor/browser/editorOverrideService'; -import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { EditorResolverService } from 'vs/workbench/services/editor/browser/editorResolverService'; +import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { IExtensionService, nullExtensionDescription } from 'vs/workbench/services/extensions/common/extensions'; import { workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices'; @@ -31,7 +31,7 @@ suite('NotebookProviderInfoStore', function () { new class extends mock() { override onDidRegisterExtensions = Event.None; }, - instantiationService.createInstance(EditorOverrideService), + instantiationService.createInstance(EditorResolverService), new TestConfigurationService(), new class extends mock() { }, instantiationService, diff --git a/src/vs/workbench/contrib/outline/browser/outlinePane.ts b/src/vs/workbench/contrib/outline/browser/outlinePane.ts index a39d9986014..a8b15e152c1 100644 --- a/src/vs/workbench/contrib/outline/browser/outlinePane.ts +++ b/src/vs/workbench/contrib/outline/browser/outlinePane.ts @@ -37,7 +37,7 @@ import { CancellationTokenSource } from 'vs/base/common/cancellation'; import { Event } from 'vs/base/common/event'; import { ITreeSorter } from 'vs/base/browser/ui/tree/tree'; import { URI } from 'vs/base/common/uri'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/common/notebookEditorInput'; import { CustomEditorInput } from 'vs/workbench/contrib/customEditor/browser/customEditorInput'; @@ -288,7 +288,7 @@ export class OutlinePane extends ViewPane { // feature: reveal outline selection in editor // on change -> reveal/select defining range this._editorDisposables.add(tree.onDidOpen(e => { - let override: EditorOverride | string = EditorOverride.DISABLED; + let override: EditorResolution | string = EditorResolution.DISABLED; if (this._editorService.activeEditor instanceof NotebookEditorInput || this._editorService.activeEditor instanceof CustomEditorInput) { override = this._editorService.activeEditor.viewType; } diff --git a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts index b232af732a2..55d3d954777 100644 --- a/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts +++ b/src/vs/workbench/contrib/preferences/common/preferencesContribution.ts @@ -20,7 +20,7 @@ import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/ import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuration'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; import { IEditorInputWithOptions } from 'vs/workbench/common/editor'; -import { RegisteredEditorPriority, IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority, IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { FOLDER_SETTINGS_PATH, IPreferencesService, USE_SPLIT_JSON_SETTING } from 'vs/workbench/services/preferences/common/preferences'; import { PreferencesEditorInput } from 'vs/workbench/services/preferences/common/preferencesEditorInput'; @@ -39,7 +39,7 @@ export class PreferencesContribution implements IWorkbenchContribution { @IEnvironmentService private readonly environmentService: IEnvironmentService, @IWorkspaceContextService private readonly workspaceService: IWorkspaceContextService, @IConfigurationService private readonly configurationService: IConfigurationService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IEditorService private readonly editorService: IEditorService, ) { this.settingsListener = this.configurationService.onDidChangeConfiguration(e => { @@ -59,7 +59,7 @@ export class PreferencesContribution implements IWorkbenchContribution { // install editor opening listener unless user has disabled this if (!!this.configurationService.getValue(USE_SPLIT_JSON_SETTING)) { - this.editorOpeningListener = this.editorOverrideService.registerEditor( + this.editorOpeningListener = this.editorResolverService.registerEditor( '**/settings.json', { id: PreferencesEditorInput.ID, diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts index c2f62568c7a..b0c825f7180 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts @@ -32,7 +32,7 @@ import { createEditorFromSearchResult, modifySearchEditorContextLinesCommand, op import { getOrMakeSearchEditorInput, SearchConfiguration, SearchEditorInput, SEARCH_EDITOR_EXT } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { VIEW_ID } from 'vs/workbench/services/search/common/search'; -import { RegisteredEditorPriority, IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority, IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; import { IWorkingCopyEditorService } from 'vs/workbench/services/workingCopy/common/workingCopyEditorService'; import { Disposable } from 'vs/base/common/lifecycle'; @@ -69,13 +69,13 @@ Registry.as(EditorExtensions.EditorPane).registerEditorPane //#region Startup Contribution class SearchEditorContribution implements IWorkbenchContribution { constructor( - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IInstantiationService protected readonly instantiationService: IInstantiationService, @ITelemetryService protected readonly telemetryService: ITelemetryService, @IContextKeyService protected readonly contextKeyService: IContextKeyService, ) { - this.editorOverrideService.registerEditor( + this.editorResolverService.registerEditor( '*' + SEARCH_EDITOR_EXT, { id: SearchEditorInput.ID, diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts index 4a6ca12b468..0bc40effb4b 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts @@ -10,7 +10,7 @@ import 'vs/css!./media/searchEditor'; import { ICodeEditor, isDiffEditor } from 'vs/editor/browser/editorBrowser'; import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { ILabelService } from 'vs/platform/label/common/label'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; @@ -147,7 +147,7 @@ export const openNewSearchEditor = let editor: SearchEditor; if (existing && args.location === 'reuse') { const input = existing.editor as SearchEditorInput; - editor = (await editorService.openEditor(input, { override: EditorOverride.DISABLED }, existing.groupId)) as SearchEditor; + editor = (await editorService.openEditor(input, { override: EditorResolution.DISABLED }, existing.groupId)) as SearchEditor; if (selected) { editor.setQuery(selected); } else { editor.selectQuery(); } editor.setSearchConfig(args); diff --git a/src/vs/workbench/contrib/terminal/browser/terminalService.ts b/src/vs/workbench/contrib/terminal/browser/terminalService.ts index 6961bfa0c1d..7c847e8bffe 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalService.ts @@ -41,7 +41,7 @@ import { TerminalViewPane } from 'vs/workbench/contrib/terminal/browser/terminal import { IRemoteTerminalAttachTarget, IStartExtensionTerminalRequest, ITerminalConfigHelper, ITerminalProcessExtHostProxy, ITerminalProfileContribution, KEYBINDING_CONTEXT_TERMINAL_IS_OPEN, KEYBINDING_CONTEXT_TERMINAL_PROCESS_SUPPORTED, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal'; import { ITerminalContributionService } from 'vs/workbench/contrib/terminal/common/terminalExtensionPoints'; import { formatMessageForTerminal, terminalStrings } from 'vs/workbench/contrib/terminal/common/terminalStrings'; -import { IEditorOverrideService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { ILifecycleService, ShutdownReason, WillShutdownEvent } from 'vs/workbench/services/lifecycle/common/lifecycle'; @@ -144,7 +144,7 @@ export class TerminalService implements ITerminalService { @ITerminalEditorService private readonly _terminalEditorService: ITerminalEditorService, @ITerminalGroupService private readonly _terminalGroupService: ITerminalGroupService, @ITerminalInstanceService private readonly _terminalInstanceService: ITerminalInstanceService, - @IEditorOverrideService editorOverrideService: IEditorOverrideService, + @IEditorResolverService editorResolverService: IEditorResolverService, @IExtensionService private readonly _extensionService: IExtensionService, @INotificationService private readonly _notificationService: INotificationService, @optional(ILocalTerminalService) localTerminalService: ILocalTerminalService @@ -154,7 +154,7 @@ export class TerminalService implements ITerminalService { this._findState = new FindReplaceState(); this._configHelper = _instantiationService.createInstance(TerminalConfigHelper); - editorOverrideService.registerEditor( + editorResolverService.registerEditor( `${Schemas.vscodeTerminal}:/**`, { id: TerminalEditor.ID, diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index ec988fcb874..ca730c23966 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -54,7 +54,7 @@ import { UserDataSyncDataViews } from 'vs/workbench/contrib/userDataSync/browser import { IUserDataSyncWorkbenchService, getSyncAreaLabel, AccountStatus, CONTEXT_SYNC_STATE, CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE, CONFIGURE_SYNC_COMMAND_ID, SHOW_SYNC_LOG_COMMAND_ID, SYNC_VIEW_CONTAINER_ID, SYNC_TITLE, SYNC_VIEW_ICON } from 'vs/workbench/services/userDataSync/common/userDataSync'; import { Codicon } from 'vs/base/common/codicons'; import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; const CONTEXT_CONFLICTS_SOURCES = new RawContextKey('conflictsSources', ''); @@ -693,7 +693,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo preserveFocus: false, pinned: true, revealIfVisible: true, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED }, }); } diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSyncMergesView.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSyncMergesView.ts index 9c09e9270d8..12a8db87469 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSyncMergesView.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSyncMergesView.ts @@ -38,7 +38,7 @@ import { FloatingClickWidget } from 'vs/workbench/browser/codeeditor'; import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; import { Severity } from 'vs/platform/notification/common/notification'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; export class UserDataSyncMergesViewPane extends TreeViewPane { @@ -324,7 +324,7 @@ export class UserDataSyncMergesViewPane extends TreeViewPane { preserveFocus: true, revealIfVisible: true, pinned: true, - override: EditorOverride.DISABLED + override: EditorResolution.DISABLED }, }); } diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.contribution.ts b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.contribution.ts index 0ecc6c0948b..ca95fb8563e 100644 --- a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.contribution.ts +++ b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.contribution.ts @@ -22,7 +22,7 @@ import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle import { ConfigurationScope, Extensions as ConfigurationExtensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuration'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands'; import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; @@ -69,7 +69,7 @@ registerAction2(class extends Action2 { if (!editor.selectedCategory) { editor.selectedCategory = selectedCategory; editor.selectedStep = selectedStep; - editorService.openEditor(editor, { revealIfOpened: true, override: EditorOverride.DISABLED }, groupId); + editorService.openEditor(editor, { revealIfOpened: true, override: EditorResolution.DISABLED }, groupId); return; } } diff --git a/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts b/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts index 755e7a4e474..99161fe0721 100644 --- a/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts +++ b/src/vs/workbench/contrib/welcome/walkThrough/browser/editor/editorWalkThrough.ts @@ -11,7 +11,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { WalkThroughInput, WalkThroughInputOptions } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput'; import { FileAccess, Schemas } from 'vs/base/common/network'; import { IEditorSerializer } from 'vs/workbench/common/editor'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { EditorInput } from 'vs/workbench/common/editor/editorInput'; const typeId = 'workbench.editors.walkThroughInput'; @@ -42,7 +42,7 @@ export class EditorWalkThroughAction extends Action { public override run(): Promise { const input = this.instantiationService.createInstance(WalkThroughInput, inputOptions); - return this.editorService.openEditor(input, { pinned: true, override: EditorOverride.DISABLED }) + return this.editorService.openEditor(input, { pinned: true, override: EditorResolution.DISABLED }) .then(() => void (0)); } } diff --git a/src/vs/workbench/services/editor/browser/editorOverrideService.ts b/src/vs/workbench/services/editor/browser/editorResolverService.ts similarity index 83% rename from src/vs/workbench/services/editor/browser/editorOverrideService.ts rename to src/vs/workbench/services/editor/browser/editorResolverService.ts index f8557b7361f..1b0d84cf51c 100644 --- a/src/vs/workbench/services/editor/browser/editorOverrideService.ts +++ b/src/vs/workbench/services/editor/browser/editorResolverService.ts @@ -9,11 +9,11 @@ import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle' import { basename, extname, isEqual } from 'vs/base/common/resources'; import { URI } from 'vs/base/common/uri'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { EditorActivation, EditorOverride, IEditorOptions } from 'vs/platform/editor/common/editor'; +import { EditorActivation, EditorResolution, IEditorOptions } from 'vs/platform/editor/common/editor'; import { DEFAULT_EDITOR_ASSOCIATION, EditorResourceAccessor, IEditorInput, IEditorInputWithOptions, isEditorInputWithOptions, isResourceDiffEditorInput, isUntitledResourceEditorInput, IUntypedEditorInput, SideBySideEditor, UntypedEditorContext } from 'vs/workbench/common/editor'; import { IEditorGroup, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { Schemas } from 'vs/base/common/network'; -import { RegisteredEditorInfo, RegisteredEditorPriority, RegisteredEditorOptions, DiffEditorInputFactoryFunction, EditorAssociation, EditorAssociations, EditorInputFactoryFunction, editorsAssociationsSettingId, globMatchesResource, IEditorOverrideService, priorityToRank, ReturnedOverride, OverrideStatus, UntitledEditorInputFactoryFunction } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorInfo, RegisteredEditorPriority, RegisteredEditorOptions, DiffEditorInputFactoryFunction, EditorAssociation, EditorAssociations, EditorInputFactoryFunction, editorsAssociationsSettingId, globMatchesResource, IEditorResolverService, priorityToRank, ResolvedEditor, ResolvedStatus, UntitledEditorInputFactoryFunction } from 'vs/workbench/services/editor/common/editorResolverService'; import { IKeyMods, IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { localize } from 'vs/nls'; import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; @@ -37,12 +37,12 @@ interface RegisteredEditor { type RegisteredEditors = Array; -export class EditorOverrideService extends Disposable implements IEditorOverrideService { +export class EditorResolverService extends Disposable implements IEditorResolverService { readonly _serviceBrand: undefined; // Constants private static readonly configureDefaultID = 'promptOpenWith.configureDefault'; - private static readonly overrideCacheStorageID = 'editorOverrideService.cache'; + private static readonly cacheStorageID = 'editorOverrideService.cache'; private static readonly conflictingDefaultsStorageID = 'editorOverrideService.conflictingDefaults'; // Data Stores @@ -62,8 +62,8 @@ export class EditorOverrideService extends Disposable implements IEditorOverride ) { super(); // Read in the cache on statup - this.cache = new Set(JSON.parse(this.storageService.get(EditorOverrideService.overrideCacheStorageID, StorageScope.GLOBAL, JSON.stringify([])))); - this.storageService.remove(EditorOverrideService.overrideCacheStorageID, StorageScope.GLOBAL); + this.cache = new Set(JSON.parse(this.storageService.get(EditorResolverService.cacheStorageID, StorageScope.GLOBAL, JSON.stringify([])))); + this.storageService.remove(EditorResolverService.cacheStorageID, StorageScope.GLOBAL); this.convertOldAssociationFormat(); this._register(this.storageService.onWillSaveState(() => { @@ -87,7 +87,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride private async resolveUntypedInputAndGroup(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise<[IUntypedEditorInput, IEditorGroup, EditorActivation | undefined] | undefined> { let untypedEditor: IUntypedEditorInput | undefined = undefined; - // Typed: convert to untyped to be able to resolve the override + // Typed: convert to untyped to be able to resolve the editor as the service only uses untyped if (isEditorInputWithOptions(editor)) { untypedEditor = editor.editor.toUntyped(undefined, UntypedEditorContext.Default); @@ -114,10 +114,10 @@ export class EditorOverrideService extends Disposable implements IEditorOverride return [untypedEditor, group, activation]; } - async resolveEditor(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise { + async resolveEditor(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise { const resolvedUntypedAndGroup = await this.resolveUntypedInputAndGroup(editor, preferredGroup); if (!resolvedUntypedAndGroup) { - return OverrideStatus.NONE; + return ResolvedStatus.NONE; } // Get the resolved untyped editor, group, and activation const [untypedEditor, group, activation] = resolvedUntypedAndGroup; @@ -128,7 +128,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride let resource = EditorResourceAccessor.getCanonicalUri(untypedEditor, { supportSideBySide: SideBySideEditor.PRIMARY }); let options = untypedEditor.options; - // If it was an override before we await for the extensions to activate and then proceed with overriding or else they won't be registered + // If it was resolved before we await for the extensions to activate and then proceed with resolution or else the backing extensions won't be registered if (this.cache && resource && this.resourceMatchesCache(resource)) { await this.extensionService.whenInstalledExtensionsRegistered(); } @@ -137,29 +137,29 @@ export class EditorOverrideService extends Disposable implements IEditorOverride resource = URI.from({ scheme: Schemas.untitled }); } - if (untypedEditor.options?.override === EditorOverride.DISABLED) { - throw new Error(`Calling resolve editor override when override is explicitly disabled!`); + if (untypedEditor.options?.override === EditorResolution.DISABLED) { + throw new Error(`Calling resolve editor when resolution is explicitly disabled!`); } - if (untypedEditor.options?.override === EditorOverride.PICK) { - const picked = await this.doPickEditorOverride(untypedEditor); - // If the picker was cancelled we will stop resolving the override + if (untypedEditor.options?.override === EditorResolution.PICK) { + const picked = await this.doPickEditor(untypedEditor); + // If the picker was cancelled we will stop resolving the editor if (!picked) { - return OverrideStatus.ABORT; + return ResolvedStatus.ABORT; } // Populate the options with the new ones untypedEditor.options = picked; } - // Resolved the override as much as possible, now find a given editor (cast here is ok because we resolve down to a string above) - const { editor: selectedEditor, conflictingDefault } = this.getEditor(resource, untypedEditor.options?.override as (string | EditorOverride.EXCLUSIVE_ONLY | undefined)); + // Resolved the editor ID as much as possible, now find a given editor (cast here is ok because we resolve down to a string above) + const { editor: selectedEditor, conflictingDefault } = this.getEditor(resource, untypedEditor.options?.override as (string | EditorResolution.EXCLUSIVE_ONLY | undefined)); if (!selectedEditor) { - return OverrideStatus.NONE; + return ResolvedStatus.NONE; } const handlesDiff = typeof selectedEditor.options?.canHandleDiff === 'function' ? selectedEditor.options.canHandleDiff() : selectedEditor.options?.canHandleDiff; if (handlesDiff === false && isResourceDiffEditorInput(untypedEditor)) { - return OverrideStatus.NONE; + return ResolvedStatus.NONE; } // If it's the currently active editor we shouldn't do anything @@ -168,17 +168,17 @@ export class EditorOverrideService extends Disposable implements IEditorOverride if (activeEditor && isActive) { return { editor: activeEditor, options, group }; } - const input = await this.doOverrideEditorInput(untypedEditor, group, selectedEditor); + const input = await this.doResolveEditor(untypedEditor, group, selectedEditor); if (conflictingDefault && input) { // Show the conflicting default dialog await this.doHandleConflictingDefaults(resource, selectedEditor.editorInfo.label, untypedEditor, input.editor, group); } if (input) { - this.sendOverrideTelemetry(input.editor); + this.sendEditorResolutionTelemetry(input.editor); return { ...input, group }; } - return OverrideStatus.ABORT; + return ResolvedStatus.ABORT; } registerEditor( @@ -292,10 +292,10 @@ export class EditorOverrideService extends Disposable implements IEditorOverride } /** - * Given a resource and an override selects the best possible editor + * Given a resource and an editorId selects the best possible editor * @returns The editor and whether there was another default which conflicted with it */ - private getEditor(resource: URI, override: string | EditorOverride.EXCLUSIVE_ONLY | undefined): { editor: RegisteredEditor | undefined, conflictingDefault: boolean } { + private getEditor(resource: URI, editorId: string | EditorResolution.EXCLUSIVE_ONLY | undefined): { editor: RegisteredEditor | undefined, conflictingDefault: boolean } { const findMatchingEditor = (editors: RegisteredEditors, viewType: string) => { return editors.find((editor) => { @@ -306,11 +306,11 @@ export class EditorOverrideService extends Disposable implements IEditorOverride }); }; - if (override && override !== EditorOverride.EXCLUSIVE_ONLY) { - // Specific overried passed in doesn't have to match the resource, it can be anything + if (editorId && editorId !== EditorResolution.EXCLUSIVE_ONLY) { + // Specific id passed in doesn't have to match the resource, it can be anything const registeredEditors = this._registeredEditors; return { - editor: findMatchingEditor(registeredEditors, override), + editor: findMatchingEditor(registeredEditors, editorId), conflictingDefault: false }; } @@ -318,8 +318,8 @@ export class EditorOverrideService extends Disposable implements IEditorOverride let editors = this.findMatchingEditors(resource); const associationsFromSetting = this.getAssociationsForResource(resource); - // We only want minPriority+ if no user defined setting is found, else we won't override - const minPriority = override === EditorOverride.EXCLUSIVE_ONLY ? RegisteredEditorPriority.exclusive : RegisteredEditorPriority.builtin; + // We only want minPriority+ if no user defined setting is found, else we won't resolve an editor + const minPriority = editorId === EditorResolution.EXCLUSIVE_ONLY ? RegisteredEditorPriority.exclusive : RegisteredEditorPriority.builtin; const possibleEditors = editors.filter(editor => priorityToRank(editor.editorInfo.priority) >= priorityToRank(minPriority) && editor.editorInfo.id !== DEFAULT_EDITOR_ASSOCIATION.id); if (possibleEditors.length === 0) { return { @@ -343,7 +343,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride }; } - private async doOverrideEditorInput(editor: IUntypedEditorInput, group: IEditorGroup, selectedEditor: RegisteredEditor): Promise { + private async doResolveEditor(editor: IUntypedEditorInput, group: IEditorGroup, selectedEditor: RegisteredEditor): Promise { let options = editor.options; const resource = EditorResourceAccessor.getCanonicalUri(editor, { supportSideBySide: SideBySideEditor.PRIMARY }); // If no activation option is provided, populate it. @@ -413,14 +413,14 @@ export class EditorOverrideService extends Disposable implements IEditorOverride } /** - * Given a resource and a viewType, returns all editors open for that resouce and viewType. + * Given a resource and an editorId, returns all editors open for that resouce and editorId. * @param resource The resource specified - * @param viewType The viewtype + * @param editorId The editorID * @returns A list of editors */ private findExistingEditorsForResource( resource: URI, - viewType: string, + editorId: string, ): Array<{ editor: IEditorInput, group: IEditorGroup }> { const out: Array<{ editor: IEditorInput, group: IEditorGroup }> = []; const orderedGroups = distinct([ @@ -429,7 +429,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride for (const group of orderedGroups) { for (const editor of group.editors) { - if (isEqual(editor.resource, resource) && editor.editorId === viewType) { + if (isEqual(editor.resource, resource) && editor.editorId === editorId) { out.push({ editor, group }); } } @@ -442,13 +442,13 @@ export class EditorOverrideService extends Disposable implements IEditorOverride [key: string]: string[]; }; const editors = this.findMatchingEditors(resource); - const storedChoices: StoredChoice = JSON.parse(this.storageService.get(EditorOverrideService.conflictingDefaultsStorageID, StorageScope.GLOBAL, '{}')); + const storedChoices: StoredChoice = JSON.parse(this.storageService.get(EditorResolverService.conflictingDefaultsStorageID, StorageScope.GLOBAL, '{}')); const globForResource = `*${extname(resource)}`; // Writes to the storage service that a choice has been made for the currently installed editors const writeCurrentEditorsToStorage = () => { storedChoices[globForResource] = []; editors.forEach(editor => storedChoices[globForResource].push(editor.editorInfo.id)); - this.storageService.store(EditorOverrideService.conflictingDefaultsStorageID, JSON.stringify(storedChoices), StorageScope.GLOBAL, StorageTarget.MACHINE); + this.storageService.store(EditorResolverService.conflictingDefaultsStorageID, JSON.stringify(storedChoices), StorageScope.GLOBAL, StorageTarget.MACHINE); }; // If the user has already made a choice for this editor we don't want to ask them again @@ -462,13 +462,13 @@ export class EditorOverrideService extends Disposable implements IEditorOverride label: localize('editorOverride.configureDefault', 'Configure Default'), run: async () => { // Show the picker and tell it to update the setting to whatever the user selected - const picked = await this.doPickEditorOverride(untypedInput, true); + const picked = await this.doPickEditor(untypedInput, true); if (!picked) { return; } untypedInput.options = picked; const replacementEditor = await this.resolveEditor(untypedInput, group); - if (replacementEditor === OverrideStatus.ABORT || replacementEditor === OverrideStatus.NONE) { + if (replacementEditor === ResolvedStatus.ABORT || replacementEditor === ResolvedStatus.NONE) { return; } // Replace the current editor with the picked one @@ -539,7 +539,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride const separator: IQuickPickSeparator = { type: 'separator' }; quickPickEntries.push(separator); const configureDefaultEntry = { - id: EditorOverrideService.configureDefaultID, + id: EditorResolverService.configureDefaultID, label: localize('promptOpenWith.configureDefault', "Configure default editor for '{0}'...", `*${extname(resource)}`), }; quickPickEntries.push(configureDefaultEntry); @@ -547,9 +547,9 @@ export class EditorOverrideService extends Disposable implements IEditorOverride return quickPickEntries; } - private async doPickEditorOverride(editor: IUntypedEditorInput, showDefaultPicker?: boolean): Promise { + private async doPickEditor(editor: IUntypedEditorInput, showDefaultPicker?: boolean): Promise { - type EditorOverridePick = { + type EditorPick = { readonly item: IQuickPickItem; readonly keyMods?: IKeyMods; readonly openInBackground: boolean; @@ -561,31 +561,31 @@ export class EditorOverrideService extends Disposable implements IEditorOverride resource = URI.from({ scheme: Schemas.untitled }); } - // Text editor has the lowest priority because we - const editorOverridePicks = this.mapEditorsToQuickPickEntry(resource, showDefaultPicker); + // Get all the editors for the resource as quickpick entries + const editorPicks = this.mapEditorsToQuickPickEntry(resource, showDefaultPicker); - // Create editor override picker - const editorOverridePicker = this.quickInputService.createQuickPick(); + // Create the editor picker + const editorPicker = this.quickInputService.createQuickPick(); const placeHolderMessage = showDefaultPicker ? localize('prompOpenWith.updateDefaultPlaceHolder', "Select new default editor for '{0}'", `*${extname(resource)}`) : localize('promptOpenWith.placeHolder', "Select editor for '{0}'", basename(resource)); - editorOverridePicker.placeholder = placeHolderMessage; - editorOverridePicker.canAcceptInBackground = true; - editorOverridePicker.items = editorOverridePicks; - const firstItem = editorOverridePicker.items.find(item => item.type === 'item') as IQuickPickItem | undefined; + editorPicker.placeholder = placeHolderMessage; + editorPicker.canAcceptInBackground = true; + editorPicker.items = editorPicks; + const firstItem = editorPicker.items.find(item => item.type === 'item') as IQuickPickItem | undefined; if (firstItem) { - editorOverridePicker.selectedItems = [firstItem]; + editorPicker.selectedItems = [firstItem]; } - // Prompt the user to select an override - const picked: EditorOverridePick | undefined = await new Promise(resolve => { - editorOverridePicker.onDidAccept(e => { - let result: EditorOverridePick | undefined = undefined; + // Prompt the user to select an editor + const picked: EditorPick | undefined = await new Promise(resolve => { + editorPicker.onDidAccept(e => { + let result: EditorPick | undefined = undefined; - if (editorOverridePicker.selectedItems.length === 1) { + if (editorPicker.selectedItems.length === 1) { result = { - item: editorOverridePicker.selectedItems[0], - keyMods: editorOverridePicker.keyMods, + item: editorPicker.selectedItems[0], + keyMods: editorPicker.keyMods, openInBackground: e.inBackground }; } @@ -598,7 +598,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride resolve(result); }); - editorOverridePicker.onDidTriggerItemButton(e => { + editorPicker.onDidTriggerItemButton(e => { // Trigger opening and close picker resolve({ item: e.item, openInBackground: false }); @@ -609,20 +609,20 @@ export class EditorOverrideService extends Disposable implements IEditorOverride } }); - editorOverridePicker.show(); + editorPicker.show(); }); // Close picker - editorOverridePicker.dispose(); + editorPicker.dispose(); - // If the user picked an override, look at how the picker was + // If the user picked an editor, look at how the picker was // used (e.g. modifier keys, open in background) and create the // options and group to use accordingly if (picked) { // If the user selected to configure default we trigger this picker again and tell it to show the default picker - if (picked.item.id === EditorOverrideService.configureDefaultID) { - return this.doPickEditorOverride(editor, true); + if (picked.item.id === EditorResolverService.configureDefaultID) { + return this.doPickEditor(editor, true); } // Figure out options @@ -638,15 +638,15 @@ export class EditorOverrideService extends Disposable implements IEditorOverride return undefined; } - private sendOverrideTelemetry(chosenInput: IEditorInput): void { - type editorOverrideClassification = { + private sendEditorResolutionTelemetry(chosenInput: IEditorInput): void { + type editorResolutionClassification = { viewType: { classification: 'PublicNonPersonalData', purpose: 'FeatureInsight' }; }; - type editorOverrideEvent = { + type editorResolutionEvent = { viewType: string }; if (chosenInput.editorId) { - this.telemetryService.publicLog2('override.viewType', { viewType: chosenInput.editorId }); + this.telemetryService.publicLog2('override.viewType', { viewType: chosenInput.editorId }); } } @@ -675,7 +675,7 @@ export class EditorOverrideService extends Disposable implements IEditorOverride cacheStorage.add(association.filenamePattern); } } - this.storageService.store(EditorOverrideService.overrideCacheStorageID, JSON.stringify(Array.from(cacheStorage)), StorageScope.GLOBAL, StorageTarget.MACHINE); + this.storageService.store(EditorResolverService.cacheStorageID, JSON.stringify(Array.from(cacheStorage)), StorageScope.GLOBAL, StorageTarget.MACHINE); } private resourceMatchesCache(resource: URI): boolean { @@ -692,4 +692,4 @@ export class EditorOverrideService extends Disposable implements IEditorOverride } } -registerSingleton(IEditorOverrideService, EditorOverrideService); +registerSingleton(IEditorResolverService, EditorResolverService); diff --git a/src/vs/workbench/services/editor/browser/editorService.ts b/src/vs/workbench/services/editor/browser/editorService.ts index d5c4ea925d6..0cab979b5eb 100644 --- a/src/vs/workbench/services/editor/browser/editorService.ts +++ b/src/vs/workbench/services/editor/browser/editorService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { IResourceEditorInput, IEditorOptions, EditorActivation, EditorOverride, IResourceEditorInputIdentifier, ITextEditorOptions, ITextResourceEditorInput } from 'vs/platform/editor/common/editor'; +import { IResourceEditorInput, IEditorOptions, EditorActivation, EditorResolution, IResourceEditorInputIdentifier, ITextEditorOptions, ITextResourceEditorInput } from 'vs/platform/editor/common/editor'; import { SideBySideEditor, IEditorInput, IEditorPane, GroupIdentifier, IFileEditorInput, IUntitledTextResourceEditorInput, IResourceDiffEditorInput, IEditorFactoryRegistry, EditorExtensions, IEditorInputWithOptions, isEditorInputWithOptions, IEditorIdentifier, IEditorCloseEvent, ITextEditorPane, ITextDiffEditorPane, IRevertOptions, SaveReason, EditorsOrder, isTextEditorPane, IWorkbenchEditorConfiguration, EditorResourceAccessor, IVisibleEditorPane, EditorInputCapabilities, isResourceDiffEditorInput, IUntypedEditorInput, DEFAULT_EDITOR_ASSOCIATION, isResourceEditorInput, isEditorInput, isEditorInputWithOptionsAndGroup } from 'vs/workbench/common/editor'; import { EditorInput } from 'vs/workbench/common/editor/editorInput'; import { SideBySideEditorInput } from 'vs/workbench/common/editor/sideBySideEditorInput'; @@ -34,7 +34,7 @@ import { Promises, timeout } from 'vs/base/common/async'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { indexOfPath } from 'vs/base/common/extpath'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; -import { RegisteredEditorPriority, IEditorOverrideService, OverrideStatus } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority, IEditorResolverService, ResolvedStatus } from 'vs/workbench/services/editor/common/editorResolverService'; import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; import { IWorkspaceTrustRequestService, WorkspaceTrustUriResponse } from 'vs/platform/workspace/common/workspaceTrust'; import { IHostService } from 'vs/workbench/services/host/browser/host'; @@ -75,7 +75,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { @IConfigurationService private readonly configurationService: IConfigurationService, @IWorkspaceContextService private readonly contextService: IWorkspaceContextService, @IUriIdentityService private readonly uriIdentityService: IUriIdentityService, - @IEditorOverrideService private readonly editorOverrideService: IEditorOverrideService, + @IEditorResolverService private readonly editorResolverService: IEditorResolverService, @IWorkingCopyService private readonly workingCopyService: IWorkingCopyService, @IWorkspaceTrustRequestService private readonly workspaceTrustRequestService: IWorkspaceTrustRequestService, @IHostService private readonly hostService: IHostService, @@ -115,7 +115,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { } private registerDefaultOverride(): void { - this._register(this.editorOverrideService.registerEditor( + this._register(this.editorResolverService.registerEditor( '*', { id: DEFAULT_EDITOR_ASSOCIATION.id, @@ -524,10 +524,10 @@ export class EditorService extends Disposable implements EditorServiceImpl { } // Resolve override unless disabled - if (options?.override !== EditorOverride.DISABLED) { - const resolvedEditor = await this.editorOverrideService.resolveEditor(isEditorInput(editor) ? { editor, options } : editor, preferredGroup); + if (options?.override !== EditorResolution.DISABLED) { + const resolvedEditor = await this.editorResolverService.resolveEditor(isEditorInput(editor) ? { editor, options } : editor, preferredGroup); - if (resolvedEditor === OverrideStatus.ABORT) { + if (resolvedEditor === ResolvedStatus.ABORT) { return; // skip editor if override is aborted } @@ -584,10 +584,10 @@ export class EditorService extends Disposable implements EditorServiceImpl { let group: IEditorGroup | undefined = undefined; // Resolve override unless disabled - if (editor.options?.override !== EditorOverride.DISABLED) { - const resolvedEditor = await this.editorOverrideService.resolveEditor(editor, preferredGroup); + if (editor.options?.override !== EditorResolution.DISABLED) { + const resolvedEditor = await this.editorResolverService.resolveEditor(editor, preferredGroup); - if (resolvedEditor === OverrideStatus.ABORT) { + if (resolvedEditor === ResolvedStatus.ABORT) { continue; // skip editor if override is aborted } @@ -814,7 +814,7 @@ export class EditorService extends Disposable implements EditorServiceImpl { let typedReplacement: IEditorReplacement | undefined = undefined; // Figure out the override rule based on options - let override: string | EditorOverride | undefined; + let override: string | EditorResolution | undefined; if (isEditorReplacement(replacement)) { override = replacement.options?.override; } else { @@ -822,13 +822,13 @@ export class EditorService extends Disposable implements EditorServiceImpl { } // Resolve override unless disabled - if (override !== EditorOverride.DISABLED) { - const resolvedEditor = await this.editorOverrideService.resolveEditor( + if (override !== EditorResolution.DISABLED) { + const resolvedEditor = await this.editorResolverService.resolveEditor( isEditorReplacement(replacement) ? { editor: replacement.replacement, options: replacement.options } : replacement.replacement, targetGroup ); - if (resolvedEditor === OverrideStatus.ABORT) { + if (resolvedEditor === ResolvedStatus.ABORT) { continue; // skip editor if override is aborted } diff --git a/src/vs/workbench/services/editor/common/editorOverrideService.ts b/src/vs/workbench/services/editor/common/editorResolverService.ts similarity index 91% rename from src/vs/workbench/services/editor/common/editorOverrideService.ts rename to src/vs/workbench/services/editor/common/editorResolverService.ts index 0c5b4cd675d..80e9a0a1413 100644 --- a/src/vs/workbench/services/editor/common/editorOverrideService.ts +++ b/src/vs/workbench/services/editor/common/editorResolverService.ts @@ -19,7 +19,7 @@ import { IEditorInputWithOptions, IEditorInputWithOptionsAndGroup, IResourceDiff import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService'; import { PreferredGroup } from 'vs/workbench/services/editor/common/editorService'; -export const IEditorOverrideService = createDecorator('editorOverrideService'); +export const IEditorResolverService = createDecorator('editorResolverService'); //#region Editor Associations @@ -67,16 +67,16 @@ export enum RegisteredEditorPriority { } /** - * If we didn't resolve an override dictates what to do with the opening state + * If we didn't resolve an editor dictates what to do with the opening state * ABORT = Do not continue with opening the editor * NONE = Continue as if the override has been disabled as the service could not resolve one */ -export const enum OverrideStatus { +export const enum ResolvedStatus { ABORT = 1, NONE = 2, } -export type ReturnedOverride = IEditorInputWithOptionsAndGroup | OverrideStatus; +export type ResolvedEditor = IEditorInputWithOptionsAndGroup | ResolvedStatus; export type RegisteredEditorOptions = { /** @@ -108,7 +108,7 @@ export type UntitledEditorInputFactoryFunction = (untitledEditorInput: IUntitled export type DiffEditorInputFactoryFunction = (diffEditorInput: IResourceDiffEditorInput, group: IEditorGroup) => IEditorInputWithOptions; -export interface IEditorOverrideService { +export interface IEditorResolverService { readonly _serviceBrand: undefined; /** * Given a resource finds the editor associations that match it from the user's settings @@ -141,12 +141,12 @@ export interface IEditorOverrideService { ): IDisposable; /** - * Given an editor determines if there's a suitable override for it, if so returns an IEditorInputWithOptions for opening - * @param editor The editor to override + * Given an editor resolves it to the suitable IEditorInputWithOptionsAndGroup based on user extensions, settings, and built-in editors + * @param editor The editor to resolve * @param preferredGroup The group you want to open the editor in - * @returns An IEditorInputWithOptionsAndGroup if there is an available override or a status of how to proceed + * @returns An IEditorInputWithOptionsAndGroup if there is an available editor or a status of how to proceed */ - resolveEditor(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise; + resolveEditor(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise; /** * Given a resource returns all the editor ids that match that resource diff --git a/src/vs/workbench/services/editor/test/browser/editorOverrideService.test.ts b/src/vs/workbench/services/editor/test/browser/editorOverrideService.test.ts index 6b6d1751f4d..b5fb164e4c2 100644 --- a/src/vs/workbench/services/editor/test/browser/editorOverrideService.test.ts +++ b/src/vs/workbench/services/editor/test/browser/editorOverrideService.test.ts @@ -8,9 +8,9 @@ import { DisposableStore } from 'vs/base/common/lifecycle'; import { Schemas } from 'vs/base/common/network'; import { URI } from 'vs/base/common/uri'; import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart'; -import { EditorOverrideService } from 'vs/workbench/services/editor/browser/editorOverrideService'; +import { EditorResolverService } from 'vs/workbench/services/editor/browser/editorResolverService'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; -import { IEditorOverrideService, OverrideStatus, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService, ResolvedStatus, RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { createEditorPart, ITestInstantiationService, TestFileEditorInput, TestServiceAccessor, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices'; suite('EditorOverrideService', () => { @@ -20,14 +20,14 @@ suite('EditorOverrideService', () => { teardown(() => disposables.clear()); - async function createEditorOverrideService(instantiationService: ITestInstantiationService = workbenchInstantiationService()): Promise<[EditorPart, EditorOverrideService, TestServiceAccessor]> { + async function createEditorOverrideService(instantiationService: ITestInstantiationService = workbenchInstantiationService()): Promise<[EditorPart, EditorResolverService, TestServiceAccessor]> { const part = await createEditorPart(instantiationService, disposables); instantiationService.stub(IEditorGroupsService, part); - const editorOverrideService = instantiationService.createInstance(EditorOverrideService); - instantiationService.stub(IEditorOverrideService, editorOverrideService); + const editorResolverService = instantiationService.createInstance(EditorResolverService); + instantiationService.stub(IEditorResolverService, editorResolverService); - return [part, editorOverrideService, instantiationService.createInstance(TestServiceAccessor)]; + return [part, editorResolverService, instantiationService.createInstance(TestServiceAccessor)]; } test('Simple Override', async () => { @@ -46,7 +46,7 @@ suite('EditorOverrideService', () => { const resultingOverride = await service.resolveEditor({ resource: URI.file('my://resource-basics.test') }, part.activeGroup); assert.ok(resultingOverride); assert.notStrictEqual(typeof resultingOverride, 'number'); - if (resultingOverride !== OverrideStatus.ABORT && resultingOverride !== OverrideStatus.NONE) { + if (resultingOverride !== ResolvedStatus.ABORT && resultingOverride !== ResolvedStatus.NONE) { assert.strictEqual(resultingOverride.editor.typeId, TEST_EDITOR_INPUT_ID); resultingOverride.editor.dispose(); } @@ -78,7 +78,7 @@ suite('EditorOverrideService', () => { resultingOverride = await service.resolveEditor({ resource: URI.from({ scheme: Schemas.untitled, path: 'foo.test' }) }, part.activeGroup); assert.ok(resultingOverride); assert.notStrictEqual(typeof resultingOverride, 'number'); - if (resultingOverride !== OverrideStatus.ABORT && resultingOverride !== OverrideStatus.NONE) { + if (resultingOverride !== ResolvedStatus.ABORT && resultingOverride !== ResolvedStatus.NONE) { assert.strictEqual(resultingOverride.editor.typeId, UNTITLED_TEST_EDITOR_INPUT_ID); resultingOverride.editor.dispose(); } @@ -87,7 +87,7 @@ suite('EditorOverrideService', () => { resultingOverride = await service.resolveEditor({ resource: URI.file('/fake.test'), forceUntitled: true }, part.activeGroup); assert.ok(resultingOverride); assert.notStrictEqual(typeof resultingOverride, 'number'); - if (resultingOverride !== OverrideStatus.ABORT && resultingOverride !== OverrideStatus.NONE) { + if (resultingOverride !== ResolvedStatus.ABORT && resultingOverride !== ResolvedStatus.NONE) { assert.strictEqual(resultingOverride.editor.typeId, UNTITLED_TEST_EDITOR_INPUT_ID); resultingOverride.editor.dispose(); } diff --git a/src/vs/workbench/services/editor/test/browser/editorService.test.ts b/src/vs/workbench/services/editor/test/browser/editorService.test.ts index 5c72f887bec..574cec61066 100644 --- a/src/vs/workbench/services/editor/test/browser/editorService.test.ts +++ b/src/vs/workbench/services/editor/test/browser/editorService.test.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import { EditorActivation, EditorOverride, IResourceEditorInput } from 'vs/platform/editor/common/editor'; +import { EditorActivation, EditorResolution, IResourceEditorInput } from 'vs/platform/editor/common/editor'; import { URI } from 'vs/base/common/uri'; import { Event } from 'vs/base/common/event'; import { DEFAULT_EDITOR_ASSOCIATION, EditorsOrder, IEditorInputWithOptions, IEditorPane, IResourceDiffEditorInput, isEditorInputWithOptions, isResourceDiffEditorInput, isUntitledResourceEditorInput, IUntitledTextResourceEditorInput, IUntypedEditorInput, UntypedEditorContext } from 'vs/workbench/common/editor'; @@ -27,7 +27,7 @@ import { NullFileSystemProvider } from 'vs/platform/files/test/common/nullFileSy import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput'; import { isLinux } from 'vs/base/common/platform'; import { MockScopableContextKeyService } from 'vs/platform/keybinding/test/common/mockKeybindingService'; -import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { RegisteredEditorPriority } from 'vs/workbench/services/editor/common/editorResolverService'; import { IWorkspaceTrustRequestService, WorkspaceTrustUriResponse } from 'vs/platform/workspace/common/workspaceTrust'; import { TestWorkspaceTrustRequestService } from 'vs/workbench/services/workspaces/test/common/testWorkspaceTrustService'; import { SideBySideEditorInput } from 'vs/workbench/common/editor/sideBySideEditorInput'; @@ -201,7 +201,7 @@ suite('EditorService', () => { let lastUntitledEditorFactoryEditor: IUntitledTextResourceEditorInput | undefined = undefined; let lastDiffEditorFactoryEditor: IResourceDiffEditorInput | undefined = undefined; - disposables.add(accessor.editorOverrideService.registerEditor( + disposables.add(accessor.editorResolverService.registerEditor( '*.editor-service-override-tests', { id: TEST_EDITOR_INPUT_ID, label: 'Label', priority: RegisteredEditorPriority.exclusive }, { canHandleDiff: true }, @@ -309,7 +309,7 @@ suite('EditorService', () => { // untyped resource editor, options (override disabled), no group { - let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { override: EditorOverride.DISABLED } }; + let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { override: EditorResolution.DISABLED } }; let pane = await openEditor(untypedEditor); let typedEditor = pane?.input; @@ -335,7 +335,7 @@ suite('EditorService', () => { // untyped resource editor, options (override disabled, sticky: true, preserveFocus: true), no group { - let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { sticky: true, preserveFocus: true, override: EditorOverride.DISABLED } }; + let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { sticky: true, preserveFocus: true, override: EditorResolution.DISABLED } }; let pane = await openEditor(untypedEditor); assert.strictEqual(pane?.group, rootGroup); @@ -464,7 +464,7 @@ suite('EditorService', () => { // untyped resource editor, options (override disabled), SIDE_GROUP { - let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { override: EditorOverride.DISABLED } }; + let untypedEditor: IResourceEditorInput = { resource: URI.file('file.editor-service-override-tests'), options: { override: EditorResolution.DISABLED } }; let pane = await openEditor(untypedEditor, SIDE_GROUP); assert.strictEqual(accessor.editorGroupService.groups.length, 2); @@ -535,7 +535,7 @@ suite('EditorService', () => { // typed editor, options (override disabled), no group { let typedEditor = new TestFileEditorInput(URI.file('file.editor-service-override-tests'), TEST_EDITOR_INPUT_ID); - let pane = await openEditor({ editor: typedEditor, options: { override: EditorOverride.DISABLED } }); + let pane = await openEditor({ editor: typedEditor, options: { override: EditorResolution.DISABLED } }); let typedInput = pane?.input; assert.strictEqual(pane?.group, rootGroup); @@ -561,7 +561,7 @@ suite('EditorService', () => { // typed editor, options (override disabled, sticky: true, preserveFocus: true), no group { let typedEditor = new TestFileEditorInput(URI.file('file.editor-service-override-tests'), TEST_EDITOR_INPUT_ID); - let pane = await openEditor({ editor: typedEditor, options: { sticky: true, preserveFocus: true, override: EditorOverride.DISABLED } }); + let pane = await openEditor({ editor: typedEditor, options: { sticky: true, preserveFocus: true, override: EditorResolution.DISABLED } }); assert.strictEqual(pane?.group, rootGroup); assert.ok(pane.input instanceof TestFileEditorInput); @@ -690,7 +690,7 @@ suite('EditorService', () => { // typed editor, options (override disabled), SIDE_GROUP { let typedEditor = new TestFileEditorInput(URI.file('file.editor-service-override-tests'), TEST_EDITOR_INPUT_ID); - let pane = await openEditor({ editor: typedEditor, options: { override: EditorOverride.DISABLED } }, SIDE_GROUP); + let pane = await openEditor({ editor: typedEditor, options: { override: EditorResolution.DISABLED } }, SIDE_GROUP); assert.strictEqual(accessor.editorGroupService.groups.length, 2); assert.notStrictEqual(pane?.group, rootGroup); @@ -978,9 +978,9 @@ suite('EditorService', () => { // mix of untyped and typed editors { let untypedEditor1: IResourceEditorInput = { resource: URI.file('file1.editor-service-override-tests') }; - let untypedEditor2: IResourceEditorInput = { resource: URI.file('file2.editor-service-override-tests'), options: { override: EditorOverride.DISABLED } }; + let untypedEditor2: IResourceEditorInput = { resource: URI.file('file2.editor-service-override-tests'), options: { override: EditorResolution.DISABLED } }; let untypedEditor3: IEditorInputWithOptions = { editor: new TestFileEditorInput(URI.file('file3.editor-service-override-tests'), TEST_EDITOR_INPUT_ID) }; - let untypedEditor4: IEditorInputWithOptions = { editor: new TestFileEditorInput(URI.file('file4.editor-service-override-tests'), TEST_EDITOR_INPUT_ID), options: { override: EditorOverride.DISABLED } }; + let untypedEditor4: IEditorInputWithOptions = { editor: new TestFileEditorInput(URI.file('file4.editor-service-override-tests'), TEST_EDITOR_INPUT_ID), options: { override: EditorResolution.DISABLED } }; let untypedEditor5: IResourceEditorInput = { resource: URI.file('file5.editor-service-override-tests') }; let pane = (await service.openEditors([untypedEditor1, untypedEditor2, untypedEditor3, untypedEditor4, untypedEditor5]))[0]; @@ -1005,7 +1005,7 @@ suite('EditorService', () => { const [, service, accessor] = await createEditorService(); - disposables.add(accessor.editorOverrideService.registerEditor( + disposables.add(accessor.editorResolverService.registerEditor( '*.editor-service-override-tests', { id: TEST_EDITOR_INPUT_ID, label: 'Label', priority: RegisteredEditorPriority.exclusive }, {}, @@ -1086,7 +1086,7 @@ suite('EditorService', () => { const replaceInput = new TestFileEditorInput(URI.parse('my://resource3-openEditors'), TEST_EDITOR_INPUT_ID); // Open editors - await service.openEditors([{ editor: input, options: { override: EditorOverride.DISABLED } }, { editor: otherInput, options: { override: EditorOverride.DISABLED } }]); + await service.openEditors([{ editor: input, options: { override: EditorResolution.DISABLED } }, { editor: otherInput, options: { override: EditorResolution.DISABLED } }]); assert.strictEqual(part.activeGroup.count, 2); // Replace editors @@ -1116,7 +1116,7 @@ suite('EditorService', () => { return WorkspaceTrustUriResponse.Cancel; }; - await service.openEditors([{ editor: input1, options: { override: EditorOverride.DISABLED } }, { editor: input2, options: { override: EditorOverride.DISABLED } }, { editor: sideBySideInput }], undefined, { validateTrust: true }); + await service.openEditors([{ editor: input1, options: { override: EditorResolution.DISABLED } }, { editor: input2, options: { override: EditorResolution.DISABLED } }, { editor: sideBySideInput }], undefined, { validateTrust: true }); assert.strictEqual(part.activeGroup.count, 0); assert.strictEqual(trustEditorUris.length, 4); assert.strictEqual(trustEditorUris.some(uri => uri.toString() === input1.resource.toString()), true); @@ -1127,13 +1127,13 @@ suite('EditorService', () => { // Trust: open in new window accessor.workspaceTrustRequestService.requestOpenUrisHandler = async uris => WorkspaceTrustUriResponse.OpenInNewWindow; - await service.openEditors([{ editor: input1, options: { override: EditorOverride.DISABLED } }, { editor: input2, options: { override: EditorOverride.DISABLED } }, { editor: sideBySideInput, options: { override: EditorOverride.DISABLED } }], undefined, { validateTrust: true }); + await service.openEditors([{ editor: input1, options: { override: EditorResolution.DISABLED } }, { editor: input2, options: { override: EditorResolution.DISABLED } }, { editor: sideBySideInput, options: { override: EditorResolution.DISABLED } }], undefined, { validateTrust: true }); assert.strictEqual(part.activeGroup.count, 0); // Trust: allow accessor.workspaceTrustRequestService.requestOpenUrisHandler = async uris => WorkspaceTrustUriResponse.Open; - await service.openEditors([{ editor: input1, options: { override: EditorOverride.DISABLED } }, { editor: input2, options: { override: EditorOverride.DISABLED } }, { editor: sideBySideInput, options: { override: EditorOverride.DISABLED } }], undefined, { validateTrust: true }); + await service.openEditors([{ editor: input1, options: { override: EditorResolution.DISABLED } }, { editor: input2, options: { override: EditorResolution.DISABLED } }, { editor: sideBySideInput, options: { override: EditorResolution.DISABLED } }], undefined, { validateTrust: true }); assert.strictEqual(part.activeGroup.count, 3); } finally { accessor.workspaceTrustRequestService.requestOpenUrisHandler = oldHandler; @@ -1157,7 +1157,7 @@ suite('EditorService', () => { // Trust: cancel accessor.workspaceTrustRequestService.requestOpenUrisHandler = async uris => WorkspaceTrustUriResponse.Cancel; - await service.openEditors([{ editor: input1, options: { override: EditorOverride.DISABLED } }, { editor: input2, options: { override: EditorOverride.DISABLED } }, { editor: sideBySideInput, options: { override: EditorOverride.DISABLED } }]); + await service.openEditors([{ editor: input1, options: { override: EditorResolution.DISABLED } }, { editor: input2, options: { override: EditorResolution.DISABLED } }, { editor: sideBySideInput, options: { override: EditorResolution.DISABLED } }]); assert.strictEqual(part.activeGroup.count, 3); } finally { accessor.workspaceTrustRequestService.requestOpenUrisHandler = oldHandler; @@ -1968,7 +1968,7 @@ suite('EditorService', () => { test('editorOverrideService - openEditor', async function () { const [, service, accessor] = await createEditorService(); - const editorOverrideService = accessor.editorOverrideService; + const editorOverrideService = accessor.editorResolverService; let overrideCount = 0; const registrationDisposable = editorOverrideService.registerEditor( '*.md', @@ -2004,7 +2004,7 @@ suite('EditorService', () => { test('editorOverrideService - openEditors', async function () { const [, service, accessor] = await createEditorService(); - const editorOverrideService = accessor.editorOverrideService; + const editorOverrideService = accessor.editorResolverService; let overrideCount = 0; const registrationDisposable = editorOverrideService.registerEditor( '*.md', @@ -2036,7 +2036,7 @@ suite('EditorService', () => { test('editorOverrideService - replaceEditors', async function () { const [part, service, accessor] = await createEditorService(); - const editorOverrideService = accessor.editorOverrideService; + const editorOverrideService = accessor.editorResolverService; let overrideCount = 0; const registrationDisposable = editorOverrideService.registerEditor( '*.md', @@ -2057,7 +2057,7 @@ suite('EditorService', () => { assert.strictEqual(overrideCount, 0); const input1 = new TestFileEditorInput(URI.parse('file://test/path/resource2.md'), TEST_EDITOR_INPUT_ID); // Open editor input 1 and it shouldn't trigger because I've disabled the override logic - await service.openEditor(input1, { override: EditorOverride.DISABLED }); + await service.openEditor(input1, { override: EditorResolution.DISABLED }); assert.strictEqual(overrideCount, 0); await service.replaceEditors([{ editor: input1, @@ -2074,7 +2074,7 @@ suite('EditorService', () => { const otherInput = new TestFileEditorInput(URI.parse('my://resource2-openEditors'), TEST_EDITOR_INPUT_ID); // Open editors - await service.openEditors([{ editor: input, options: { override: EditorOverride.DISABLED } }, { editor: otherInput, options: { override: EditorOverride.DISABLED } }]); + await service.openEditors([{ editor: input, options: { override: EditorResolution.DISABLED } }, { editor: otherInput, options: { override: EditorResolution.DISABLED } }]); assert.strictEqual(part.activeGroup.count, 2); // Try using find editors for opened editors @@ -2135,7 +2135,7 @@ suite('EditorService', () => { const otherInput = new TestFileEditorInput(URI.parse('my://resource2-openEditors'), TEST_EDITOR_INPUT_ID); // Open editors - await service.openEditors([{ editor: input, options: { override: EditorOverride.DISABLED } }, { editor: otherInput, options: { override: EditorOverride.DISABLED } }]); + await service.openEditors([{ editor: input, options: { override: EditorResolution.DISABLED } }, { editor: otherInput, options: { override: EditorResolution.DISABLED } }]); const sideEditor = await service.openEditor(input, { pinned: true }, SIDE_GROUP); // Try using find editors for opened editors diff --git a/src/vs/workbench/services/preferences/browser/preferencesService.ts b/src/vs/workbench/services/preferences/browser/preferencesService.ts index 23b4928b03c..93bf5070dcd 100644 --- a/src/vs/workbench/services/preferences/browser/preferencesService.ts +++ b/src/vs/workbench/services/preferences/browser/preferencesService.ts @@ -40,7 +40,7 @@ import { Registry } from 'vs/platform/registry/common/platform'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { CoreEditingCommands } from 'vs/editor/browser/controller/coreCommands'; import { getErrorMessage } from 'vs/base/common/errors'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { KeybindingsEditorInput } from 'vs/workbench/services/preferences/browser/keybindingsEditorInput'; import { EditorInput } from 'vs/workbench/common/editor/editorInput'; @@ -241,7 +241,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic const environment = await this.remoteAgentService.getEnvironment(); if (environment) { await this.createIfNotExists(environment.settingsPath, emptyEditableSettingsContent); - return this.editorService.openEditor({ resource: environment.settingsPath, options: { pinned: true, revealIfOpened: true, override: EditorOverride.DISABLED } }); + return this.editorService.openEditor({ resource: environment.settingsPath, options: { pinned: true, revealIfOpened: true, override: EditorResolution.DISABLED } }); } return undefined; } @@ -302,7 +302,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic const activeEditorGroup = this.editorGroupService.activeGroup; const sideEditorGroup = this.editorGroupService.addGroup(activeEditorGroup.id, GroupDirection.RIGHT); await Promise.all([ - this.editorService.openEditor({ resource: this.defaultKeybindingsResource, options: { pinned: true, preserveFocus: true, revealIfOpened: true, override: EditorOverride.DISABLED }, label: nls.localize('defaultKeybindings', "Default Keybindings"), description: '' }), + this.editorService.openEditor({ resource: this.defaultKeybindingsResource, options: { pinned: true, preserveFocus: true, revealIfOpened: true, override: EditorResolution.DISABLED }, label: nls.localize('defaultKeybindings', "Default Keybindings"), description: '' }), this.editorService.openEditor({ resource: editableKeybindings, options }, sideEditorGroup.id) ]); } else { @@ -310,7 +310,7 @@ export class PreferencesService extends Disposable implements IPreferencesServic } } else { - const editor = (await this.editorService.openEditor(this.instantiationService.createInstance(KeybindingsEditorInput), { ...options, override: EditorOverride.DISABLED })) as IKeybindingsEditorPane; + const editor = (await this.editorService.openEditor(this.instantiationService.createInstance(KeybindingsEditorInput), { ...options, override: EditorResolution.DISABLED })) as IKeybindingsEditorPane; if (options.query) { editor.search(options.query); } @@ -375,8 +375,8 @@ export class PreferencesService extends Disposable implements IPreferencesServic const activeEditorGroup = this.editorGroupService.activeGroup; const sideEditorGroup = this.editorGroupService.addGroup(activeEditorGroup.id, GroupDirection.RIGHT); return Promise.all([ - this.editorService.openEditor({ resource: this.defaultSettingsRawResource, options: { pinned: true, preserveFocus: true, revealIfOpened: true, override: EditorOverride.DISABLED }, label: nls.localize('defaultSettings', "Default Settings"), description: '' }), - this.editorService.openEditor(editableSettingsEditorInput, { pinned: true, revealIfOpened: true, override: EditorOverride.DISABLED }, sideEditorGroup.id) + this.editorService.openEditor({ resource: this.defaultSettingsRawResource, options: { pinned: true, preserveFocus: true, revealIfOpened: true, override: EditorResolution.DISABLED }, label: nls.localize('defaultSettings', "Default Settings"), description: '' }), + this.editorService.openEditor(editableSettingsEditorInput, { pinned: true, revealIfOpened: true, override: EditorResolution.DISABLED }, sideEditorGroup.id) ]).then(([defaultEditor, editor]) => withNullAsUndefined(editor)); } else { return this.editorService.openEditor(editableSettingsEditorInput, validateSettingsEditorOptions(options), group); diff --git a/src/vs/workbench/services/preferences/common/preferences.ts b/src/vs/workbench/services/preferences/common/preferences.ts index b59a96b1874..03ac1de1d47 100644 --- a/src/vs/workbench/services/preferences/common/preferences.ts +++ b/src/vs/workbench/services/preferences/common/preferences.ts @@ -12,7 +12,7 @@ import { ITextModel } from 'vs/editor/common/model'; import { localize } from 'vs/nls'; import { ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; import { ConfigurationScope, IConfigurationExtensionInfo } from 'vs/platform/configuration/common/configurationRegistry'; -import { EditorOverride, IEditorOptions } from 'vs/platform/editor/common/editor'; +import { EditorResolution, IEditorOptions } from 'vs/platform/editor/common/editor'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IEditorInput, IEditorPane } from 'vs/workbench/common/editor'; @@ -182,7 +182,7 @@ export function validateSettingsEditorOptions(options: ISettingsEditorOptions): ...options, // Enforce some options for settings specifically - override: EditorOverride.DISABLED, + override: EditorResolution.DISABLED, pinned: true }; } diff --git a/src/vs/workbench/services/preferences/test/browser/preferencesService.test.ts b/src/vs/workbench/services/preferences/test/browser/preferencesService.test.ts index 705b06ccfbe..a0dff3d6b41 100644 --- a/src/vs/workbench/services/preferences/test/browser/preferencesService.test.ts +++ b/src/vs/workbench/services/preferences/test/browser/preferencesService.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import { TestCommandService } from 'vs/editor/test/browser/editorTestServices'; import { ICommandService } from 'vs/platform/commands/common/commands'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { IJSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditing'; @@ -44,7 +44,7 @@ suite('PreferencesService', () => { testObject.openSettings(false, 'test query'); const options = editorService.lastOpenEditorOptions as ISettingsEditorOptions; assert.strictEqual(options.focusSearch, true); - assert.strictEqual(options.override, EditorOverride.DISABLED); + assert.strictEqual(options.override, EditorResolution.DISABLED); assert.strictEqual(options.query, 'test query'); }); }); diff --git a/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.ts b/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.ts index 96e37da5665..f16300978a9 100644 --- a/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.ts +++ b/src/vs/workbench/services/workingCopy/common/workingCopyBackupTracker.ts @@ -15,7 +15,7 @@ import { IWorkingCopyEditorHandler, IWorkingCopyEditorService } from 'vs/workben import { Promises } from 'vs/base/common/async'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { EditorsOrder, IEditorInput } from 'vs/workbench/common/editor'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; /** * The working copy backup tracker deals with: @@ -275,7 +275,7 @@ export abstract class WorkingCopyBackupTracker extends Disposable { pinned: true, preserveFocus: true, inactive: true, - override: EditorOverride.DISABLED // very important to disable overrides because the editor input we got is proper + override: EditorResolution.DISABLED // very important to disable overrides because the editor input we got is proper } }))); diff --git a/src/vs/workbench/services/workingCopy/test/browser/workingCopyBackupTracker.test.ts b/src/vs/workbench/services/workingCopy/test/browser/workingCopyBackupTracker.test.ts index 8296d7031d4..684821e77e1 100644 --- a/src/vs/workbench/services/workingCopy/test/browser/workingCopyBackupTracker.test.ts +++ b/src/vs/workbench/services/workingCopy/test/browser/workingCopyBackupTracker.test.ts @@ -32,7 +32,7 @@ import { isWindows } from 'vs/base/common/platform'; import { Schemas } from 'vs/base/common/network'; import { IWorkspaceTrustRequestService } from 'vs/platform/workspace/common/workspaceTrust'; import { TestWorkspaceTrustRequestService } from 'vs/workbench/services/workspaces/test/common/testWorkspaceTrustService'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; suite('WorkingCopyBackupTracker (browser)', function () { let accessor: TestServiceAccessor; @@ -356,7 +356,7 @@ suite('WorkingCopyBackupTracker (browser)', function () { const editor1 = accessor.instantiationService.createInstance(TestUntitledTextEditorInput, accessor.untitledTextEditorService.create({ initialValue: 'foo' })); const editor2 = accessor.instantiationService.createInstance(TestUntitledTextEditorInput, accessor.untitledTextEditorService.create({ initialValue: 'foo' })); - await accessor.editorService.openEditors([{ editor: editor1, options: { override: EditorOverride.DISABLED } }, { editor: editor2, options: { override: EditorOverride.DISABLED } }]); + await accessor.editorService.openEditors([{ editor: editor1, options: { override: EditorResolution.DISABLED } }, { editor: editor2, options: { override: EditorResolution.DISABLED } }]); editor1.resolved = false; editor2.resolved = false; diff --git a/src/vs/workbench/services/workingCopy/test/browser/workingCopyEditorService.test.ts b/src/vs/workbench/services/workingCopy/test/browser/workingCopyEditorService.test.ts index 193bd68146b..50883a222b4 100644 --- a/src/vs/workbench/services/workingCopy/test/browser/workingCopyEditorService.test.ts +++ b/src/vs/workbench/services/workingCopy/test/browser/workingCopyEditorService.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; -import { EditorOverride } from 'vs/platform/editor/common/editor'; +import { EditorResolution } from 'vs/platform/editor/common/editor'; import { IWorkspaceTrustRequestService } from 'vs/platform/workspace/common/workspaceTrust'; import { EditorService } from 'vs/workbench/services/editor/browser/editorService'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; @@ -77,7 +77,7 @@ suite('WorkingCopyEditorService', () => { const editor1 = instantiationService.createInstance(UntitledTextEditorInput, accessor.untitledTextEditorService.create({ initialValue: 'foo' })); const editor2 = instantiationService.createInstance(UntitledTextEditorInput, accessor.untitledTextEditorService.create({ initialValue: 'foo' })); - await editorService.openEditors([{ editor: editor1, options: { override: EditorOverride.DISABLED } }, { editor: editor2, options: { override: EditorOverride.DISABLED } }]); + await editorService.openEditors([{ editor: editor1, options: { override: EditorResolution.DISABLED } }, { editor: editor2, options: { override: EditorResolution.DISABLED } }]); assert.ok(service.findEditor(testWorkingCopy)); diff --git a/src/vs/workbench/test/browser/parts/editor/editor.test.ts b/src/vs/workbench/test/browser/parts/editor/editor.test.ts index d05634712f1..2c73d684e81 100644 --- a/src/vs/workbench/test/browser/parts/editor/editor.test.ts +++ b/src/vs/workbench/test/browser/parts/editor/editor.test.ts @@ -19,7 +19,7 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor import { EditorService } from 'vs/workbench/services/editor/browser/editorService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { SideBySideEditorInput } from 'vs/workbench/common/editor/sideBySideEditorInput'; -import { EditorOverride, IResourceEditorInput } from 'vs/platform/editor/common/editor'; +import { EditorResolution, IResourceEditorInput } from 'vs/platform/editor/common/editor'; suite('Workbench editor utils', () => { @@ -337,13 +337,13 @@ suite('Workbench editor utils', () => { assert.strictEqual(isEditorInputWithOptions(editorInput), false); assert.strictEqual(isEditorInputWithOptionsAndGroup(editorInput), false); - const editorInputWithOptions: IEditorInputWithOptions = { editor: editorInput, options: { override: EditorOverride.PICK } }; + const editorInputWithOptions: IEditorInputWithOptions = { editor: editorInput, options: { override: EditorResolution.PICK } }; assert.strictEqual(isEditorInput(editorInputWithOptions), false); assert.strictEqual(isEditorInputWithOptions(editorInputWithOptions), true); assert.strictEqual(isEditorInputWithOptionsAndGroup(editorInputWithOptions), false); const service = accessor.editorGroupService; - const editorInputWithOptionsAndGroup: IEditorInputWithOptionsAndGroup = { editor: editorInput, options: { override: EditorOverride.PICK }, group: service.activeGroup }; + const editorInputWithOptionsAndGroup: IEditorInputWithOptionsAndGroup = { editor: editorInput, options: { override: EditorResolution.PICK }, group: service.activeGroup }; assert.strictEqual(isEditorInput(editorInputWithOptionsAndGroup), false); assert.strictEqual(isEditorInputWithOptions(editorInputWithOptionsAndGroup), true); assert.strictEqual(isEditorInputWithOptionsAndGroup(editorInputWithOptionsAndGroup), true); @@ -378,9 +378,9 @@ suite('Workbench editor utils', () => { for (const resource of resources) { if (custom) { - await accessor.editorService.openEditor(new TestFileEditorInput(resource, 'testTypeId'), { pinned: true, override: EditorOverride.DISABLED }); + await accessor.editorService.openEditor(new TestFileEditorInput(resource, 'testTypeId'), { pinned: true, override: EditorResolution.DISABLED }); } else if (sideBySide) { - await accessor.editorService.openEditor(new SideBySideEditorInput('testSideBySideEditor', undefined, new TestFileEditorInput(resource, 'testTypeId'), new TestFileEditorInput(resource, 'testTypeId')), { pinned: true, override: EditorOverride.DISABLED }); + await accessor.editorService.openEditor(new SideBySideEditorInput('testSideBySideEditor', undefined, new TestFileEditorInput(resource, 'testTypeId'), new TestFileEditorInput(resource, 'testTypeId')), { pinned: true, override: EditorResolution.DISABLED }); } else { await accessor.editorService.openEditor({ resource, options: { pinned: true } }); } diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index dedc4f5eac5..a05c1ed82ad 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -131,9 +131,9 @@ import { IProcessDetails, ISetTerminalLayoutInfoArgs } from 'vs/platform/termina import { ITerminalInstance, ITerminalInstanceService } from 'vs/workbench/contrib/terminal/browser/terminal'; import { isArray } from 'vs/base/common/types'; import { IShellLaunchConfigResolveOptions, ITerminalProfileResolverService } from 'vs/workbench/contrib/terminal/common/terminal'; -import { EditorOverrideService } from 'vs/workbench/services/editor/browser/editorOverrideService'; +import { EditorResolverService } from 'vs/workbench/services/editor/browser/editorResolverService'; import { FILE_EDITOR_INPUT_ID } from 'vs/workbench/contrib/files/common/files'; -import { IEditorOverrideService } from 'vs/workbench/services/editor/common/editorOverrideService'; +import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; import { IWorkingCopyEditorService, WorkingCopyEditorService } from 'vs/workbench/services/workingCopy/common/workingCopyEditorService'; import { IElevatedFileService } from 'vs/workbench/services/files/common/elevatedFileService'; import { BrowserElevatedFileService } from 'vs/workbench/services/files/browser/elevatedFileService'; @@ -248,7 +248,7 @@ export function workbenchInstantiationService( const editorService = overrides?.editorService ? overrides.editorService(instantiationService) : new TestEditorService(editorGroupService); instantiationService.stub(IEditorService, editorService); instantiationService.stub(IWorkingCopyEditorService, disposables.add(instantiationService.createInstance(WorkingCopyEditorService))); - instantiationService.stub(IEditorOverrideService, disposables.add(instantiationService.createInstance(EditorOverrideService))); + instantiationService.stub(IEditorResolverService, disposables.add(instantiationService.createInstance(EditorResolverService))); instantiationService.stub(ICodeEditorService, disposables.add(new CodeEditorService(editorService, themeService, configService))); instantiationService.stub(IViewletService, new TestViewletService()); instantiationService.stub(IListService, new TestListService()); @@ -278,7 +278,7 @@ export class TestServiceAccessor { @IWorkbenchEnvironmentService public environmentService: IWorkbenchEnvironmentService, @IPathService public pathService: IPathService, @IEditorGroupsService public editorGroupService: IEditorGroupsService, - @IEditorOverrideService public editorOverrideService: IEditorOverrideService, + @IEditorResolverService public editorResolverService: IEditorResolverService, @IModeService public modeService: IModeService, @ITextModelService public textModelResolverService: ITextModelService, @IUntitledTextEditorService public untitledTextEditorService: UntitledTextEditorService, diff --git a/src/vs/workbench/workbench.common.main.ts b/src/vs/workbench/workbench.common.main.ts index 5329bd984b1..b9a20df585e 100644 --- a/src/vs/workbench/workbench.common.main.ts +++ b/src/vs/workbench/workbench.common.main.ts @@ -147,7 +147,7 @@ registerSingleton(IOpenerService, OpenerService, true); //#region --- workbench contributions // Editor Override -import 'vs/workbench/services/editor/browser/editorOverrideService'; +import 'vs/workbench/services/editor/browser/editorResolverService'; // Telemetry import 'vs/workbench/contrib/telemetry/browser/telemetry.contribution';