提交 c9895288 编写于 作者: J Johannes Rieken

show extension name with id, show title also on severity-label, #21302

上级 1caf0fa4
......@@ -11,7 +11,7 @@ import { Action } from 'vs/base/common/actions';
import { TPromise as Promise } from 'vs/base/common/winjs.base';
import { MainThreadMessageServiceShape, MainContext, IExtHostContext, MainThreadMessageOptions } from '../node/extHost.protocol';
import { extHostNamedCustomer } from "vs/workbench/api/electron-browser/extHostCustomers";
import { IExtensionService } from 'vs/platform/extensions/common/extensions';
import { IExtensionService, IExtensionDescription } from 'vs/platform/extensions/common/extensions';
@extHostNamedCustomer(MainContext.MainThreadMessageService)
export class MainThreadMessageService implements MainThreadMessageServiceShape {
......@@ -33,11 +33,11 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape {
if (options.modal) {
return this._showModalMessage(severity, message, commands);
} else {
return this._showMessage(severity, message, commands, options.extensionId);
return this._showMessage(severity, message, commands, options.extension);
}
}
private _showMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[], extensionId: string): Thenable<number> {
private _showMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[], extension: IExtensionDescription): Thenable<number> {
return new Promise<number>(resolve => {
......@@ -72,7 +72,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape {
messageHide = this._messageService.show(severity, {
message,
actions,
source: extensionId
source: `${extension.name} (${extension.id})`
});
});
}
......
......@@ -327,13 +327,13 @@ export function createApiFactory(
return extHostTerminalService.onDidCloseTerminal(listener, thisArg, disposables);
},
showInformationMessage(message, first, ...rest) {
return extHostMessageService.showMessage(extension.id, Severity.Info, message, first, rest);
return extHostMessageService.showMessage(extension, Severity.Info, message, first, rest);
},
showWarningMessage(message, first, ...rest) {
return extHostMessageService.showMessage(extension.id, Severity.Warning, message, first, rest);
return extHostMessageService.showMessage(extension, Severity.Warning, message, first, rest);
},
showErrorMessage(message, first, ...rest) {
return extHostMessageService.showMessage(extension.id, Severity.Error, message, first, rest);
return extHostMessageService.showMessage(extension, Severity.Error, message, first, rest);
},
showQuickPick(items: any, options: vscode.QuickPickOptions, token?: vscode.CancellationToken) {
return extHostQuickOpen.showQuickPick(items, options, token);
......@@ -368,7 +368,7 @@ export function createApiFactory(
},
// proposed API
sampleFunction: proposedApiFunction(extension, () => {
return extHostMessageService.showMessage(extension.id, Severity.Info, 'Hello Proposed Api!', {}, []);
return extHostMessageService.showMessage(extension, Severity.Info, 'Hello Proposed Api!', {}, []);
}),
showOpenDialog: proposedApiFunction(extension, () => {
return extHostDialogs.showOpenDialog();
......
......@@ -227,7 +227,7 @@ export interface MainThreadLanguagesShape extends IDisposable {
}
export interface MainThreadMessageOptions {
extensionId?: string;
extension?: IExtensionDescription;
modal?: boolean;
}
......
......@@ -7,6 +7,7 @@
import Severity from 'vs/base/common/severity';
import vscode = require('vscode');
import { MainContext, MainThreadMessageServiceShape, MainThreadMessageOptions, IMainContext } from './extHost.protocol';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
function isMessageItem<T>(item: any): item is vscode.MessageItem {
......@@ -21,11 +22,11 @@ export class ExtHostMessageService {
this._proxy = mainContext.get(MainContext.MainThreadMessageService);
}
showMessage(extensionId: string, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string, rest: string[]): Thenable<string | undefined>;
showMessage(extensionId: string, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | vscode.MessageItem, rest: vscode.MessageItem[]): Thenable<vscode.MessageItem | undefined>;
showMessage(extensionId: string, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string | vscode.MessageItem, rest: (string | vscode.MessageItem)[]): Thenable<string | vscode.MessageItem | undefined> {
showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string, rest: string[]): Thenable<string | undefined>;
showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | vscode.MessageItem, rest: vscode.MessageItem[]): Thenable<vscode.MessageItem | undefined>;
showMessage(extension: IExtensionDescription, severity: Severity, message: string, optionsOrFirstItem: vscode.MessageOptions | string | vscode.MessageItem, rest: (string | vscode.MessageItem)[]): Thenable<string | vscode.MessageItem | undefined> {
let options: MainThreadMessageOptions = { extensionId };
let options: MainThreadMessageOptions = { extension };
let items: (string | vscode.MessageItem)[];
if (typeof optionsOrFirstItem === 'string' || isMessageItem(optionsOrFirstItem)) {
......
......@@ -345,6 +345,8 @@ export class MessageList {
// Hover title
const title = message.source ? `[${message.source}] ${messageContentElement.textContent}` : messageContentElement.textContent;
sevLabel.title(title);
$(messageContentElement as HTMLElement).title(title).appendTo(div);
});
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册