Skip to content

Commit 3b36742

Browse files
committed
Disable custom editors for some specific schemes
Fixes microsoft#99906
1 parent 8448733 commit 3b36742

3 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/vs/base/common/network.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ export namespace Schemas {
6565
export const oldVscodeWebviewResource = 'vscode-resource';
6666

6767
export const vscodeWebviewResource = 'vscode-webview-resource';
68+
69+
/**
70+
* Scheme used for extension pages
71+
*/
72+
export const extension = 'extension';
6873
}
6974

7075
class RemoteAuthoritiesImpl {

src/vs/workbench/contrib/customEditor/common/customEditor.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { distinct, mergeSort } from 'vs/base/common/arrays';
77
import { Event } from 'vs/base/common/event';
88
import * as glob from 'vs/base/common/glob';
99
import { IDisposable, IReference } from 'vs/base/common/lifecycle';
10+
import { Schemas } from 'vs/base/common/network';
1011
import { posix } from 'vs/base/common/path';
1112
import { basename } from 'vs/base/common/resources';
1213
import { URI } from 'vs/base/common/uri';
@@ -89,6 +90,11 @@ export interface CustomEditorDescriptor {
8990

9091
export class CustomEditorInfo implements CustomEditorDescriptor {
9192

93+
private static readonly excludedSchemes = new Set([
94+
Schemas.extension,
95+
Schemas.webviewPanel,
96+
]);
97+
9298
public readonly id: string;
9399
public readonly displayName: string;
94100
public readonly providerDisplayName: string;
@@ -108,6 +114,10 @@ export class CustomEditorInfo implements CustomEditorDescriptor {
108114
}
109115

110116
static selectorMatches(selector: CustomEditorSelector, resource: URI): boolean {
117+
if (CustomEditorInfo.excludedSchemes.has(resource.scheme)) {
118+
return false;
119+
}
120+
111121
if (selector.filenamePattern) {
112122
const matchOnPath = selector.filenamePattern.indexOf(posix.sep) >= 0;
113123
const target = matchOnPath ? resource.path : basename(resource);

src/vs/workbench/contrib/extensions/common/extensionsInput.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6+
import { Schemas } from 'vs/base/common/network';
7+
import { URI } from 'vs/base/common/uri';
68
import { localize } from 'vs/nls';
79
import { EditorInput } from 'vs/workbench/common/editor';
810
import { IExtension } from 'vs/workbench/contrib/extensions/common/extensions';
9-
import { URI } from 'vs/base/common/uri';
1011

1112
export class ExtensionsInput extends EditorInput {
1213

@@ -15,7 +16,7 @@ export class ExtensionsInput extends EditorInput {
1516

1617
get resource() {
1718
return URI.from({
18-
scheme: 'extension',
19+
scheme: Schemas.extension,
1920
path: this.extension.identifier.id
2021
});
2122
}

0 commit comments

Comments
 (0)