UNPKG

@sussudio/platform

Version:

Internal APIs for VS Code's service injection the base services.

83 lines (81 loc) 3.44 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { WebContents } from 'electron'; import { Event } from '@sussudio/base/common/event.mjs'; import { IProcessEnvironment } from '@sussudio/base/common/platform.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { NativeParsedArgs } from '../../environment/common/argv.mjs'; import { ICodeWindow } from '../../window/electron-main/window.mjs'; import { IOpenEmptyWindowOptions, IWindowOpenable } from '../../window/common/window.mjs'; export declare const IWindowsMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IWindowsMainService>; export interface IWindowsMainService { readonly _serviceBrand: undefined; readonly onDidChangeWindowsCount: Event<IWindowsCountChangedEvent>; readonly onDidOpenWindow: Event<ICodeWindow>; readonly onDidSignalReadyWindow: Event<ICodeWindow>; readonly onDidTriggerSystemContextMenu: Event<{ window: ICodeWindow; x: number; y: number; }>; readonly onDidDestroyWindow: Event<ICodeWindow>; open(openConfig: IOpenConfiguration): Promise<ICodeWindow[]>; openEmptyWindow(openConfig: IOpenEmptyConfiguration, options?: IOpenEmptyWindowOptions): Promise<ICodeWindow[]>; openExtensionDevelopmentHostWindow( extensionDevelopmentPath: string[], openConfig: IOpenConfiguration, ): Promise<ICodeWindow[]>; openExistingWindow(window: ICodeWindow, openConfig: IOpenConfiguration): void; sendToFocused(channel: string, ...args: any[]): void; sendToAll(channel: string, payload?: any, windowIdsToIgnore?: number[]): void; getWindows(): ICodeWindow[]; getWindowCount(): number; getFocusedWindow(): ICodeWindow | undefined; getLastActiveWindow(): ICodeWindow | undefined; getWindowById(windowId: number): ICodeWindow | undefined; getWindowByWebContents(webContents: WebContents): ICodeWindow | undefined; } export interface IWindowsCountChangedEvent { readonly oldCount: number; readonly newCount: number; } export declare const enum OpenContext { CLI = 0, DOCK = 1, MENU = 2, DIALOG = 3, DESKTOP = 4, API = 5, } export interface IBaseOpenConfiguration { readonly context: OpenContext; readonly contextWindowId?: number; } export interface IOpenConfiguration extends IBaseOpenConfiguration { readonly cli: NativeParsedArgs; readonly userEnv?: IProcessEnvironment; readonly urisToOpen?: IWindowOpenable[]; readonly waitMarkerFileURI?: URI; readonly preferNewWindow?: boolean; readonly forceNewWindow?: boolean; readonly forceNewTabbedWindow?: boolean; readonly forceReuseWindow?: boolean; readonly forceEmpty?: boolean; readonly diffMode?: boolean; readonly mergeMode?: boolean; addMode?: boolean; readonly gotoLineMode?: boolean; readonly initialStartup?: boolean; readonly noRecentEntry?: boolean; /** * The remote authority to use when windows are opened with either * - no workspace (empty window) * - a workspace that is neither `file://` nor `vscode-remote://` */ readonly remoteAuthority?: string; readonly forceProfile?: string; readonly forceTempProfile?: boolean; } export interface IOpenEmptyConfiguration extends IBaseOpenConfiguration {}