提交 fabd8a57 编写于 作者: A Alex Dima

Remove custom marshaller in tasks extension host communication (#40169)

上级 2cb843bc
...@@ -13,6 +13,7 @@ import { ITaskService } from 'vs/workbench/parts/tasks/common/taskService'; ...@@ -13,6 +13,7 @@ import { ITaskService } from 'vs/workbench/parts/tasks/common/taskService';
import { ExtHostContext, MainThreadTaskShape, ExtHostTaskShape, MainContext, IExtHostContext } from '../node/extHost.protocol'; import { ExtHostContext, MainThreadTaskShape, ExtHostTaskShape, MainContext, IExtHostContext } from '../node/extHost.protocol';
import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers';
import URI from 'vs/base/common/uri';
@extHostNamedCustomer(MainContext.MainThreadTask) @extHostNamedCustomer(MainContext.MainThreadTask)
export class MainThreadTask implements MainThreadTaskShape { export class MainThreadTask implements MainThreadTaskShape {
...@@ -45,7 +46,7 @@ export class MainThreadTask implements MainThreadTaskShape { ...@@ -45,7 +46,7 @@ export class MainThreadTask implements MainThreadTaskShape {
let uri = (task._source as any as ExtensionTaskSourceTransfer).__workspaceFolder; let uri = (task._source as any as ExtensionTaskSourceTransfer).__workspaceFolder;
if (uri) { if (uri) {
delete (task._source as any as ExtensionTaskSourceTransfer).__workspaceFolder; delete (task._source as any as ExtensionTaskSourceTransfer).__workspaceFolder;
(task._source as any).workspaceFolder = this._workspaceContextServer.getWorkspaceFolder(uri); (task._source as any).workspaceFolder = this._workspaceContextServer.getWorkspaceFolder(URI.revive(uri));
} }
} }
} }
...@@ -57,7 +58,7 @@ export class MainThreadTask implements MainThreadTaskShape { ...@@ -57,7 +58,7 @@ export class MainThreadTask implements MainThreadTaskShape {
return TPromise.wrap<void>(undefined); return TPromise.wrap<void>(undefined);
} }
public $unregisterTaskProvider(handle: number): TPromise<any> { public $unregisterTaskProvider(handle: number): TPromise<void> {
this._taskService.unregisterTaskProvider(handle); this._taskService.unregisterTaskProvider(handle);
delete this._activeHandles[handle]; delete this._activeHandles[handle];
return TPromise.wrap<void>(undefined); return TPromise.wrap<void>(undefined);
......
...@@ -4,13 +4,7 @@ ...@@ -4,13 +4,7 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import { import { createMainContextProxyIdentifier as createMainId, createExtHostContextProxyIdentifier as createExtId, ProxyIdentifier, IRPCProtocol } from 'vs/workbench/services/extensions/node/proxyIdentifier';
createMainContextProxyIdentifier as createMainId,
createExtHostContextProxyIdentifier as createExtId,
ProxyIdentifier,
IRPCProtocol,
ProxyType
} from 'vs/workbench/services/extensions/node/proxyIdentifier';
import * as vscode from 'vscode'; import * as vscode from 'vscode';
...@@ -374,8 +368,8 @@ export interface MainThreadFileSystemShape extends IDisposable { ...@@ -374,8 +368,8 @@ export interface MainThreadFileSystemShape extends IDisposable {
} }
export interface MainThreadTaskShape extends IDisposable { export interface MainThreadTaskShape extends IDisposable {
$registerTaskProvider(handle: number): TPromise<any>; $registerTaskProvider(handle: number): TPromise<void>;
$unregisterTaskProvider(handle: number): TPromise<any>; $unregisterTaskProvider(handle: number): TPromise<void>;
} }
export interface MainThreadExtensionServiceShape extends IDisposable { export interface MainThreadExtensionServiceShape extends IDisposable {
...@@ -788,7 +782,7 @@ export const MainContext = { ...@@ -788,7 +782,7 @@ export const MainContext = {
MainThreadFileSystem: createMainId<MainThreadFileSystemShape>('MainThreadFileSystem'), MainThreadFileSystem: createMainId<MainThreadFileSystemShape>('MainThreadFileSystem'),
MainThreadExtensionService: createMainId<MainThreadExtensionServiceShape>('MainThreadExtensionService'), MainThreadExtensionService: createMainId<MainThreadExtensionServiceShape>('MainThreadExtensionService'),
MainThreadSCM: createMainId<MainThreadSCMShape>('MainThreadSCM'), MainThreadSCM: createMainId<MainThreadSCMShape>('MainThreadSCM'),
MainThreadTask: createMainId<MainThreadTaskShape>('MainThreadTask', ProxyType.CustomMarshaller), MainThreadTask: createMainId<MainThreadTaskShape>('MainThreadTask'),
MainThreadWindow: createMainId<MainThreadWindowShape>('MainThreadWindow'), MainThreadWindow: createMainId<MainThreadWindowShape>('MainThreadWindow'),
}; };
...@@ -813,7 +807,7 @@ export const ExtHostContext = { ...@@ -813,7 +807,7 @@ export const ExtHostContext = {
ExtHostLogService: createExtId<ExtHostLogServiceShape>('ExtHostLogService'), ExtHostLogService: createExtId<ExtHostLogServiceShape>('ExtHostLogService'),
ExtHostTerminalService: createExtId<ExtHostTerminalServiceShape>('ExtHostTerminalService'), ExtHostTerminalService: createExtId<ExtHostTerminalServiceShape>('ExtHostTerminalService'),
ExtHostSCM: createExtId<ExtHostSCMShape>('ExtHostSCM'), ExtHostSCM: createExtId<ExtHostSCMShape>('ExtHostSCM'),
ExtHostTask: createExtId<ExtHostTaskShape>('ExtHostTask', ProxyType.CustomMarshaller), ExtHostTask: createExtId<ExtHostTaskShape>('ExtHostTask'),
ExtHostWorkspace: createExtId<ExtHostWorkspaceShape>('ExtHostWorkspace'), ExtHostWorkspace: createExtId<ExtHostWorkspaceShape>('ExtHostWorkspace'),
ExtHostWindow: createExtId<ExtHostWindowShape>('ExtHostWindow'), ExtHostWindow: createExtId<ExtHostWindowShape>('ExtHostWindow'),
}; };
...@@ -294,11 +294,11 @@ namespace ShellConfiguration { ...@@ -294,11 +294,11 @@ namespace ShellConfiguration {
namespace Tasks { namespace Tasks {
export function from(tasks: vscode.Task[], rootFolder: vscode.WorkspaceFolder, extension: IExtensionDescription): TaskSystem.Task[] { export function from(tasks: vscode.Task[], rootFolder: vscode.WorkspaceFolder, extension: IExtensionDescription): TaskSystem.ContributedTask[] {
if (tasks === void 0 || tasks === null) { if (tasks === void 0 || tasks === null) {
return []; return [];
} }
let result: TaskSystem.Task[] = []; let result: TaskSystem.ContributedTask[] = [];
for (let task of tasks) { for (let task of tasks) {
let converted = fromSingle(task, rootFolder, extension); let converted = fromSingle(task, rootFolder, extension);
if (converted) { if (converted) {
...@@ -351,7 +351,7 @@ namespace Tasks { ...@@ -351,7 +351,7 @@ namespace Tasks {
// We can't transfer a workspace folder object from the extension host to main since they differ // We can't transfer a workspace folder object from the extension host to main since they differ
// in shape and we don't have backwards converting function. So transfer the URI and resolve the // in shape and we don't have backwards converting function. So transfer the URI and resolve the
// workspace folder on the main side. // workspace folder on the main side.
(source as any).__workspaceFolder = workspaceFolder ? workspaceFolder.uri as URI : undefined; (source as any as TaskSystem.ExtensionTaskSourceTransfer).__workspaceFolder = workspaceFolder ? workspaceFolder.uri as URI : undefined;
let label = nls.localize('task.label', '{0}: {1}', source.label, task.name); let label = nls.localize('task.label', '{0}: {1}', source.label, task.name);
let key = (task as types.Task).definitionKey; let key = (task as types.Task).definitionKey;
let kind = (task as types.Task).definition; let kind = (task as types.Task).definition;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
'use strict'; 'use strict';
import URI from 'vs/base/common/uri'; import { UriComponents } from 'vs/base/common/uri';
import * as Types from 'vs/base/common/types'; import * as Types from 'vs/base/common/types';
import { IJSONSchemaMap } from 'vs/base/common/jsonSchema'; import { IJSONSchemaMap } from 'vs/base/common/jsonSchema';
import * as Objects from 'vs/base/common/objects'; import * as Objects from 'vs/base/common/objects';
...@@ -246,7 +246,7 @@ export interface ExtensionTaskSource { ...@@ -246,7 +246,7 @@ export interface ExtensionTaskSource {
} }
export interface ExtensionTaskSourceTransfer { export interface ExtensionTaskSourceTransfer {
__workspaceFolder: URI; __workspaceFolder: UriComponents;
} }
export interface InMemoryTaskSource { export interface InMemoryTaskSource {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册