extHost.protocol.ts 39.6 KB
Newer Older
1 2 3 4 5 6
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
'use strict';

7
import { createMainContextProxyIdentifier as createMainId, createExtHostContextProxyIdentifier as createExtId, ProxyIdentifier, IRPCProtocol } from 'vs/workbench/services/extensions/node/proxyIdentifier';
8

9 10
import * as vscode from 'vscode';

11
import URI, { UriComponents } from 'vs/base/common/uri';
12
import Severity from 'vs/base/common/severity';
13
import { TPromise } from 'vs/base/common/winjs.base';
14

15 16
import { IMarkerData } from 'vs/platform/markers/common/markers';
import { Position as EditorPosition } from 'vs/platform/editor/common/editor';
17
import { IExtensionDescription } from 'vs/workbench/services/extensions/common/extensions';
18 19
import { StatusbarAlignment as MainThreadStatusBarAlignment } from 'vs/platform/statusbar/common/statusbar';
import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry';
20
import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands';
J
Johannes Rieken 已提交
21
import { IProgressOptions, IProgressStep } from 'vs/platform/progress/common/progress';
22 23 24 25

import * as editorCommon from 'vs/editor/common/editorCommon';
import * as modes from 'vs/editor/common/modes';

S
Sandeep Somavarapu 已提交
26
import { IConfigurationData, ConfigurationTarget, IConfigurationModel } from 'vs/platform/configuration/common/configuration';
27
import { IConfig, IAdapterExecutable, ITerminalSettings } from 'vs/workbench/parts/debug/common/debug';
28

J
Johannes Rieken 已提交
29
import { IPickOpenEntry, IPickOptions } from 'vs/platform/quickOpen/common/quickOpen';
30
import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles';
31
import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions';
32
import { EndOfLine, TextEditorLineNumbersStyle } from 'vs/workbench/api/node/extHostTypes';
33

34

35
import { TaskSet } from 'vs/workbench/parts/tasks/common/tasks';
36
import { IModelChangedEvent } from 'vs/editor/common/model/mirrorTextModel';
37 38
import { IPosition } from 'vs/editor/common/core/position';
import { IRange } from 'vs/editor/common/core/range';
39
import { ISelection, Selection } from 'vs/editor/common/core/selection';
40

41
import { ITreeItem } from 'vs/workbench/common/views';
B
Benjamin Pasero 已提交
42
import { ThemeColor } from 'vs/platform/theme/common/themeService';
B
Benjamin Pasero 已提交
43 44
import { IDisposable } from 'vs/base/common/lifecycle';
import { SerializedError } from 'vs/base/common/errors';
45
import { IStat, FileChangeType, IWatchOptions, FileSystemProviderCapabilities, FileOptions } from 'vs/platform/files/common/files';
S
Sandeep Somavarapu 已提交
46
import { ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry';
47
import { CommentRule, CharacterPair, EnterAction } from 'vs/editor/common/modes/languageConfiguration';
J
Johannes Rieken 已提交
48
import { ISingleEditOperation } from 'vs/editor/common/model';
49
import { ILineMatch, IPatternInfo } from 'vs/platform/search/common/search';
S
Sandeep Somavarapu 已提交
50
import { LogLevel } from 'vs/platform/log/common/log';
51
import { TaskExecutionDTO, TaskDTO, TaskHandleDTO, TaskFilterDTO } from 'vs/workbench/api/shared/tasks';
S
Sandeep Somavarapu 已提交
52

53
export interface IEnvironment {
54
	isExtensionDevelopmentDebug: boolean;
J
Johannes Rieken 已提交
55
	appRoot: string;
56 57 58 59 60 61
	appSettingsHome: string;
	disableExtensions: boolean;
	extensionDevelopmentPath: string;
	extensionTestsPath: string;
}

62 63
export interface IWorkspaceData {
	id: string;
64
	name: string;
65
	folders: { uri: UriComponents, name: string, index: number }[];
J
Johannes Rieken 已提交
66
	configuration?: UriComponents;
67 68
}

69 70 71
export interface IInitData {
	parentPid: number;
	environment: IEnvironment;
72
	workspace: IWorkspaceData;
73
	extensions: IExtensionDescription[];
S
Sandeep Somavarapu 已提交
74
	configuration: IConfigurationInitData;
75
	telemetryInfo: ITelemetryInfo;
76
	windowId: number;
S
Sandeep Somavarapu 已提交
77
	logLevel: LogLevel;
A
Alex Dima 已提交
78
	logsPath: string;
79 80
}

S
Sandeep Somavarapu 已提交
81
export interface IConfigurationInitData extends IConfigurationData {
S
Sandeep Somavarapu 已提交
82
	configurationScopes: { [key: string]: ConfigurationScope };
S
Sandeep Somavarapu 已提交
83 84
}

85
export interface IWorkspaceConfigurationChangeEventData {
S
Sandeep Somavarapu 已提交
86 87
	changedConfiguration: IConfigurationModel;
	changedConfigurationByResource: { [folder: string]: IConfigurationModel };
88 89
}

A
Alex Dima 已提交
90
export interface IExtHostContext extends IRPCProtocol {
91 92
}

A
Alex Dima 已提交
93
export interface IMainContext extends IRPCProtocol {
94 95
}

96 97
// --- main thread

98
export interface MainThreadCommandsShape extends IDisposable {
99 100
	$registerCommand(id: string): void;
	$unregisterCommand(id: string): void;
101 102
	$executeCommand<T>(id: string, args: any[]): Thenable<T>;
	$getCommands(): Thenable<string[]>;
103 104
}

105
export interface MainThreadConfigurationShape extends IDisposable {
106 107
	$updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resource: UriComponents): TPromise<void>;
	$removeConfigurationOption(target: ConfigurationTarget, key: string, resource: UriComponents): TPromise<void>;
108 109
}

110
export interface MainThreadDiagnosticsShape extends IDisposable {
111 112
	$changeMany(owner: string, entries: [UriComponents, IMarkerData[]][]): void;
	$clear(owner: string): void;
113 114
}

115
export interface MainThreadDialogOpenOptions {
116
	defaultUri?: UriComponents;
117
	openLabel?: string;
118 119 120
	canSelectFiles?: boolean;
	canSelectFolders?: boolean;
	canSelectMany?: boolean;
J
Johannes Rieken 已提交
121
	filters?: { [name: string]: string[] };
122 123
}

124
export interface MainThreadDialogSaveOptions {
125
	defaultUri?: UriComponents;
126
	saveLabel?: string;
J
Johannes Rieken 已提交
127
	filters?: { [name: string]: string[] };
128 129
}

130
export interface MainThreadDiaglogsShape extends IDisposable {
131 132
	$showOpenDialog(options: MainThreadDialogOpenOptions): Thenable<string[]>;
	$showSaveDialog(options: MainThreadDialogSaveOptions): Thenable<string>;
133 134
}

135 136 137
export interface MainThreadDecorationsShape extends IDisposable {
	$registerDecorationProvider(handle: number, label: string): void;
	$unregisterDecorationProvider(handle: number): void;
138
	$onDidChange(handle: number, resources: UriComponents[]): void;
139 140
}

141
export interface MainThreadDocumentContentProvidersShape extends IDisposable {
142 143
	$registerTextContentProvider(handle: number, scheme: string): void;
	$unregisterTextContentProvider(handle: number): void;
144
	$onVirtualDocumentChange(uri: UriComponents, value: string): void;
145 146
}

147
export interface MainThreadDocumentsShape extends IDisposable {
J
Johannes Rieken 已提交
148
	$tryCreateDocument(options?: { language?: string; content?: string; }): TPromise<UriComponents>;
149
	$tryOpenDocument(uri: UriComponents): TPromise<void>;
150
	$trySaveDocument(uri: UriComponents): TPromise<boolean>;
151 152
}

153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
export interface ITextEditorConfigurationUpdate {
	tabSize?: number | 'auto';
	insertSpaces?: boolean | 'auto';
	cursorStyle?: TextEditorCursorStyle;
	lineNumbers?: TextEditorLineNumbersStyle;
}

export interface IResolvedTextEditorConfiguration {
	tabSize: number;
	insertSpaces: boolean;
	cursorStyle: TextEditorCursorStyle;
	lineNumbers: TextEditorLineNumbersStyle;
}

export enum TextEditorRevealType {
	Default = 0,
	InCenter = 1,
	InCenterIfOutsideViewport = 2,
	AtTop = 3
}

export interface IUndoStopOptions {
	undoStopBefore: boolean;
	undoStopAfter: boolean;
}

export interface IApplyEditsOptions extends IUndoStopOptions {
	setEndOfLine: EndOfLine;
}

183 184 185 186
export interface ITextDocumentShowOptions {
	position?: EditorPosition;
	preserveFocus?: boolean;
	pinned?: boolean;
187
	selection?: IRange;
188 189
}

190
export interface MainThreadTextEditorsShape extends IDisposable {
191
	$tryShowTextDocument(resource: UriComponents, options: ITextDocumentShowOptions): TPromise<string>;
192 193 194 195
	$registerTextEditorDecorationType(key: string, options: editorCommon.IDecorationRenderOptions): void;
	$removeTextEditorDecorationType(key: string): void;
	$tryShowEditor(id: string, position: EditorPosition): TPromise<void>;
	$tryHideEditor(id: string): TPromise<void>;
196 197 198 199 200
	$trySetOptions(id: string, options: ITextEditorConfigurationUpdate): TPromise<void>;
	$trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): TPromise<void>;
	$trySetDecorationsFast(id: string, key: string, ranges: number[]): TPromise<void>;
	$tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): TPromise<void>;
	$trySetSelections(id: string, selections: ISelection[]): TPromise<void>;
201
	$tryApplyEdits(id: string, modelVersionId: number, edits: ISingleEditOperation[], opts: IApplyEditsOptions): TPromise<boolean>;
202
	$tryApplyWorkspaceEdit(workspaceEditDto: WorkspaceEditDto): TPromise<boolean>;
203
	$tryInsertSnippet(id: string, template: string, selections: IRange[], opts: IUndoStopOptions): TPromise<boolean>;
204
	$getDiffInformation(id: string): TPromise<editorCommon.ILineChange[]>;
205 206
}

207
export interface MainThreadTreeViewsShape extends IDisposable {
S
Sandeep Somavarapu 已提交
208
	$registerTreeViewDataProvider(treeViewId: string): void;
S
Sandeep Somavarapu 已提交
209
	$refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): void;
S
Sandeep Somavarapu 已提交
210
	$reveal(treeViewId: string, treeItem: ITreeItem, parentChain: ITreeItem[], options?: { select?: boolean }): TPromise<void>;
211 212
}

213
export interface MainThreadErrorsShape extends IDisposable {
214
	$onUnexpectedError(err: any | SerializedError): void;
215 216
}

217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255
export interface ISerializedRegExp {
	pattern: string;
	flags?: string;
}
export interface ISerializedIndentationRule {
	decreaseIndentPattern: ISerializedRegExp;
	increaseIndentPattern: ISerializedRegExp;
	indentNextLinePattern?: ISerializedRegExp;
	unIndentedLinePattern?: ISerializedRegExp;
}
export interface ISerializedOnEnterRule {
	beforeText: ISerializedRegExp;
	afterText?: ISerializedRegExp;
	action: EnterAction;
}
export interface ISerializedLanguageConfiguration {
	comments?: CommentRule;
	brackets?: CharacterPair[];
	wordPattern?: ISerializedRegExp;
	indentationRules?: ISerializedIndentationRule;
	onEnterRules?: ISerializedOnEnterRule[];
	__electricCharacterSupport?: {
		brackets?: any;
		docComment?: {
			scope: string;
			open: string;
			lineStart: string;
			close?: string;
		};
	};
	__characterPairSupport?: {
		autoClosingPairs: {
			open: string;
			close: string;
			notIn?: string[];
		}[];
	};
}

A
Alex Dima 已提交
256 257 258 259 260 261 262
export interface ISerializedDocumentFilter {
	$serialized: true;
	language?: string;
	scheme?: string;
	pattern?: vscode.GlobPattern;
}

263
export interface MainThreadLanguageFeaturesShape extends IDisposable {
264
	$unregister(handle: number): void;
A
Alex Dima 已提交
265 266
	$registerOutlineSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerCodeLensSupport(handle: number, selector: ISerializedDocumentFilter[], eventHandle: number): void;
267
	$emitCodeLensEvent(eventHandle: number, event?: any): void;
A
Alex Dima 已提交
268 269 270 271 272 273
	$registerDeclaractionSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerImplementationSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerTypeDefinitionSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerHoverProvider(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerDocumentHighlightProvider(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerReferenceSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
274
	$registerQuickFixSupport(handle: number, selector: ISerializedDocumentFilter[], supportedKinds?: string[]): void;
A
Alex Dima 已提交
275 276 277
	$registerDocumentFormattingSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerRangeFormattingSupport(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerOnTypeFormattingSupport(handle: number, selector: ISerializedDocumentFilter[], autoFormatTriggerCharacters: string[]): void;
278
	$registerNavigateTypeSupport(handle: number): void;
A
Alex Dima 已提交
279 280 281 282 283
	$registerRenameSupport(handle: number, selector: ISerializedDocumentFilter[], supportsResolveInitialValues: boolean): void;
	$registerSuggestSupport(handle: number, selector: ISerializedDocumentFilter[], triggerCharacters: string[], supportsResolveDetails: boolean): void;
	$registerSignatureHelpProvider(handle: number, selector: ISerializedDocumentFilter[], triggerCharacter: string[]): void;
	$registerDocumentLinkProvider(handle: number, selector: ISerializedDocumentFilter[]): void;
	$registerDocumentColorProvider(handle: number, selector: ISerializedDocumentFilter[]): void;
284
	$registerFoldingRangeProvider(handle: number, selector: ISerializedDocumentFilter[]): void;
285
	$setLanguageConfiguration(handle: number, languageId: string, configuration: ISerializedLanguageConfiguration): void;
286 287
}

288
export interface MainThreadLanguagesShape extends IDisposable {
289
	$getLanguages(): TPromise<string[]>;
290 291
}

292
export interface MainThreadMessageOptions {
293
	extension?: IExtensionDescription;
294
	modal?: boolean;
295 296
}

297
export interface MainThreadMessageServiceShape extends IDisposable {
298
	$showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Thenable<number>;
299 300
}

301
export interface MainThreadOutputServiceShape extends IDisposable {
302 303 304 305 306
	$append(channelId: string, label: string, value: string): TPromise<void>;
	$clear(channelId: string, label: string): TPromise<void>;
	$dispose(channelId: string, label: string): TPromise<void>;
	$reveal(channelId: string, label: string, preserveFocus: boolean): TPromise<void>;
	$close(channelId: string): TPromise<void>;
307 308
}

309
export interface MainThreadProgressShape extends IDisposable {
310

311 312 313
	$startProgress(handle: number, options: IProgressOptions): void;
	$progressReport(handle: number, message: IProgressStep): void;
	$progressEnd(handle: number): void;
314 315
}

316
export interface MainThreadTerminalServiceShape extends IDisposable {
317
	$createTerminal(name?: string, shellPath?: string, shellArgs?: string[], cwd?: string, env?: { [key: string]: string }, waitOnExit?: boolean): TPromise<number>;
318 319 320 321
	$dispose(terminalId: number): void;
	$hide(terminalId: number): void;
	$sendText(terminalId: number, text: string, addNewLine: boolean): void;
	$show(terminalId: number, preserveFocus: boolean): void;
D
Daniel Imms 已提交
322
	$registerOnDataListener(terminalId: number): void;
323 324 325 326

	$sendProcessTitle(terminalId: number, title: string): void;
	$sendProcessData(terminalId: number, data: string): void;
	$sendProcessPid(terminalId: number, pid: number): void;
D
Daniel Imms 已提交
327
	$sendProcessExit(terminalId: number, exitCode: number): void;
D
Daniel Imms 已提交
328 329
}

330 331 332
export interface MyQuickPickItems extends IPickOpenEntry {
	handle: number;
}
333
export interface MainThreadQuickOpenShape extends IDisposable {
C
Christof Marti 已提交
334
	$show(options: IPickOptions): TPromise<number | number[]>;
335 336 337
	$setItems(items: MyQuickPickItems[]): TPromise<any>;
	$setError(error: Error): TPromise<any>;
	$input(options: vscode.InputBoxOptions, validateInput: boolean): TPromise<string>;
338 339
}

340
export interface MainThreadStatusBarShape extends IDisposable {
341
	$setEntry(id: number, extensionId: string, text: string, tooltip: string, command: string, color: string | ThemeColor, alignment: MainThreadStatusBarAlignment, priority: number): void;
342
	$dispose(id: number): void;
343 344
}

345
export interface MainThreadStorageShape extends IDisposable {
346
	$getValue<T>(shared: boolean, key: string): TPromise<T>;
347
	$setValue(shared: boolean, key: string, value: any): TPromise<void>;
348 349
}

350
export interface MainThreadTelemetryShape extends IDisposable {
351
	$publicLog(eventName: string, data?: any): void;
352 353
}

354
export type WebviewPanelHandle = string;
M
Matt Bierner 已提交
355 356

export interface MainThreadWebviewsShape extends IDisposable {
357 358
	$createWebviewPanel(handle: WebviewPanelHandle, viewType: string, title: string, column: EditorPosition, options: vscode.WebviewPanelOptions & vscode.WebviewOptions, extensionFolderPath: string): void;
	$disposeWebview(handle: WebviewPanelHandle): void;
359
	$reveal(handle: WebviewPanelHandle, column: EditorPosition | undefined): void;
360 361
	$setTitle(handle: WebviewPanelHandle, value: string): void;
	$setHtml(handle: WebviewPanelHandle, value: string): void;
M
Matt Bierner 已提交
362
	$postMessage(handle: WebviewPanelHandle, value: any): Thenable<boolean>;
363 364 365

	$registerSerializer(viewType: string): void;
	$unregisterSerializer(viewType: string): void;
M
Matt Bierner 已提交
366
}
367

M
Matt Bierner 已提交
368
export interface ExtHostWebviewsShape {
369 370
	$onMessage(handle: WebviewPanelHandle, message: any): void;
	$onDidChangeWebviewPanelViewState(handle: WebviewPanelHandle, active: boolean, position: EditorPosition): void;
371
	$onDidDisposeWebviewPanel(handle: WebviewPanelHandle): Thenable<void>;
372 373
	$deserializeWebviewPanel(newWebviewHandle: WebviewPanelHandle, viewType: string, title: string, state: any, position: EditorPosition, options: vscode.WebviewOptions): Thenable<void>;
	$serializeWebviewPanel(webviewHandle: WebviewPanelHandle): Thenable<any>;
M
Matt Bierner 已提交
374 375
}

J
Joao Moreno 已提交
376
export interface MainThreadUrlsShape extends IDisposable {
J
Joao Moreno 已提交
377 378
	$registerExternalUriHandler(handle: number, extensionId: string): TPromise<void>;
	$unregisterExternalUriHandler(handle: number): TPromise<void>;
J
Joao Moreno 已提交
379 380 381
}

export interface ExtHostUrlsShape {
J
Joao Moreno 已提交
382
	$handleExternalUri(handle: number, uri: UriComponents): TPromise<void>;
J
Joao Moreno 已提交
383 384
}

385
export interface MainThreadWorkspaceShape extends IDisposable {
J
Johannes Rieken 已提交
386
	$startSearch(includePattern: string, includeFolder: string, excludePatternOrDisregardExcludes: string | false, maxResults: number, requestId: number): Thenable<UriComponents[]>;
387 388
	$cancelSearch(requestId: number): Thenable<boolean>;
	$saveAll(includeUntitled?: boolean): Thenable<boolean>;
389
	$updateWorkspaceFolders(extensionName: string, index: number, deleteCount: number, workspaceFoldersToAdd: { uri: UriComponents, name?: string }[]): Thenable<void>;
390
}
391

J
Johannes Rieken 已提交
392 393 394 395 396
export interface IFileChangeDto {
	resource: UriComponents;
	type: FileChangeType;
}

397
export interface MainThreadFileSystemShape extends IDisposable {
398
	$registerFileSystemProvider(handle: number, scheme: string, capabilities: FileSystemProviderCapabilities): void;
399
	$unregisterProvider(handle: number): void;
J
Johannes Rieken 已提交
400
	$onFileSystemChange(handle: number, resource: IFileChangeDto[]): void;
401
}
J
Johannes Rieken 已提交
402

403 404 405
export interface MainThreadSearchShape extends IDisposable {
	$registerSearchProvider(handle: number, scheme: string): void;
	$unregisterProvider(handle: number): void;
406
	$handleFindMatch(handle: number, session, data: UriComponents | [UriComponents, ILineMatch]): void;
407 408
}

409
export interface MainThreadTaskShape extends IDisposable {
410
	$registerTaskProvider(handle: number): TPromise<void>;
411
	$fetchTasks(filter?: TaskFilterDTO): TPromise<TaskDTO[]>;
412
	$executeTask(task: TaskHandleDTO | TaskDTO): TPromise<TaskExecutionDTO>;
D
Dirk Baeumer 已提交
413
	$terminateTask(id: string): TPromise<void>;
414
	$unregisterTaskProvider(handle: number): TPromise<void>;
415 416
}

417
export interface MainThreadExtensionServiceShape extends IDisposable {
418
	$localShowMessage(severity: Severity, msg: string): void;
A
Alex Dima 已提交
419
	$onExtensionActivated(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void;
420
	$onExtensionActivationFailed(extensionId: string): void;
421
	$onExtensionRuntimeError(extensionId: string, error: SerializedError): void;
A
Alex Dima 已提交
422
	$addMessage(extensionId: string, severity: Severity, message: string): void;
423 424
}

J
Joao Moreno 已提交
425
export interface SCMProviderFeatures {
J
Joao Moreno 已提交
426 427
	hasQuickDiffProvider?: boolean;
	count?: number;
428 429 430
	commitTemplate?: string;
	acceptInputCommand?: modes.Command;
	statusBarCommands?: modes.Command[];
J
Joao Moreno 已提交
431 432 433 434
}

export interface SCMGroupFeatures {
	hideWhenEmpty?: boolean;
J
Joao Moreno 已提交
435 436
}

J
Joao Moreno 已提交
437
export type SCMRawResource = [
438
	number /*handle*/,
439
	UriComponents /*resourceUri*/,
J
Joao Moreno 已提交
440
	string[] /*icons: light, dark*/,
441
	string /*tooltip*/,
442
	boolean /*strike through*/,
443 444
	boolean /*faded*/,

J
Joao Moreno 已提交
445 446 447
	string | undefined /*source*/,
	string | undefined /*letter*/,
	ThemeColor | null /*color*/
J
Joao Moreno 已提交
448
];
449

450 451 452
export type SCMRawResourceSplice = [
	number /* start */,
	number /* delete count */,
J
Joao 已提交
453 454 455
	SCMRawResource[]
];

456 457 458 459 460
export type SCMRawResourceSplices = [
	number, /*handle*/
	SCMRawResourceSplice[]
];

461
export interface MainThreadSCMShape extends IDisposable {
462
	$registerSourceControl(handle: number, id: string, label: string, rootUri: UriComponents | undefined): void;
463 464
	$updateSourceControl(handle: number, features: SCMProviderFeatures): void;
	$unregisterSourceControl(handle: number): void;
J
Joao Moreno 已提交
465

466 467 468 469
	$registerGroup(sourceControlHandle: number, handle: number, id: string, label: string): void;
	$updateGroup(sourceControlHandle: number, handle: number, features: SCMGroupFeatures): void;
	$updateGroupLabel(sourceControlHandle: number, handle: number, label: string): void;
	$unregisterGroup(sourceControlHandle: number, handle: number): void;
J
Joao Moreno 已提交
470

471
	$spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): void;
J
Joao 已提交
472

J
Joao Moreno 已提交
473
	$setInputBoxValue(sourceControlHandle: number, value: string): void;
474
	$setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void;
475
	$setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): void;
J
Joao Moreno 已提交
476 477
}

478 479
export type DebugSessionUUID = string;

480
export interface MainThreadDebugServiceShape extends IDisposable {
A
Andre Weinand 已提交
481
	$registerDebugTypes(debugTypes: string[]);
482 483 484
	$acceptDAMessage(handle: number, message: DebugProtocol.ProtocolMessage);
	$acceptDAError(handle: number, name: string, message: string, stack: string);
	$acceptDAExit(handle: number, code: number, signal: string);
485
	$registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, hasDebugAdapterExecutable: boolean, handle: number): TPromise<any>;
486
	$unregisterDebugConfigurationProvider(handle: number): TPromise<any>;
487
	$startDebugging(folder: UriComponents | undefined, nameOrConfig: string | vscode.DebugConfiguration): TPromise<boolean>;
488
	$customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): TPromise<any>;
489
	$appendDebugConsole(value: string): TPromise<any>;
490
	$startBreakpointEvents(): TPromise<any>;
491
	$registerBreakpoints(breakpoints: (ISourceMultiBreakpointDto | IFunctionBreakpointDto)[]): TPromise<void>;
492
	$unregisterBreakpoints(breakpointIds: string[], functionBreakpointIds: string[]): TPromise<void>;
493 494
}

495 496
export interface MainThreadWindowShape extends IDisposable {
	$getWindowVisibility(): TPromise<boolean>;
497 498
}

499 500
// -- extension host

501
export interface ExtHostCommandsShape {
J
Johannes Rieken 已提交
502
	$executeContributedCommand<T>(id: string, ...args: any[]): Thenable<T>;
503
	$getContributedCommandHandlerDescriptions(): Thenable<{ [id: string]: string | ICommandHandlerDescription }>;
504 505
}

506
export interface ExtHostConfigurationShape {
507
	$acceptConfigurationChanged(data: IConfigurationData, eventData: IWorkspaceConfigurationChangeEventData): void;
508 509
}

510
export interface ExtHostDiagnosticsShape {
511 512 513

}

514
export interface ExtHostDocumentContentProvidersShape {
J
Johannes Rieken 已提交
515
	$provideTextDocumentContent(handle: number, uri: UriComponents): TPromise<string>;
516 517
}

518
export interface IModelAddedData {
519
	uri: UriComponents;
520
	versionId: number;
521 522
	lines: string[];
	EOL: string;
523 524 525
	modeId: string;
	isDirty: boolean;
}
526
export interface ExtHostDocumentsShape {
527 528 529 530
	$acceptModelModeChanged(strURL: UriComponents, oldModeId: string, newModeId: string): void;
	$acceptModelSaved(strURL: UriComponents): void;
	$acceptDirtyStateChanged(strURL: UriComponents, isDirty: boolean): void;
	$acceptModelChanged(strURL: UriComponents, e: IModelChangedEvent, isDirty: boolean): void;
531 532
}

533
export interface ExtHostDocumentSaveParticipantShape {
J
Johannes Rieken 已提交
534
	$participateInSave(resource: UriComponents, reason: SaveReason): Thenable<boolean[]>;
535 536
}

537 538
export interface ITextEditorAddData {
	id: string;
539
	documentUri: UriComponents;
540
	options: IResolvedTextEditorConfiguration;
A
Alex Dima 已提交
541
	selections: ISelection[];
542
	visibleRanges: IRange[];
543 544 545 546 547
	editorPosition: EditorPosition;
}
export interface ITextEditorPositionData {
	[id: string]: EditorPosition;
}
548 549 550
export interface IEditorPropertiesChangeData {
	options: IResolvedTextEditorConfiguration | null;
	selections: ISelectionChangeEvent | null;
551
	visibleRanges: IRange[] | null;
552 553 554 555 556 557
}
export interface ISelectionChangeEvent {
	selections: Selection[];
	source?: string;
}

558
export interface ExtHostEditorsShape {
559
	$acceptEditorPropertiesChanged(id: string, props: IEditorPropertiesChangeData): void;
560
	$acceptEditorPositionData(data: ITextEditorPositionData): void;
561 562
}

J
Johannes Rieken 已提交
563
export interface IDocumentsAndEditorsDelta {
564
	removedDocuments?: UriComponents[];
J
Johannes Rieken 已提交
565 566 567 568 569 570
	addedDocuments?: IModelAddedData[];
	removedEditors?: string[];
	addedEditors?: ITextEditorAddData[];
	newActiveEditor?: string;
}

571 572
export interface ExtHostDocumentsAndEditorsShape {
	$acceptDocumentsAndEditorsDelta(delta: IDocumentsAndEditorsDelta): void;
J
Johannes Rieken 已提交
573 574
}

575
export interface ExtHostTreeViewsShape {
576
	$getChildren(treeViewId: string, treeItemHandle?: string): TPromise<ITreeItem[]>;
S
Sandeep Somavarapu 已提交
577 578
}

579 580
export interface ExtHostWorkspaceShape {
	$acceptWorkspaceData(workspace: IWorkspaceData): void;
581
}
582

583
export interface ExtHostFileSystemShape {
J
Johannes Rieken 已提交
584
	$stat(handle: number, resource: UriComponents): TPromise<IStat>;
585 586 587 588
	$readFile(handle: number, resource: UriComponents, opts: FileOptions): TPromise<string>;
	$writeFile(handle: number, resource: UriComponents, base64Encoded: string, opts: FileOptions): TPromise<void>;
	$rename(handle: number, resource: UriComponents, target: UriComponents, opts: FileOptions): TPromise<IStat>;
	$copy(handle: number, resource: UriComponents, target: UriComponents, opts: FileOptions): TPromise<IStat>;
J
Johannes Rieken 已提交
589
	$mkdir(handle: number, resource: UriComponents): TPromise<IStat>;
590
	$readdir(handle: number, resource: UriComponents): TPromise<[string, IStat][]>;
591
	$delete(handle: number, resource: UriComponents): TPromise<void>;
592 593
	$watch(handle: number, session: number, resource: UriComponents, opts: IWatchOptions): void;
	$unwatch(handle: number, session: number): void;
594
}
595

596
export interface ExtHostSearchShape {
597
	$provideFileSearchResults(handle: number, session: number, query: string): TPromise<void>;
598
	$provideTextSearchResults(handle: number, session: number, pattern: IPatternInfo, options: { includes: string[], excludes: string[] }): TPromise<void>;
599 600
}

601 602
export interface ExtHostExtensionServiceShape {
	$activateByEvent(activationEvent: string): TPromise<void>;
603 604 605
}

export interface FileSystemEvents {
J
Johannes Rieken 已提交
606 607 608
	created: UriComponents[];
	changed: UriComponents[];
	deleted: UriComponents[];
609
}
610
export interface ExtHostFileSystemEventServiceShape {
611
	$onFileEvent(events: FileSystemEvents): void;
612 613
}

J
Johannes Rieken 已提交
614 615 616 617 618
export interface ObjectIdentifier {
	$ident: number;
}

export namespace ObjectIdentifier {
619
	export const name = '$ident';
J
Johannes Rieken 已提交
620
	export function mixin<T>(obj: T, id: number): T & ObjectIdentifier {
621
		Object.defineProperty(obj, name, { value: id, enumerable: true });
J
Johannes Rieken 已提交
622 623
		return <T & ObjectIdentifier>obj;
	}
624 625
	export function of(obj: any): number {
		return obj[name];
J
Johannes Rieken 已提交
626 627 628
	}
}

629 630
export interface ExtHostHeapServiceShape {
	$onGarbageCollection(ids: number[]): void;
631
}
632
export interface IRawColorInfo {
J
Joao Moreno 已提交
633
	color: [number, number, number, number];
634 635 636
	range: IRange;
}

637 638 639 640 641 642 643 644 645 646
export class IdObject {
	_id?: number;
	private static _n = 0;
	static mixin<T extends object>(object: T): T & IdObject {
		(<any>object)._id = IdObject._n++;
		return <any>object;
	}
}

export interface SuggestionDto extends modes.ISuggestion {
647 648 649 650
	_id: number;
	_parentId: number;
}

651 652
export interface SuggestResultDto extends IdObject {
	suggestions: SuggestionDto[];
653 654 655
	incomplete?: boolean;
}

656 657 658
export interface LocationDto {
	uri: UriComponents;
	range: IRange;
659 660
}

661 662 663 664 665 666 667 668 669 670 671
export interface SymbolInformationDto extends IdObject {
	name: string;
	containerName?: string;
	kind: modes.SymbolKind;
	location: LocationDto;
}

export interface WorkspaceSymbolsDto extends IdObject {
	symbols: SymbolInformationDto[];
}

672 673 674 675 676 677
export interface ResourceFileEditDto {
	oldUri: UriComponents;
	newUri: UriComponents;
}

export interface ResourceTextEditDto {
678
	resource: UriComponents;
679 680
	modelVersionId?: number;
	edits: modes.TextEdit[];
681 682
}

683
export interface WorkspaceEditDto {
684 685 686
	edits: (ResourceFileEditDto | ResourceTextEditDto)[];

	// todo@joh reject should go into rename
687 688 689
	rejectReason?: string;
}

690 691 692 693 694 695 696 697 698 699 700 701 702 703
export function reviveWorkspaceEditDto(data: WorkspaceEditDto): modes.WorkspaceEdit {
	if (data && data.edits) {
		for (const edit of data.edits) {
			if (typeof (<ResourceTextEditDto>edit).resource === 'object') {
				(<ResourceTextEditDto>edit).resource = URI.revive((<ResourceTextEditDto>edit).resource);
			} else {
				(<ResourceFileEditDto>edit).newUri = URI.revive((<ResourceFileEditDto>edit).newUri);
				(<ResourceFileEditDto>edit).oldUri = URI.revive((<ResourceFileEditDto>edit).oldUri);
			}
		}
	}
	return <modes.WorkspaceEdit>data;
}

704 705
export interface CodeActionDto {
	title: string;
706
	edit?: WorkspaceEditDto;
707 708
	diagnostics?: IMarkerData[];
	command?: modes.Command;
J
Johannes Rieken 已提交
709
	kind?: string;
710
}
711

712
export interface ExtHostLanguageFeaturesShape {
713
	$provideDocumentSymbols(handle: number, resource: UriComponents): TPromise<SymbolInformationDto[]>;
714 715
	$provideCodeLenses(handle: number, resource: UriComponents): TPromise<modes.ICodeLensSymbol[]>;
	$resolveCodeLens(handle: number, resource: UriComponents, symbol: modes.ICodeLensSymbol): TPromise<modes.ICodeLensSymbol>;
716 717 718
	$provideDefinition(handle: number, resource: UriComponents, position: IPosition): TPromise<LocationDto | LocationDto[]>;
	$provideImplementation(handle: number, resource: UriComponents, position: IPosition): TPromise<LocationDto | LocationDto[]>;
	$provideTypeDefinition(handle: number, resource: UriComponents, position: IPosition): TPromise<LocationDto | LocationDto[]>;
719 720
	$provideHover(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.Hover>;
	$provideDocumentHighlights(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.DocumentHighlight[]>;
721
	$provideReferences(handle: number, resource: UriComponents, position: IPosition, context: modes.ReferenceContext): TPromise<LocationDto[]>;
M
Matt Bierner 已提交
722
	$provideCodeActions(handle: number, resource: UriComponents, range: IRange, context: modes.CodeActionContext): TPromise<CodeActionDto[]>;
723 724 725
	$provideDocumentFormattingEdits(handle: number, resource: UriComponents, options: modes.FormattingOptions): TPromise<ISingleEditOperation[]>;
	$provideDocumentRangeFormattingEdits(handle: number, resource: UriComponents, range: IRange, options: modes.FormattingOptions): TPromise<ISingleEditOperation[]>;
	$provideOnTypeFormattingEdits(handle: number, resource: UriComponents, position: IPosition, ch: string, options: modes.FormattingOptions): TPromise<ISingleEditOperation[]>;
726 727
	$provideWorkspaceSymbols(handle: number, search: string): TPromise<WorkspaceSymbolsDto>;
	$resolveWorkspaceSymbol(handle: number, symbol: SymbolInformationDto): TPromise<SymbolInformationDto>;
728
	$releaseWorkspaceSymbols(handle: number, id: number): void;
729
	$provideRenameEdits(handle: number, resource: UriComponents, position: IPosition, newName: string): TPromise<WorkspaceEditDto>;
730
	$resolveRenameLocation(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.RenameLocation>;
731
	$provideCompletionItems(handle: number, resource: UriComponents, position: IPosition, context: modes.SuggestContext): TPromise<SuggestResultDto>;
732
	$resolveCompletionItem(handle: number, resource: UriComponents, position: IPosition, suggestion: modes.ISuggestion): TPromise<modes.ISuggestion>;
733
	$releaseCompletionItems(handle: number, id: number): void;
734 735
	$provideSignatureHelp(handle: number, resource: UriComponents, position: IPosition): TPromise<modes.SignatureHelp>;
	$provideDocumentLinks(handle: number, resource: UriComponents): TPromise<modes.ILink[]>;
736
	$resolveDocumentLink(handle: number, link: modes.ILink): TPromise<modes.ILink>;
737 738
	$provideDocumentColors(handle: number, resource: UriComponents): TPromise<IRawColorInfo[]>;
	$provideColorPresentations(handle: number, resource: UriComponents, colorInfo: IRawColorInfo): TPromise<modes.IColorPresentation[]>;
739
	$provideFoldingRanges(handle: number, resource: UriComponents, context: modes.FoldingContext): TPromise<modes.FoldingRange[]>;
740 741
}

742 743 744
export interface ExtHostQuickOpenShape {
	$onItemSelected(handle: number): void;
	$validateInput(input: string): TPromise<string>;
745 746
}

747 748 749 750 751 752 753 754
export interface ShellLaunchConfigDto {
	name?: string;
	executable?: string;
	args?: string[] | string;
	cwd?: string;
	env?: { [key: string]: string };
}

755 756
export interface ExtHostTerminalServiceShape {
	$acceptTerminalClosed(id: number): void;
757
	$acceptTerminalOpened(id: number, name: string): void;
758
	$acceptTerminalProcessId(id: number, processId: number): void;
D
Daniel Imms 已提交
759
	$acceptTerminalProcessData(id: number, data: string);
760
	$createProcess(id: number, shellLaunchConfig: ShellLaunchConfigDto, cols: number, rows: number): void;
D
Daniel Imms 已提交
761 762 763
	$acceptProcessInput(id: number, data: string): void;
	$acceptProcessResize(id: number, cols: number, rows: number): void;
	$acceptProcessShutdown(id: number): void;
764 765
}

766
export interface ExtHostSCMShape {
767
	$provideOriginalResource(sourceControlHandle: number, uri: UriComponents): TPromise<UriComponents>;
J
Joao Moreno 已提交
768
	$onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise<void>;
769
	$executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise<void>;
770
	$validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined>;
J
Joao Moreno 已提交
771 772
}

773 774
export interface ExtHostTaskShape {
	$provideTasks(handle: number): TPromise<TaskSet>;
775 776
	$taskStarted(execution: TaskExecutionDTO): void;
	$taskEnded(execution: TaskExecutionDTO): void;
777 778
}

779 780
export interface IBreakpointDto {
	type: string;
781
	id?: string;
782 783 784
	enabled: boolean;
	condition?: string;
	hitCondition?: string;
785 786 787 788 789
	logMessage?: string;
}

export interface IFunctionBreakpointDto extends IBreakpointDto {
	type: 'function';
790
	functionName: string;
791 792
}

793
export interface ISourceBreakpointDto extends IBreakpointDto {
794
	type: 'source';
795
	uri: UriComponents;
796 797
	line: number;
	character: number;
798 799
}

800 801 802 803
export interface IBreakpointsDeltaDto {
	added?: (ISourceBreakpointDto | IFunctionBreakpointDto)[];
	removed?: string[];
	changed?: (ISourceBreakpointDto | IFunctionBreakpointDto)[];
804 805
}

806 807 808 809
export interface ISourceMultiBreakpointDto {
	type: 'sourceMulti';
	uri: UriComponents;
	lines: {
810
		id: string;
811 812 813
		enabled: boolean;
		condition?: string;
		hitCondition?: string;
814
		logMessage?: string;
815 816 817
		line: number;
		character: number;
	}[];
818 819
}

820
export interface ExtHostDebugServiceShape {
A
Andre Weinand 已提交
821
	$substituteVariables(folder: UriComponents | undefined, config: IConfig): TPromise<IConfig>;
822
	$runInTerminal(args: DebugProtocol.RunInTerminalRequestArguments, config: ITerminalSettings): TPromise<void>;
823 824 825
	$startDASession(handle: number, debugType: string, adapterExecutableInfo: IAdapterExecutable | null): TPromise<void>;
	$stopDASession(handle: number): TPromise<void>;
	$sendDAMessage(handle: number, message: DebugProtocol.ProtocolMessage): TPromise<void>;
826 827
	$resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig): TPromise<IConfig>;
	$provideDebugConfigurations(handle: number, folder: UriComponents | undefined): TPromise<IConfig[]>;
828
	$debugAdapterExecutable(handle: number, folder: UriComponents | undefined): TPromise<IAdapterExecutable>;
829 830 831 832
	$acceptDebugSessionStarted(id: DebugSessionUUID, type: string, name: string): void;
	$acceptDebugSessionTerminated(id: DebugSessionUUID, type: string, name: string): void;
	$acceptDebugSessionActiveChanged(id: DebugSessionUUID | undefined, type?: string, name?: string): void;
	$acceptDebugSessionCustomEvent(id: DebugSessionUUID, type: string, name: string, event: any): void;
833
	$acceptBreakpointsDelta(delat: IBreakpointsDeltaDto): void;
834 835
}

836

837 838 839 840 841 842
export interface DecorationRequest {
	readonly id: number;
	readonly handle: number;
	readonly uri: UriComponents;
}

843
export type DecorationData = [number, boolean, string, string, ThemeColor, string];
844
export type DecorationReply = { [id: number]: DecorationData };
845 846

export interface ExtHostDecorationsShape {
847
	$provideDecorations(requests: DecorationRequest[]): TPromise<DecorationReply>;
848 849
}

850 851
export interface ExtHostWindowShape {
	$onDidChangeWindowFocus(value: boolean): void;
852 853
}

S
Sandeep Somavarapu 已提交
854
export interface ExtHostLogServiceShape {
855
	$setLevel(level: LogLevel);
S
Sandeep Somavarapu 已提交
856 857
}

858 859 860 861
export interface ExtHostProgressShape {
	$acceptProgressCanceled(handle: number): void;
}

862 863 864
// --- proxy identifiers

export const MainContext = {
865
	MainThreadCommands: <ProxyIdentifier<MainThreadCommandsShape>>createMainId<MainThreadCommandsShape>('MainThreadCommands'),
866
	MainThreadConfiguration: createMainId<MainThreadConfigurationShape>('MainThreadConfiguration'),
867
	MainThreadDebugService: createMainId<MainThreadDebugServiceShape>('MainThreadDebugService'),
868 869 870 871
	MainThreadDecorations: createMainId<MainThreadDecorationsShape>('MainThreadDecorations'),
	MainThreadDiagnostics: createMainId<MainThreadDiagnosticsShape>('MainThreadDiagnostics'),
	MainThreadDialogs: createMainId<MainThreadDiaglogsShape>('MainThreadDiaglogs'),
	MainThreadDocuments: createMainId<MainThreadDocumentsShape>('MainThreadDocuments'),
872
	MainThreadDocumentContentProviders: createMainId<MainThreadDocumentContentProvidersShape>('MainThreadDocumentContentProviders'),
873
	MainThreadTextEditors: createMainId<MainThreadTextEditorsShape>('MainThreadTextEditors'),
874 875
	MainThreadErrors: createMainId<MainThreadErrorsShape>('MainThreadErrors'),
	MainThreadTreeViews: createMainId<MainThreadTreeViewsShape>('MainThreadTreeViews'),
876
	MainThreadLanguageFeatures: createMainId<MainThreadLanguageFeaturesShape>('MainThreadLanguageFeatures'),
877
	MainThreadLanguages: createMainId<MainThreadLanguagesShape>('MainThreadLanguages'),
878
	MainThreadMessageService: createMainId<MainThreadMessageServiceShape>('MainThreadMessageService'),
879 880
	MainThreadOutputService: createMainId<MainThreadOutputServiceShape>('MainThreadOutputService'),
	MainThreadProgress: createMainId<MainThreadProgressShape>('MainThreadProgress'),
881
	MainThreadQuickOpen: createMainId<MainThreadQuickOpenShape>('MainThreadQuickOpen'),
882
	MainThreadStatusBar: createMainId<MainThreadStatusBarShape>('MainThreadStatusBar'),
883
	MainThreadStorage: createMainId<MainThreadStorageShape>('MainThreadStorage'),
884
	MainThreadTelemetry: createMainId<MainThreadTelemetryShape>('MainThreadTelemetry'),
885
	MainThreadTerminalService: createMainId<MainThreadTerminalServiceShape>('MainThreadTerminalService'),
M
Matt Bierner 已提交
886
	MainThreadWebviews: createMainId<MainThreadWebviewsShape>('MainThreadWebviews'),
J
Joao Moreno 已提交
887
	MainThreadUrls: createMainId<MainThreadUrlsShape>('MainThreadUrls'),
888
	MainThreadWorkspace: createMainId<MainThreadWorkspaceShape>('MainThreadWorkspace'),
889
	MainThreadFileSystem: createMainId<MainThreadFileSystemShape>('MainThreadFileSystem'),
890
	MainThreadExtensionService: createMainId<MainThreadExtensionServiceShape>('MainThreadExtensionService'),
J
Joao Moreno 已提交
891
	MainThreadSCM: createMainId<MainThreadSCMShape>('MainThreadSCM'),
892
	MainThreadSearch: createMainId<MainThreadSearchShape>('MainThreadSearch'),
893
	MainThreadTask: createMainId<MainThreadTaskShape>('MainThreadTask'),
894
	MainThreadWindow: createMainId<MainThreadWindowShape>('MainThreadWindow'),
895 896 897
};

export const ExtHostContext = {
898
	ExtHostCommands: createExtId<ExtHostCommandsShape>('ExtHostCommands'),
899
	ExtHostConfiguration: createExtId<ExtHostConfigurationShape>('ExtHostConfiguration'),
900
	ExtHostDiagnostics: createExtId<ExtHostDiagnosticsShape>('ExtHostDiagnostics'),
901
	ExtHostDebugService: createExtId<ExtHostDebugServiceShape>('ExtHostDebugService'),
J
Johannes Rieken 已提交
902
	ExtHostDecorations: createExtId<ExtHostDecorationsShape>('ExtHostDecorations'),
903
	ExtHostDocumentsAndEditors: createExtId<ExtHostDocumentsAndEditorsShape>('ExtHostDocumentsAndEditors'),
904
	ExtHostDocuments: createExtId<ExtHostDocumentsShape>('ExtHostDocuments'),
J
Johannes Rieken 已提交
905
	ExtHostDocumentContentProviders: createExtId<ExtHostDocumentContentProvidersShape>('ExtHostDocumentContentProviders'),
J
Johannes Rieken 已提交
906
	ExtHostDocumentSaveParticipant: createExtId<ExtHostDocumentSaveParticipantShape>('ExtHostDocumentSaveParticipant'),
J
Johannes Rieken 已提交
907
	ExtHostEditors: createExtId<ExtHostEditorsShape>('ExtHostEditors'),
908
	ExtHostTreeViews: createExtId<ExtHostTreeViewsShape>('ExtHostTreeViews'),
J
Johannes Rieken 已提交
909
	ExtHostFileSystem: createExtId<ExtHostFileSystemShape>('ExtHostFileSystem'),
J
Johannes Rieken 已提交
910
	ExtHostFileSystemEventService: createExtId<ExtHostFileSystemEventServiceShape>('ExtHostFileSystemEventService'),
911
	ExtHostHeapService: createExtId<ExtHostHeapServiceShape>('ExtHostHeapMonitor'),
912
	ExtHostLanguageFeatures: createExtId<ExtHostLanguageFeaturesShape>('ExtHostLanguageFeatures'),
913 914
	ExtHostQuickOpen: createExtId<ExtHostQuickOpenShape>('ExtHostQuickOpen'),
	ExtHostExtensionService: createExtId<ExtHostExtensionServiceShape>('ExtHostExtensionService'),
915
	ExtHostLogService: createExtId<ExtHostLogServiceShape>('ExtHostLogService'),
916
	ExtHostTerminalService: createExtId<ExtHostTerminalServiceShape>('ExtHostTerminalService'),
J
Joao Moreno 已提交
917
	ExtHostSCM: createExtId<ExtHostSCMShape>('ExtHostSCM'),
918
	ExtHostSearch: createExtId<ExtHostSearchShape>('ExtHostSearch'),
919
	ExtHostTask: createExtId<ExtHostTaskShape>('ExtHostTask'),
920
	ExtHostWorkspace: createExtId<ExtHostWorkspaceShape>('ExtHostWorkspace'),
921
	ExtHostWindow: createExtId<ExtHostWindowShape>('ExtHostWindow'),
922
	ExtHostWebviews: createExtId<ExtHostWebviewsShape>('ExtHostWebviews'),
J
Joao Moreno 已提交
923
	ExtHostUrls: createExtId<ExtHostUrlsShape>('ExtHostUrls'),
924
	ExtHostProgress: createMainId<ExtHostProgressShape>('ExtHostProgress')
925
};