提交 a8eed3eb 编写于 作者: I isidor

ShowExtensionsStatusAction

上级 b02367b4
......@@ -6,6 +6,9 @@
import nls = require('vs/nls');
import { Promise } from 'vs/base/common/winjs.base';
import { Action } from 'vs/base/common/actions';
import Severity from 'vs/base/common/severity';
import { IPluginService, IPluginStatus } from 'vs/platform/plugins/common/plugins';
import { IMessageService } from 'vs/platform/message/common/message';
import { IExtensionsService } from 'vs/workbench/parts/extensions/common/extensions';
import { IQuickOpenService } from 'vs/workbench/services/quickopen/browser/quickOpenService';
......@@ -32,6 +35,43 @@ export class ListExtensionsAction extends Action {
}
}
export class ShowExtensionsStatusAction extends Action {
static ID = 'workbench.extensions.action.showExtensionsStatus';
static LABEL = nls.localize('showInstalledExtensions', "Show Extensions Status");
private status: { [id: string]: IPluginStatus };
constructor(
id: string,
label: string,
@IPluginService pluginService: IPluginService,
@IMessageService private messageService: IMessageService
) {
super(id, label, null, true);
pluginService.onReady().then(() => {
this.status = pluginService.getPluginsStatus();
});
}
public run(): Promise {
Object.keys(this.status).forEach(key => {
this.status[key].messages.forEach(m => {
if (m.type > Severity.Ignore) {
this.messageService.show(m.type, m.message);
}
});
});
return Promise.as(null);
}
protected isEnabled(): boolean {
return true;
}
}
export class InstallExtensionAction extends Action {
static ID = 'workbench.extensions.action.installExtension';
......
......@@ -9,7 +9,7 @@ import errors = require('vs/base/common/errors');
import dom = require('vs/base/browser/dom');
import lifecycle = require('vs/base/common/lifecycle');
import statusbar = require('vs/workbench/browser/parts/statusbar/statusbar');
import { IPluginService, IPluginStatus } from 'vs/platform/plugins/common/plugins';
import { IPluginService } from 'vs/platform/plugins/common/plugins';
import { IQuickOpenService } from 'vs/workbench/services/quickopen/browser/quickOpenService';
var $ = dom.emmet;
......@@ -20,13 +20,13 @@ export class ExtensionsStatusbarItem implements statusbar.IStatusbarItem {
private domNode: HTMLElement;
constructor(
@IPluginService private pluginService: IPluginService,
@IPluginService pluginService: IPluginService,
@IQuickOpenService private quickOpenService: IQuickOpenService
) {
this.toDispose = [];
this.pluginService.onReady().then(() => {
const pluginsStatus = this.pluginService.getPluginsStatus();
pluginService.onReady().then(() => {
const pluginsStatus = pluginService.getPluginsStatus();
Object.keys(pluginsStatus).forEach(key => {
const severity = pluginsStatus[key].messages.reduce((maxSeverity, message) => Math.max(maxSeverity, message.type), Severity.Ignore);
this.domNode.classList.add(Severity[severity].toLowerCase());
......
......@@ -16,7 +16,7 @@ import { IWorkspaceContextService } from 'vs/workbench/services/workspace/common
import { ReloadWindowAction } from 'vs/workbench/electron-browser/actions';
import wbaregistry = require('vs/workbench/browser/actionRegistry');
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
import { ListExtensionsAction, InstallExtensionAction, ListOutdatedExtensionsAction } from './extensionsActions';
import { ListExtensionsAction, ShowExtensionsStatusAction, InstallExtensionAction, ListOutdatedExtensionsAction } from './extensionsActions';
import { IQuickOpenRegistry, Extensions, QuickOpenHandlerDescriptor } from 'vs/workbench/browser/quickopen';
import ipc = require('ipc');
......@@ -45,6 +45,7 @@ export class ExtensionsWorkbenchExtension implements IWorkbenchContribution {
const extensionsCategory = nls.localize('extensionsCategory', "Extensions");
const actionRegistry = (<wbaregistry.IWorkbenchActionRegistry> platform.Registry.as(wbaregistry.Extensions.WorkbenchActions));
actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ListExtensionsAction, ListExtensionsAction.ID, ListExtensionsAction.LABEL), extensionsCategory);
actionRegistry.registerWorkbenchAction(new SyncActionDescriptor(ShowExtensionsStatusAction, ShowExtensionsStatusAction.ID, ShowExtensionsStatusAction.LABEL), extensionsCategory);
(<IQuickOpenRegistry>platform.Registry.as(Extensions.Quickopen)).registerQuickOpenHandler(
new QuickOpenHandlerDescriptor(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册