Expose search provider contributions
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
$: contribCounts = {
|
||||
views: (contributions.views || []).filter(v => v.pluginId === pluginId).length,
|
||||
commands: (contributions.commands || []).filter(c => c.pluginId === pluginId).length,
|
||||
searchProviders: (contributions.searchProviders || []).filter(s => s.pluginId === pluginId).length,
|
||||
sidebar: (contributions.sidebarItems || []).filter(s => s.pluginId === pluginId).length,
|
||||
statusbar: (contributions.statusBarItems || []).filter(s => s.pluginId === pluginId).length,
|
||||
openProviders: (contributions.openProviders || []).filter(o => o.pluginId === pluginId).length,
|
||||
@@ -40,6 +41,7 @@
|
||||
const parts = [];
|
||||
if (contribCounts.views > 0) parts.push(contribCounts.views + ' view' + (contribCounts.views !== 1 ? 's' : ''));
|
||||
if (contribCounts.commands > 0) parts.push(contribCounts.commands + ' command' + (contribCounts.commands !== 1 ? 's' : ''));
|
||||
if (contribCounts.searchProviders > 0) parts.push(contribCounts.searchProviders + ' searchProvider' + (contribCounts.searchProviders !== 1 ? 's' : ''));
|
||||
if (contribCounts.sidebar > 0) parts.push(contribCounts.sidebar + ' sidebar' + (contribCounts.sidebar !== 1 ? 's' : ''));
|
||||
if (contribCounts.statusbar > 0) parts.push(contribCounts.statusbar + ' statusbar' + (contribCounts.statusbar !== 1 ? 's' : ''));
|
||||
if (contribCounts.openProviders > 0) parts.push(contribCounts.openProviders + ' openProvider' + (contribCounts.openProviders !== 1 ? 's' : ''));
|
||||
|
||||
@@ -374,19 +374,20 @@
|
||||
}
|
||||
|
||||
function allContributions() {
|
||||
var views = [], commands = [], sidebarItems = [], statusBarItems = [], settingsPanels = [], openProviders = [], workspaceItems = [];
|
||||
var views = [], commands = [], searchProviders = [], sidebarItems = [], statusBarItems = [], settingsPanels = [], openProviders = [], workspaceItems = [];
|
||||
for (var id in pluginStates) {
|
||||
var s = pluginStates[id];
|
||||
var c = (s.manifest && s.manifest.contributes) || {};
|
||||
if (c.views) c.views.forEach(function (v) { views.push(Object.assign({}, v, { pluginId: id })); });
|
||||
if (c.commands) c.commands.forEach(function (cmd) { commands.push(Object.assign({}, cmd, { pluginId: id })); });
|
||||
if (c.searchProviders) c.searchProviders.forEach(function (sp) { searchProviders.push(Object.assign({}, sp, { pluginId: id })); });
|
||||
if (c.sidebarItems) c.sidebarItems.forEach(function (sb) { sidebarItems.push(Object.assign({}, sb, { pluginId: id })); });
|
||||
if (c.statusBarItems) c.statusBarItems.forEach(function (st) { statusBarItems.push(Object.assign({}, st, { pluginId: id })); });
|
||||
if (c.settingsPanels) c.settingsPanels.forEach(function (sp) { settingsPanels.push(Object.assign({}, sp, { pluginId: id })); });
|
||||
if (c.openProviders) c.openProviders.forEach(function (op) { openProviders.push(Object.assign({}, op, { pluginId: id })); });
|
||||
if (c.workspaceItems) c.workspaceItems.forEach(function (wi) { workspaceItems.push(Object.assign({}, wi, { pluginId: id })); });
|
||||
}
|
||||
return { views: views, commands: commands, sidebarItems: sidebarItems, statusBarItems: statusBarItems, settingsPanels: settingsPanels, openProviders: openProviders, workspaceItems: workspaceItems };
|
||||
return { views: views, commands: commands, searchProviders: searchProviders, sidebarItems: sidebarItems, statusBarItems: statusBarItems, settingsPanels: settingsPanels, openProviders: openProviders, workspaceItems: workspaceItems };
|
||||
}
|
||||
|
||||
function requestExtension(request) {
|
||||
|
||||
@@ -80,6 +80,44 @@ export namespace api {
|
||||
return a;
|
||||
}
|
||||
}
|
||||
export class FlatSearchProvider {
|
||||
pluginId: string;
|
||||
id: string;
|
||||
label: string;
|
||||
handler: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatSearchProvider(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
this.id = source["id"];
|
||||
this.label = source["label"];
|
||||
this.handler = source["handler"];
|
||||
}
|
||||
}
|
||||
export class FlatStatusBarItem {
|
||||
pluginId: string;
|
||||
id: string;
|
||||
label: string;
|
||||
position?: string;
|
||||
handler?: string;
|
||||
|
||||
static createFrom(source: any = {}) {
|
||||
return new FlatStatusBarItem(source);
|
||||
}
|
||||
|
||||
constructor(source: any = {}) {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.pluginId = source["pluginId"];
|
||||
this.id = source["id"];
|
||||
this.label = source["label"];
|
||||
this.position = source["position"];
|
||||
this.handler = source["handler"];
|
||||
}
|
||||
}
|
||||
export class FlatSidebarItem {
|
||||
pluginId: string;
|
||||
id: string;
|
||||
@@ -165,8 +203,10 @@ export namespace api {
|
||||
export class ContributionSummary {
|
||||
views: FlatView[];
|
||||
commands: FlatCommand[];
|
||||
searchProviders: FlatSearchProvider[];
|
||||
settingsPanels: FlatSettingsPanel[];
|
||||
sidebarItems: FlatSidebarItem[];
|
||||
statusBarItems: FlatStatusBarItem[];
|
||||
openProviders: FlatOpenProvider[];
|
||||
workspaceItems: FlatWorkspaceItem[];
|
||||
|
||||
@@ -178,8 +218,10 @@ export namespace api {
|
||||
if ('string' === typeof source) source = JSON.parse(source);
|
||||
this.views = this.convertValues(source["views"], FlatView);
|
||||
this.commands = this.convertValues(source["commands"], FlatCommand);
|
||||
this.searchProviders = this.convertValues(source["searchProviders"], FlatSearchProvider);
|
||||
this.settingsPanels = this.convertValues(source["settingsPanels"], FlatSettingsPanel);
|
||||
this.sidebarItems = this.convertValues(source["sidebarItems"], FlatSidebarItem);
|
||||
this.statusBarItems = this.convertValues(source["statusBarItems"], FlatStatusBarItem);
|
||||
this.openProviders = this.convertValues(source["openProviders"], FlatOpenProvider);
|
||||
this.workspaceItems = this.convertValues(source["workspaceItems"], FlatWorkspaceItem);
|
||||
}
|
||||
@@ -209,6 +251,7 @@ export namespace api {
|
||||
|
||||
|
||||
|
||||
|
||||
export class SyncStatusDTO {
|
||||
configured: boolean;
|
||||
serverUrl: string;
|
||||
|
||||
Reference in New Issue
Block a user