/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ 'use strict'; import { createMainContextProxyIdentifier as createMainId, createExtHostContextProxyIdentifier as createExtId, ProxyIdentifier } from 'vs/workbench/services/thread/common/threadService'; import * as vscode from 'vscode'; import URI from 'vs/base/common/uri'; import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import { IMarkerData } from 'vs/platform/markers/common/markers'; import { Position as EditorPosition } from 'vs/platform/editor/common/editor'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { StatusbarAlignment as MainThreadStatusBarAlignment } from 'vs/platform/statusbar/common/statusbar'; import { ITelemetryInfo } from 'vs/platform/telemetry/common/telemetry'; import { ICommandHandlerDescription } from 'vs/platform/commands/common/commands'; import { IProgressOptions, IProgressStep } from 'vs/platform/progress/common/progress'; import * as editorCommon from 'vs/editor/common/editorCommon'; import * as modes from 'vs/editor/common/modes'; import { ITextSource } from 'vs/editor/common/model/textSource'; import { IConfigurationData, ConfigurationTarget, IConfigurationModel } from 'vs/platform/configuration/common/configuration'; import { IPickOpenEntry, IPickOptions } from 'vs/platform/quickOpen/common/quickOpen'; import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; import { TextEditorCursorStyle } from 'vs/editor/common/config/editorOptions'; import { EndOfLine, TextEditorLineNumbersStyle } from 'vs/workbench/api/node/extHostTypes'; import { TaskSet } from 'vs/workbench/parts/tasks/common/tasks'; import { IModelChangedEvent } from 'vs/editor/common/model/mirrorModel'; import { IPosition } from 'vs/editor/common/core/position'; import { IRange } from 'vs/editor/common/core/range'; import { ISelection, Selection } from 'vs/editor/common/core/selection'; import { ITreeItem } from 'vs/workbench/common/views'; import { ThemeColor } from 'vs/platform/theme/common/themeService'; import { IDisposable } from 'vs/base/common/lifecycle'; import { SerializedError } from 'vs/base/common/errors'; import { IWorkspaceFolderData } from 'vs/platform/workspace/common/workspace'; import { IStat, IFileChange } from 'vs/platform/files/common/files'; import { ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; import { ParsedArgs } from 'vs/platform/environment/common/environment'; export interface IEnvironment { isExtensionDevelopmentDebug: boolean; enableProposedApiForAll: boolean; enableProposedApiFor: string | string[]; appRoot: string; appSettingsHome: string; disableExtensions: boolean; userExtensionsHome: string; extensionDevelopmentPath: string; extensionTestsPath: string; } export interface IWorkspaceData { id: string; name: string; folders: IWorkspaceFolderData[]; } export interface IInitData { parentPid: number; environment: IEnvironment; workspace: IWorkspaceData; extensions: IExtensionDescription[]; configuration: IConfigurationInitData; telemetryInfo: ITelemetryInfo; windowId: number; args: ParsedArgs; execPath: string; } export interface IConfigurationInitData extends IConfigurationData { configurationScopes: ConfigurationScope[]; } export interface IWorkspaceConfigurationChangeEventData { changedConfiguration: IConfigurationModel; changedConfigurationByResource: { [folder: string]: IConfigurationModel }; } export interface IExtHostContext { /** * Returns a proxy to an object addressable/named in the extension host process. */ get(identifier: ProxyIdentifier): T; /** * Register manually created instance. */ set(identifier: ProxyIdentifier, instance: R): R; } export interface IMainContext { /** * Returns a proxy to an object addressable/named in the main/renderer process. */ get(identifier: ProxyIdentifier): T; } // --- main thread export interface MainThreadCommandsShape extends IDisposable { $registerCommand(id: string): TPromise; $unregisterCommand(id: string): TPromise; $executeCommand(id: string, args: any[]): Thenable; $getCommands(): Thenable; } export interface MainThreadConfigurationShape extends IDisposable { $updateConfigurationOption(target: ConfigurationTarget, key: string, value: any, resource: URI): TPromise; $removeConfigurationOption(target: ConfigurationTarget, key: string, resource: URI): TPromise; } export interface MainThreadDiagnosticsShape extends IDisposable { $changeMany(owner: string, entries: [URI, IMarkerData[]][]): TPromise; $clear(owner: string): TPromise; } export interface MainThreadDialogOpenOptions { defaultUri?: URI; openLabel?: string; canSelectFiles?: boolean; canSelectFolders?: boolean; canSelectMany?: boolean; filters?: { [name: string]: string[] }; } export interface MainThreadDialogSaveOptions { defaultUri?: URI; saveLabel?: string; filters?: { [name: string]: string[] }; } export interface MainThreadDiaglogsShape extends IDisposable { $showOpenDialog(options: MainThreadDialogOpenOptions): TPromise; $showSaveDialog(options: MainThreadDialogSaveOptions): TPromise; } export interface MainThreadDecorationsShape extends IDisposable { $registerDecorationProvider(handle: number, label: string): void; $unregisterDecorationProvider(handle: number): void; $onDidChange(handle: number, resources: URI[]): void; } export interface MainThreadDocumentContentProvidersShape extends IDisposable { $registerTextContentProvider(handle: number, scheme: string): void; $unregisterTextContentProvider(handle: number): void; $onVirtualDocumentChange(uri: URI, value: ITextSource): void; } export interface MainThreadDocumentsShape extends IDisposable { $tryCreateDocument(options?: { language?: string; content?: string; }): TPromise; $tryOpenDocument(uri: URI): TPromise; $trySaveDocument(uri: URI): TPromise; } export interface ISelectionChangeEvent { selections: Selection[]; source?: string; } 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; } export interface ITextDocumentShowOptions { position?: EditorPosition; preserveFocus?: boolean; pinned?: boolean; selection?: IRange; } export interface IWorkspaceResourceEdit { resource: URI; modelVersionId?: number; edits: { range?: IRange; newText: string; newEol?: editorCommon.EndOfLineSequence; }[]; } export interface MainThreadEditorsShape extends IDisposable { $tryShowTextDocument(resource: URI, options: ITextDocumentShowOptions): TPromise; $registerTextEditorDecorationType(key: string, options: editorCommon.IDecorationRenderOptions): void; $removeTextEditorDecorationType(key: string): void; $tryShowEditor(id: string, position: EditorPosition): TPromise; $tryHideEditor(id: string): TPromise; $trySetOptions(id: string, options: ITextEditorConfigurationUpdate): TPromise; $trySetDecorations(id: string, key: string, ranges: editorCommon.IDecorationOptions[]): TPromise; $trySetDecorationsFast(id: string, key: string, ranges: string): TPromise; $tryRevealRange(id: string, range: IRange, revealType: TextEditorRevealType): TPromise; $trySetSelections(id: string, selections: ISelection[]): TPromise; $tryApplyEdits(id: string, modelVersionId: number, edits: editorCommon.ISingleEditOperation[], opts: IApplyEditsOptions): TPromise; $tryApplyWorkspaceEdit(workspaceResourceEdits: IWorkspaceResourceEdit[]): TPromise; $tryInsertSnippet(id: string, template: string, selections: IRange[], opts: IUndoStopOptions): TPromise; $getDiffInformation(id: string): TPromise; } export interface MainThreadTreeViewsShape extends IDisposable { $registerView(treeViewId: string): void; $refresh(treeViewId: string, itemsToRefresh?: { [treeItemHandle: string]: ITreeItem }): void; } export interface MainThreadErrorsShape extends IDisposable { $onUnexpectedError(err: any | SerializedError): void; } export interface MainThreadLanguageFeaturesShape extends IDisposable { $unregister(handle: number): TPromise; $registerOutlineSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerCodeLensSupport(handle: number, selector: vscode.DocumentSelector, eventHandle: number): TPromise; $emitCodeLensEvent(eventHandle: number, event?: any): TPromise; $registerDeclaractionSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerImplementationSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerTypeDefinitionSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerHoverProvider(handle: number, selector: vscode.DocumentSelector): TPromise; $registerDocumentHighlightProvider(handle: number, selector: vscode.DocumentSelector): TPromise; $registerReferenceSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerQuickFixSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerDocumentFormattingSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerRangeFormattingSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerOnTypeFormattingSupport(handle: number, selector: vscode.DocumentSelector, autoFormatTriggerCharacters: string[]): TPromise; $registerNavigateTypeSupport(handle: number): TPromise; $registerRenameSupport(handle: number, selector: vscode.DocumentSelector): TPromise; $registerSuggestSupport(handle: number, selector: vscode.DocumentSelector, triggerCharacters: string[], supportsResolveDetails: boolean): TPromise; $registerSignatureHelpProvider(handle: number, selector: vscode.DocumentSelector, triggerCharacter: string[]): TPromise; $registerDocumentLinkProvider(handle: number, selector: vscode.DocumentSelector): TPromise; $registerDocumentColorProvider(handle: number, selector: vscode.DocumentSelector): TPromise; $setLanguageConfiguration(handle: number, languageId: string, configuration: vscode.LanguageConfiguration): TPromise; } export interface MainThreadLanguagesShape extends IDisposable { $getLanguages(): TPromise; } export interface MainThreadMessageOptions { extension?: IExtensionDescription; modal?: boolean; } export interface MainThreadMessageServiceShape extends IDisposable { $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Thenable; } export interface MainThreadOutputServiceShape extends IDisposable { $append(channelId: string, label: string, value: string): TPromise; $clear(channelId: string, label: string): TPromise; $dispose(channelId: string, label: string): TPromise; $reveal(channelId: string, label: string, preserveFocus: boolean): TPromise; $close(channelId: string): TPromise; } export interface MainThreadProgressShape extends IDisposable { $startProgress(handle: number, options: IProgressOptions): void; $progressReport(handle: number, message: IProgressStep): void; $progressEnd(handle: number): void; } export interface MainThreadTerminalServiceShape extends IDisposable { $createTerminal(name?: string, shellPath?: string, shellArgs?: string[], env?: { [key: string]: string }, waitOnExit?: boolean): TPromise; $dispose(terminalId: number): void; $hide(terminalId: number): void; $sendText(terminalId: number, text: string, addNewLine: boolean): void; $show(terminalId: number, preserveFocus: boolean): void; } export interface MyQuickPickItems extends IPickOpenEntry { handle: number; } export interface MainThreadQuickOpenShape extends IDisposable { $show(options: IPickOptions): TPromise; $setItems(items: MyQuickPickItems[]): TPromise; $setError(error: Error): TPromise; $input(options: vscode.InputBoxOptions, validateInput: boolean): TPromise; } export interface MainThreadStatusBarShape extends IDisposable { $setEntry(id: number, extensionId: string, text: string, tooltip: string, command: string, color: string | ThemeColor, alignment: MainThreadStatusBarAlignment, priority: number): void; $dispose(id: number): void; } export interface MainThreadStorageShape extends IDisposable { $getValue(shared: boolean, key: string): TPromise; $setValue(shared: boolean, key: string, value: any): TPromise; } export interface MainThreadTelemetryShape extends IDisposable { $publicLog(eventName: string, data?: any): void; } export interface MainThreadWorkspaceShape extends IDisposable { $startSearch(includePattern: string, includeFolder: string, excludePattern: string, maxResults: number, requestId: number): Thenable; $cancelSearch(requestId: number): Thenable; $saveAll(includeUntitled?: boolean): Thenable; } export interface MainThreadFileSystemShape extends IDisposable { $registerFileSystemProvider(handle: number, scheme: string): void; $unregisterFileSystemProvider(handle: number): void; $onDidAddFileSystemRoot(root: URI): void; $onFileSystemChange(handle: number, resource: IFileChange[]): void; $reportFileChunk(handle: number, resource: URI, chunk: number[] | null): void; $handleSearchProgress(handle: number, session: number, resource: URI): void; } export interface MainThreadTaskShape extends IDisposable { $registerTaskProvider(handle: number): TPromise; $unregisterTaskProvider(handle: number): TPromise; } export interface MainThreadExtensionServiceShape extends IDisposable { $localShowMessage(severity: Severity, msg: string): void; $onExtensionActivated(extensionId: string, startup: boolean, codeLoadingTime: number, activateCallTime: number, activateResolvedTime: number, activationEvent: string): void; $onExtensionActivationFailed(extensionId: string): void; $onExtensionRuntimeError(extensionId: string, error: SerializedError): void; $addMessage(extensionId: string, severity: Severity, message: string): void; } export interface SCMProviderFeatures { hasQuickDiffProvider?: boolean; count?: number; commitTemplate?: string; acceptInputCommand?: modes.Command; statusBarCommands?: modes.Command[]; } export interface SCMGroupFeatures { hideWhenEmpty?: boolean; } export type SCMRawResource = [ number /*handle*/, string /*resourceUri*/, string[] /*icons: light, dark*/, string /*tooltip*/, boolean /*strike through*/, boolean /*faded*/, string | undefined /*source*/, string | undefined /*letter*/, ThemeColor | null /*color*/ ]; export type SCMRawResourceSplice = [ number /* start */, number /* delete count */, SCMRawResource[] ]; export type SCMRawResourceSplices = [ number, /*handle*/ SCMRawResourceSplice[] ]; export interface MainThreadSCMShape extends IDisposable { $registerSourceControl(handle: number, id: string, label: string, rootUri: string | undefined): void; $updateSourceControl(handle: number, features: SCMProviderFeatures): void; $unregisterSourceControl(handle: number): void; $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; $spliceResourceStates(sourceControlHandle: number, splices: SCMRawResourceSplices[]): void; $setInputBoxValue(sourceControlHandle: number, value: string): void; $setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void; } export type DebugSessionUUID = string; export interface MainThreadDebugServiceShape extends IDisposable { $registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, handle: number): TPromise; $unregisterDebugConfigurationProvider(handle: number): TPromise; $startDebugging(folder: URI | undefined, nameOrConfig: string | vscode.DebugConfiguration): TPromise; $customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): TPromise; $appendDebugConsole(value: string): TPromise; $startBreakpointEvents(): TPromise; } export interface MainThreadWindowShape extends IDisposable { $getWindowVisibility(): TPromise; } // -- extension host export interface ExtHostCommandsShape { $executeContributedCommand(id: string, ...args: any[]): Thenable; $getContributedCommandHandlerDescriptions(): Thenable<{ [id: string]: string | ICommandHandlerDescription }>; } export interface ExtHostConfigurationShape { $acceptConfigurationChanged(data: IConfigurationData, eventData: IWorkspaceConfigurationChangeEventData): void; } export interface ExtHostDiagnosticsShape { } export interface ExtHostDocumentContentProvidersShape { $provideTextDocumentContent(handle: number, uri: URI): TPromise; } export interface IModelAddedData { url: URI; versionId: number; lines: string[]; EOL: string; modeId: string; isDirty: boolean; } export interface ExtHostDocumentsShape { $acceptModelModeChanged(strURL: string, oldModeId: string, newModeId: string): void; $acceptModelSaved(strURL: string): void; $acceptDirtyStateChanged(strURL: string, isDirty: boolean): void; $acceptModelChanged(strURL: string, e: IModelChangedEvent, isDirty: boolean): void; } export interface ExtHostDocumentSaveParticipantShape { $participateInSave(resource: URI, reason: SaveReason): TPromise; } export interface ITextEditorAddData { id: string; document: URI; options: IResolvedTextEditorConfiguration; selections: ISelection[]; editorPosition: EditorPosition; } export interface ITextEditorPositionData { [id: string]: EditorPosition; } export interface ExtHostEditorsShape { $acceptOptionsChanged(id: string, opts: IResolvedTextEditorConfiguration): void; $acceptSelectionsChanged(id: string, event: ISelectionChangeEvent): void; $acceptEditorPositionData(data: ITextEditorPositionData): void; } export interface IDocumentsAndEditorsDelta { removedDocuments?: string[]; addedDocuments?: IModelAddedData[]; removedEditors?: string[]; addedEditors?: ITextEditorAddData[]; newActiveEditor?: string; } export interface ExtHostDocumentsAndEditorsShape { $acceptDocumentsAndEditorsDelta(delta: IDocumentsAndEditorsDelta): void; } export interface ExtHostTreeViewsShape { $getElements(treeViewId: string): TPromise; $getChildren(treeViewId: string, treeItemHandle: string): TPromise; } export interface ExtHostWorkspaceShape { $acceptWorkspaceData(workspace: IWorkspaceData): void; } export interface ExtHostFileSystemShape { $utimes(handle: number, resource: URI, mtime: number, atime: number): TPromise; $stat(handle: number, resource: URI): TPromise; $read(handle: number, offset: number, count: number, resource: URI): TPromise; $write(handle: number, resource: URI, content: number[]): TPromise; $unlink(handle: number, resource: URI): TPromise; $move(handle: number, resource: URI, target: URI): TPromise; $mkdir(handle: number, resource: URI): TPromise; $readdir(handle: number, resource: URI): TPromise<[URI, IStat][]>; $rmdir(handle: number, resource: URI): TPromise; $fileFiles(handle: number, session: number, query: string): TPromise; } export interface ExtHostExtensionServiceShape { $activateByEvent(activationEvent: string): TPromise; } export interface FileSystemEvents { created: URI[]; changed: URI[]; deleted: URI[]; } export interface ExtHostFileSystemEventServiceShape { $onFileEvent(events: FileSystemEvents): void; } export interface ObjectIdentifier { $ident: number; } export namespace ObjectIdentifier { export const name = '$ident'; export function mixin(obj: T, id: number): T & ObjectIdentifier { Object.defineProperty(obj, name, { value: id, enumerable: true }); return obj; } export function of(obj: any): number { return obj[name]; } } export interface ExtHostHeapServiceShape { $onGarbageCollection(ids: number[]): void; } export interface IRawColorInfo { color: [number, number, number, number]; range: IRange; } export interface IExtHostSuggestion extends modes.ISuggestion { _id: number; _parentId: number; } export interface IExtHostSuggestResult { _id: number; suggestions: IExtHostSuggestion[]; incomplete?: boolean; } export interface IdObject { _id: number; } export namespace IdObject { let n = 0; export function mixin(object: T): T & IdObject { (object)._id = n++; return object; } } export type IWorkspaceSymbol = IdObject & modes.SymbolInformation; export interface IWorkspaceSymbols extends IdObject { symbols: IWorkspaceSymbol[]; } export interface ExtHostLanguageFeaturesShape { $provideDocumentSymbols(handle: number, resource: URI): TPromise; $provideCodeLenses(handle: number, resource: URI): TPromise; $resolveCodeLens(handle: number, resource: URI, symbol: modes.ICodeLensSymbol): TPromise; $provideDefinition(handle: number, resource: URI, position: IPosition): TPromise; $provideImplementation(handle: number, resource: URI, position: IPosition): TPromise; $provideTypeDefinition(handle: number, resource: URI, position: IPosition): TPromise; $provideHover(handle: number, resource: URI, position: IPosition): TPromise; $provideDocumentHighlights(handle: number, resource: URI, position: IPosition): TPromise; $provideReferences(handle: number, resource: URI, position: IPosition, context: modes.ReferenceContext): TPromise; $provideCodeActions(handle: number, resource: URI, range: IRange): TPromise; $provideDocumentFormattingEdits(handle: number, resource: URI, options: modes.FormattingOptions): TPromise; $provideDocumentRangeFormattingEdits(handle: number, resource: URI, range: IRange, options: modes.FormattingOptions): TPromise; $provideOnTypeFormattingEdits(handle: number, resource: URI, position: IPosition, ch: string, options: modes.FormattingOptions): TPromise; $provideWorkspaceSymbols(handle: number, search: string): TPromise; $resolveWorkspaceSymbol(handle: number, symbol: modes.SymbolInformation): TPromise; $releaseWorkspaceSymbols(handle: number, id: number): void; $provideRenameEdits(handle: number, resource: URI, position: IPosition, newName: string): TPromise; $provideCompletionItems(handle: number, resource: URI, position: IPosition, context: modes.SuggestContext): TPromise; $resolveCompletionItem(handle: number, resource: URI, position: IPosition, suggestion: modes.ISuggestion): TPromise; $releaseCompletionItems(handle: number, id: number): void; $provideSignatureHelp(handle: number, resource: URI, position: IPosition): TPromise; $provideDocumentLinks(handle: number, resource: URI): TPromise; $resolveDocumentLink(handle: number, link: modes.ILink): TPromise; $provideDocumentColors(handle: number, resource: URI): TPromise; $provideColorPresentations(handle: number, resource: URI, colorInfo: IRawColorInfo): TPromise; } export interface ExtHostQuickOpenShape { $onItemSelected(handle: number): void; $validateInput(input: string): TPromise; } export interface ExtHostTerminalServiceShape { $acceptTerminalClosed(id: number): void; $acceptTerminalProcessId(id: number, processId: number): void; } export interface ExtHostSCMShape { $provideOriginalResource(sourceControlHandle: number, uri: URI): TPromise; $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise; $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise; } export interface ExtHostTaskShape { $provideTasks(handle: number): TPromise; } export interface IBreakpointData { type: 'source' | 'function'; id: string; enabled: boolean; condition?: string; hitCondition?: string; } export interface ISourceBreakpointData extends IBreakpointData { type: 'source'; uri: URI; line: number; character: number; } export interface IFunctionBreakpointData extends IBreakpointData { type: 'function'; functionName: string; } export interface IBreakpointsDelta { added?: (ISourceBreakpointData | IFunctionBreakpointData)[]; removed?: string[]; changed?: (ISourceBreakpointData | IFunctionBreakpointData)[]; } export interface ExtHostDebugServiceShape { $resolveDebugConfiguration(handle: number, folder: URI | undefined, debugConfiguration: any): TPromise; $provideDebugConfigurations(handle: number, folder: URI | undefined): TPromise; $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; $acceptBreakpointsDelta(delat: IBreakpointsDelta): void; } export type DecorationData = [number, boolean, string, string, ThemeColor, string]; export interface ExtHostDecorationsShape { $providerDecorations(handle: number, uri: URI): TPromise; } export interface ExtHostWindowShape { $onDidChangeWindowFocus(value: boolean): void; } // --- proxy identifiers export const MainContext = { MainThreadCommands: createMainId('MainThreadCommands'), MainThreadConfiguration: createMainId('MainThreadConfiguration'), MainThreadDebugService: createMainId('MainThreadDebugService'), MainThreadDecorations: createMainId('MainThreadDecorations'), MainThreadDiagnostics: createMainId('MainThreadDiagnostics'), MainThreadDialogs: createMainId('MainThreadDiaglogs'), MainThreadDocuments: createMainId('MainThreadDocuments'), MainThreadDocumentContentProviders: createMainId('MainThreadDocumentContentProviders'), MainThreadEditors: createMainId('MainThreadEditors'), MainThreadErrors: createMainId('MainThreadErrors'), MainThreadTreeViews: createMainId('MainThreadTreeViews'), MainThreadLanguageFeatures: createMainId('MainThreadLanguageFeatures'), MainThreadLanguages: createMainId('MainThreadLanguages'), MainThreadMessageService: createMainId('MainThreadMessageService'), MainThreadOutputService: createMainId('MainThreadOutputService'), MainThreadProgress: createMainId('MainThreadProgress'), MainThreadQuickOpen: createMainId('MainThreadQuickOpen'), MainThreadStatusBar: createMainId('MainThreadStatusBar'), MainThreadStorage: createMainId('MainThreadStorage'), MainThreadTelemetry: createMainId('MainThreadTelemetry'), MainThreadTerminalService: createMainId('MainThreadTerminalService'), MainThreadWorkspace: createMainId('MainThreadWorkspace'), MainThreadFileSystem: createMainId('MainThreadFileSystem'), MainThreadExtensionService: createMainId('MainThreadExtensionService'), MainThreadSCM: createMainId('MainThreadSCM'), MainThreadTask: createMainId('MainThreadTask'), MainThreadWindow: createMainId('MainThreadWindow'), }; export const ExtHostContext = { ExtHostCommands: createExtId('ExtHostCommands'), ExtHostConfiguration: createExtId('ExtHostConfiguration'), ExtHostDiagnostics: createExtId('ExtHostDiagnostics'), ExtHostDebugService: createExtId('ExtHostDebugService'), ExtHostDecorations: createExtId('ExtHostDecorations'), ExtHostDocumentsAndEditors: createExtId('ExtHostDocumentsAndEditors'), ExtHostDocuments: createExtId('ExtHostDocuments'), ExtHostDocumentContentProviders: createExtId('ExtHostDocumentContentProviders'), ExtHostDocumentSaveParticipant: createExtId('ExtHostDocumentSaveParticipant'), ExtHostEditors: createExtId('ExtHostEditors'), ExtHostTreeViews: createExtId('ExtHostTreeViews'), ExtHostFileSystem: createExtId('ExtHostFileSystem'), ExtHostFileSystemEventService: createExtId('ExtHostFileSystemEventService'), ExtHostHeapService: createExtId('ExtHostHeapMonitor'), ExtHostLanguageFeatures: createExtId('ExtHostLanguageFeatures'), ExtHostQuickOpen: createExtId('ExtHostQuickOpen'), ExtHostExtensionService: createExtId('ExtHostExtensionService'), ExtHostTerminalService: createExtId('ExtHostTerminalService'), ExtHostSCM: createExtId('ExtHostSCM'), ExtHostTask: createExtId('ExtHostTask'), ExtHostWorkspace: createExtId('ExtHostWorkspace'), ExtHostWindow: createExtId('ExtHostWindow'), };