Route open providers by request mode
This commit is contained in:
@@ -339,8 +339,10 @@
|
||||
function providerSupports(provider, request) {
|
||||
var ext = requestExtension(request);
|
||||
var contextName = requestContextName(request);
|
||||
var mode = String((request && request.mode) || 'view').toLowerCase();
|
||||
return (provider.supports || []).some(function (support) {
|
||||
if (support.kind && support.kind !== request.kind) return false;
|
||||
if (support.modes && support.modes.length && support.modes.map(function (m) { return String(m).toLowerCase(); }).indexOf(mode) === -1) return false;
|
||||
if (support.extensions && support.extensions.length && support.extensions.map(function (e) { return String(e).toLowerCase(); }).indexOf(ext) === -1) return false;
|
||||
if (support.contexts && support.contexts.length && support.contexts.indexOf(contextName) === -1) return false;
|
||||
return true;
|
||||
|
||||
@@ -25,6 +25,7 @@ export namespace api {
|
||||
mime?: string[];
|
||||
extensions?: string[];
|
||||
contexts?: string[];
|
||||
modes?: string[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatOpenProviderSupport(source);
|
||||
@@ -36,6 +37,7 @@ export namespace api {
|
||||
this.mime = source["mime"];
|
||||
this.extensions = source["extensions"];
|
||||
this.contexts = source["contexts"];
|
||||
this.modes = source["modes"];
|
||||
}
|
||||
}
|
||||
export class FlatOpenProvider {
|
||||
@@ -534,6 +536,7 @@ export namespace plugin {
|
||||
mime?: string[];
|
||||
extensions?: string[];
|
||||
contexts?: string[];
|
||||
modes?: string[];
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new OpenProviderSupport(source);
|
||||
@@ -545,6 +548,7 @@ export namespace plugin {
|
||||
this.mime = source["mime"];
|
||||
this.extensions = source["extensions"];
|
||||
this.contexts = source["contexts"];
|
||||
this.modes = source["modes"];
|
||||
}
|
||||
}
|
||||
export class ContributionOpenProvider {
|
||||
@@ -1159,4 +1163,3 @@ export namespace workspace {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user