From a541cbf2e759988ccf200a5dc0c98f5f1718bc4e Mon Sep 17 00:00:00 2001 From: Logan Ramos Date: Wed, 7 Jul 2021 13:54:22 -0400 Subject: [PATCH] Fixes #127084 --- .../services/editor/browser/editorResolverService.ts | 5 ++++- .../services/editor/common/editorResolverService.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/services/editor/browser/editorResolverService.ts b/src/vs/workbench/services/editor/browser/editorResolverService.ts index 1b0d84cf51c..6ad36ba7490 100644 --- a/src/vs/workbench/services/editor/browser/editorResolverService.ts +++ b/src/vs/workbench/services/editor/browser/editorResolverService.ts @@ -271,7 +271,7 @@ export class EditorResolverService extends Disposable implements IEditorResolver for (const [key, editors] of this._editors) { for (const editor of editors) { const foundInSettings = userSettings.find(setting => setting.viewType === editor.editorInfo.id); - if (foundInSettings || globMatchesResource(key, resource)) { + if ((foundInSettings && editor.editorInfo.priority !== RegisteredEditorPriority.exclusive) || globMatchesResource(key, resource)) { matchingEditors.push(editor); } } @@ -288,6 +288,9 @@ export class EditorResolverService extends Disposable implements IEditorResolver public getEditorIds(resource: URI): string[] { const editors = this.findMatchingEditors(resource); + if (editors.find(e => e.editorInfo.priority === RegisteredEditorPriority.exclusive)) { + return []; + } return editors.map(editor => editor.editorInfo.id); } diff --git a/src/vs/workbench/services/editor/common/editorResolverService.ts b/src/vs/workbench/services/editor/common/editorResolverService.ts index 80e9a0a1413..314e1345d1f 100644 --- a/src/vs/workbench/services/editor/common/editorResolverService.ts +++ b/src/vs/workbench/services/editor/common/editorResolverService.ts @@ -149,7 +149,7 @@ export interface IEditorResolverService { resolveEditor(editor: IEditorInputWithOptions | IUntypedEditorInput, preferredGroup: PreferredGroup | undefined): Promise; /** - * Given a resource returns all the editor ids that match that resource + * Given a resource returns all the editor ids that match that resource. If there is exclusive editor we return an empty array * @param resource The resource * @returns A list of editor ids */