Scaffold `MessageOptions.useCustom`

上级 6d50c71f
...@@ -133,6 +133,13 @@ declare module 'vscode' { ...@@ -133,6 +133,13 @@ declare module 'vscode' {
//#region @alexdima - resolvers //#region @alexdima - resolvers
export interface MessageOptions {
/**
* Do not render a native message box.
*/
useCustom?: boolean;
}
export interface RemoteAuthorityResolverContext { export interface RemoteAuthorityResolverContext {
resolveAttempt: number; resolveAttempt: number;
} }
......
...@@ -33,6 +33,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { ...@@ -33,6 +33,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape {
$showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise<number | undefined> { $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise<number | undefined> {
if (options.modal) { if (options.modal) {
// TODO: Handle options.useCustom
return this._showModalMessage(severity, message, commands); return this._showModalMessage(severity, message, commands);
} else { } else {
return this._showMessage(severity, message, commands, options.extension); return this._showMessage(severity, message, commands, options.extension);
......
...@@ -420,6 +420,7 @@ export interface MainThreadLanguagesShape extends IDisposable { ...@@ -420,6 +420,7 @@ export interface MainThreadLanguagesShape extends IDisposable {
export interface MainThreadMessageOptions { export interface MainThreadMessageOptions {
extension?: IExtensionDescription; extension?: IExtensionDescription;
modal?: boolean; modal?: boolean;
useCustom?: boolean;
} }
export interface MainThreadMessageServiceShape extends IDisposable { export interface MainThreadMessageServiceShape extends IDisposable {
......
...@@ -8,6 +8,7 @@ import type * as vscode from 'vscode'; ...@@ -8,6 +8,7 @@ import type * as vscode from 'vscode';
import { MainContext, MainThreadMessageServiceShape, MainThreadMessageOptions, IMainContext } from './extHost.protocol'; import { MainContext, MainThreadMessageServiceShape, MainThreadMessageOptions, IMainContext } from './extHost.protocol';
import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions';
import { ILogService } from 'vs/platform/log/common/log'; import { ILogService } from 'vs/platform/log/common/log';
import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions';
function isMessageItem(item: any): item is vscode.MessageItem { function isMessageItem(item: any): item is vscode.MessageItem {
return item && item.title; return item && item.title;
...@@ -37,9 +38,14 @@ export class ExtHostMessageService { ...@@ -37,9 +38,14 @@ export class ExtHostMessageService {
items = [optionsOrFirstItem, ...rest]; items = [optionsOrFirstItem, ...rest];
} else { } else {
options.modal = optionsOrFirstItem && optionsOrFirstItem.modal; options.modal = optionsOrFirstItem && optionsOrFirstItem.modal;
options.useCustom = optionsOrFirstItem && optionsOrFirstItem.useCustom;
items = rest; items = rest;
} }
if (options.useCustom) {
checkProposedApiEnabled(extension);
}
const commands: { title: string; isCloseAffordance: boolean; handle: number; }[] = []; const commands: { title: string; isCloseAffordance: boolean; handle: number; }[] = [];
for (let handle = 0; handle < items.length; handle++) { for (let handle = 0; handle < items.length; handle++) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册