提交 329868aa 编写于 作者: B Benjamin Pasero

notifications - 💄

上级 fea2a8f4
...@@ -10,6 +10,7 @@ import { localize } from 'vs/nls'; ...@@ -10,6 +10,7 @@ import { localize } from 'vs/nls';
import { Severity } from 'vs/platform/message/common/message'; import { Severity } from 'vs/platform/message/common/message';
import { INotificationViewItem, INotificationsModel, NotificationChangeType, INotificationChangeEvent } from 'vs/workbench/common/notifications'; import { INotificationViewItem, INotificationsModel, NotificationChangeType, INotificationChangeEvent } from 'vs/workbench/common/notifications';
import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { toErrorMessage } from 'vs/base/common/errorMessage';
export class NotificationsAlerts { export class NotificationsAlerts {
...@@ -30,7 +31,14 @@ export class NotificationsAlerts { ...@@ -30,7 +31,14 @@ export class NotificationsAlerts {
private onDidNotificationChange(e: INotificationChangeEvent): void { private onDidNotificationChange(e: INotificationChangeEvent): void {
if (e.kind === NotificationChangeType.ADD) { if (e.kind === NotificationChangeType.ADD) {
// ARIA alert for screen readers
this.ariaAlert(e.item); this.ariaAlert(e.item);
// Always log errors to console with full details
if (e.item.severity === Severity.Error) {
console.error(toErrorMessage(e.item.message.value, true));
}
} }
} }
......
...@@ -13,6 +13,7 @@ import { toErrorMessage } from 'vs/base/common/errorMessage'; ...@@ -13,6 +13,7 @@ import { toErrorMessage } from 'vs/base/common/errorMessage';
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import Event, { Emitter, once } from 'vs/base/common/event'; import Event, { Emitter, once } from 'vs/base/common/event';
import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { IDisposable, dispose } from 'vs/base/common/lifecycle';
import { isPromiseCanceledError } from 'vs/base/common/errors';
export interface INotificationsModel { export interface INotificationsModel {
...@@ -139,10 +140,17 @@ export class NotificationViewItem implements INotificationViewItem { ...@@ -139,10 +140,17 @@ export class NotificationViewItem implements INotificationViewItem {
private _onDidDispose: Emitter<void>; private _onDidDispose: Emitter<void>;
public static create(notification: INotification): INotificationViewItem { public static create(notification: INotification): INotificationViewItem {
if (!notification || !notification.message) { if (!notification || !notification.message || isPromiseCanceledError(notification.message)) {
return null; // we need a message to show return null; // we need a message to show
} }
let severity: Severity;
if (typeof notification.severity === 'number') {
severity = notification.severity;
} else {
severity = Severity.Info;
}
let message: IMarkdownString; let message: IMarkdownString;
if (notification.message instanceof Error) { if (notification.message instanceof Error) {
message = { value: toErrorMessage(notification.message, false), isTrusted: true }; message = { value: toErrorMessage(notification.message, false), isTrusted: true };
...@@ -156,7 +164,7 @@ export class NotificationViewItem implements INotificationViewItem { ...@@ -156,7 +164,7 @@ export class NotificationViewItem implements INotificationViewItem {
return null; // we need a message to show return null; // we need a message to show
} }
return new NotificationViewItem(notification.severity, message, notification.source || NotificationViewItem.DEFAULT_SOURCE, notification.actions || []); return new NotificationViewItem(severity, message, notification.source || NotificationViewItem.DEFAULT_SOURCE, notification.actions || []);
} }
private constructor(private _severity: Severity, private _message: IMarkdownString, private _source: string, private _actions: IAction[]) { private constructor(private _severity: Severity, private _message: IMarkdownString, private _source: string, private _actions: IAction[]) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册