UNPKG

@sussudio/platform

Version:

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

212 lines (210 loc) 9.95 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { MessageBoxOptions, MessageBoxReturnValue, OpenDevToolsOptions, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue, } from 'electron'; import { Event } from '@sussudio/base/common/event.mjs'; import { Disposable } from '@sussudio/base/common/lifecycle.mjs'; import { AddFirstParameterToFunctions } from '@sussudio/base/common/types.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { MouseInputEvent } from '@sussudio/base/parts/sandbox/common/electronTypes.mjs'; import { ISerializableCommandAction } from '../../action/common/action.mjs'; import { INativeOpenDialogOptions } from '../../dialogs/common/dialogs.mjs'; import { IDialogMainService } from '../../dialogs/electron-main/dialogMainService.mjs'; import { IEnvironmentMainService } from '../../environment/electron-main/environmentMainService.mjs'; import { ILifecycleMainService } from '../../lifecycle/electron-main/lifecycleMainService.mjs'; import { ILogService } from '../../log/common/log.mjs'; import { ICommonNativeHostService, IOSProperties, IOSStatistics } from '../common/native.mjs'; import { IProductService } from '../../product/common/productService.mjs'; import { ISharedProcess } from '../../sharedProcess/node/sharedProcess.mjs'; import { IPartsSplash } from '../../theme/common/themeService.mjs'; import { IThemeMainService } from '../../theme/electron-main/themeMainService.mjs'; import { IColorScheme, IOpenedWindow, IOpenEmptyWindowOptions, IOpenWindowOptions, IWindowOpenable, } from '../../window/common/window.mjs'; import { IWindowsMainService } from '../../windows/electron-main/windows.mjs'; import { IWorkspacesManagementMainService } from '../../workspaces/electron-main/workspacesManagementMainService.mjs'; import { VSBuffer } from '@sussudio/base/common/buffer.mjs'; import { IV8Profile } from '../../profiling/common/profiling.mjs'; import { IStateMainService } from '../../state/electron-main/state.mjs'; export interface INativeHostMainService extends AddFirstParameterToFunctions<ICommonNativeHostService, Promise<unknown>, number | undefined> {} export declare const INativeHostMainService: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<INativeHostMainService>; export declare class NativeHostMainService extends Disposable implements INativeHostMainService { private sharedProcess; private readonly windowsMainService; private readonly dialogMainService; private readonly lifecycleMainService; private readonly environmentMainService; private readonly logService; private readonly productService; private readonly themeMainService; private readonly stateMainService; private readonly workspacesManagementMainService; readonly _serviceBrand: undefined; constructor( sharedProcess: ISharedProcess, windowsMainService: IWindowsMainService, dialogMainService: IDialogMainService, lifecycleMainService: ILifecycleMainService, environmentMainService: IEnvironmentMainService, logService: ILogService, productService: IProductService, themeMainService: IThemeMainService, stateMainService: IStateMainService, workspacesManagementMainService: IWorkspacesManagementMainService, ); get windowId(): never; readonly onDidOpenWindow: Event<number>; readonly onDidTriggerSystemContextMenu: Event<{ windowId: number; x: number; y: number; }>; readonly onDidMaximizeWindow: Event<number>; readonly onDidUnmaximizeWindow: Event<number>; readonly onDidBlurWindow: Event<number>; readonly onDidFocusWindow: Event<number>; readonly onDidResumeOS: Event<unknown>; readonly onDidChangeColorScheme: Event<IColorScheme>; private readonly _onDidChangePassword; readonly onDidChangePassword: Event<{ account: string; service: string; }>; readonly onDidChangeDisplay: Event<void>; getWindows(): Promise<IOpenedWindow[]>; getWindowCount(windowId: number | undefined): Promise<number>; getActiveWindowId(windowId: number | undefined): Promise<number | undefined>; openWindow(windowId: number | undefined, options?: IOpenEmptyWindowOptions): Promise<void>; openWindow(windowId: number | undefined, toOpen: IWindowOpenable[], options?: IOpenWindowOptions): Promise<void>; private doOpenWindow; private doOpenEmptyWindow; toggleFullScreen(windowId: number | undefined): Promise<void>; handleTitleDoubleClick(windowId: number | undefined): Promise<void>; isMaximized(windowId: number | undefined): Promise<boolean>; maximizeWindow(windowId: number | undefined): Promise<void>; unmaximizeWindow(windowId: number | undefined): Promise<void>; minimizeWindow(windowId: number | undefined): Promise<void>; updateWindowControls( windowId: number | undefined, options: { height?: number; backgroundColor?: string; foregroundColor?: string; }, ): Promise<void>; focusWindow( windowId: number | undefined, options?: { windowId?: number; force?: boolean; }, ): Promise<void>; setMinimumSize(windowId: number | undefined, width: number | undefined, height: number | undefined): Promise<void>; saveWindowSplash(windowId: number | undefined, splash: IPartsSplash): Promise<void>; installShellCommand(windowId: number | undefined): Promise<void>; uninstallShellCommand(windowId: number | undefined): Promise<void>; private getShellCommandLink; showMessageBox(windowId: number | undefined, options: MessageBoxOptions): Promise<MessageBoxReturnValue>; showSaveDialog(windowId: number | undefined, options: SaveDialogOptions): Promise<SaveDialogReturnValue>; showOpenDialog(windowId: number | undefined, options: OpenDialogOptions): Promise<OpenDialogReturnValue>; private toBrowserWindow; pickFileFolderAndOpen(windowId: number | undefined, options: INativeOpenDialogOptions): Promise<void>; pickFolderAndOpen(windowId: number | undefined, options: INativeOpenDialogOptions): Promise<void>; pickFileAndOpen(windowId: number | undefined, options: INativeOpenDialogOptions): Promise<void>; pickWorkspaceAndOpen(windowId: number | undefined, options: INativeOpenDialogOptions): Promise<void>; private doOpenPicked; showItemInFolder(windowId: number | undefined, path: string): Promise<void>; setRepresentedFilename(windowId: number | undefined, path: string): Promise<void>; setDocumentEdited(windowId: number | undefined, edited: boolean): Promise<void>; openExternal(windowId: number | undefined, url: string): Promise<boolean>; private safeSnapOpenExternal; moveItemToTrash(windowId: number | undefined, fullPath: string): Promise<void>; isAdmin(): Promise<boolean>; writeElevated( windowId: number | undefined, source: URI, target: URI, options?: { unlock?: boolean; }, ): Promise<void>; private get cliPath(); getOSStatistics(): Promise<IOSStatistics>; getOSProperties(): Promise<IOSProperties>; getOSVirtualMachineHint(): Promise<number>; getOSColorScheme(): Promise<IColorScheme>; hasWSLFeatureInstalled(): Promise<boolean>; killProcess(windowId: number | undefined, pid: number, code: string): Promise<void>; readClipboardText(windowId: number | undefined, type?: 'selection' | 'clipboard'): Promise<string>; writeClipboardText(windowId: number | undefined, text: string, type?: 'selection' | 'clipboard'): Promise<void>; readClipboardFindText(windowId: number | undefined): Promise<string>; writeClipboardFindText(windowId: number | undefined, text: string): Promise<void>; writeClipboardBuffer( windowId: number | undefined, format: string, buffer: VSBuffer, type?: 'selection' | 'clipboard', ): Promise<void>; readClipboardBuffer(windowId: number | undefined, format: string): Promise<VSBuffer>; hasClipboard(windowId: number | undefined, format: string, type?: 'selection' | 'clipboard'): Promise<boolean>; newWindowTab(): Promise<void>; showPreviousWindowTab(): Promise<void>; showNextWindowTab(): Promise<void>; moveWindowTabToNewWindow(): Promise<void>; mergeAllWindowTabs(): Promise<void>; toggleWindowTabsBar(): Promise<void>; updateTouchBar(windowId: number | undefined, items: ISerializableCommandAction[][]): Promise<void>; notifyReady(windowId: number | undefined): Promise<void>; relaunch( windowId: number | undefined, options?: { addArgs?: string[]; removeArgs?: string[]; }, ): Promise<void>; reload( windowId: number | undefined, options?: { disableExtensions?: boolean; }, ): Promise<void>; closeWindow(windowId: number | undefined): Promise<void>; closeWindowById(currentWindowId: number | undefined, targetWindowId?: number | undefined): Promise<void>; quit(windowId: number | undefined): Promise<void>; exit(windowId: number | undefined, code: number): Promise<void>; resolveProxy(windowId: number | undefined, url: string): Promise<string | undefined>; findFreePort( windowId: number | undefined, startPort: number, giveUpAfter: number, timeout: number, stride?: number, ): Promise<number>; openDevTools(windowId: number | undefined, options?: OpenDevToolsOptions): Promise<void>; toggleDevTools(windowId: number | undefined): Promise<void>; sendInputEvent(windowId: number | undefined, event: MouseInputEvent): Promise<void>; enableSandbox(windowId: number | undefined, enabled: boolean): Promise<void>; toggleSharedProcessWindow(): Promise<void>; profileRenderer(windowId: number | undefined, session: string, duration: number): Promise<IV8Profile>; windowsGetStringRegKey( windowId: number | undefined, hive: 'HKEY_CURRENT_USER' | 'HKEY_LOCAL_MACHINE' | 'HKEY_CLASSES_ROOT' | 'HKEY_USERS' | 'HKEY_CURRENT_CONFIG', path: string, name: string, ): Promise<string | undefined>; private windowById; }