UNPKG

@sussudio/platform

Version:

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

157 lines (155 loc) 6.56 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { VSBuffer } from '@sussudio/base/common/buffer.mjs'; import { Event } from '@sussudio/base/common/event.mjs'; import { URI } from '@sussudio/base/common/uri.mjs'; import { MessageBoxOptions, MessageBoxReturnValue, MouseInputEvent, OpenDevToolsOptions, OpenDialogOptions, OpenDialogReturnValue, SaveDialogOptions, SaveDialogReturnValue, } from '@sussudio/base/parts/sandbox/common/electronTypes.mjs'; import { ISerializableCommandAction } from '../../action/common/action.mjs'; import { INativeOpenDialogOptions } from '../../dialogs/common/dialogs.mjs'; import { IV8Profile } from '../../profiling/common/profiling.mjs'; import { IPartsSplash } from '../../theme/common/themeService.mjs'; import { IColorScheme, IOpenedWindow, IOpenEmptyWindowOptions, IOpenWindowOptions, IWindowOpenable, } from '../../window/common/window.mjs'; export interface ICPUProperties { model: string; speed: number; } export interface IOSProperties { type: string; release: string; arch: string; platform: string; cpus: ICPUProperties[]; } export interface IOSStatistics { totalmem: number; freemem: number; loadavg: number[]; } export interface ICommonNativeHostService { readonly _serviceBrand: undefined; readonly windowId: number; readonly onDidOpenWindow: Event<number>; readonly onDidMaximizeWindow: Event<number>; readonly onDidUnmaximizeWindow: Event<number>; readonly onDidFocusWindow: Event<number>; readonly onDidBlurWindow: Event<number>; readonly onDidChangeDisplay: Event<void>; readonly onDidResumeOS: Event<unknown>; readonly onDidChangeColorScheme: Event<IColorScheme>; readonly onDidChangePassword: Event<{ service: string; account: string; }>; readonly onDidTriggerSystemContextMenu: Event<{ windowId: number; x: number; y: number; }>; getWindows(): Promise<IOpenedWindow[]>; getWindowCount(): Promise<number>; getActiveWindowId(): Promise<number | undefined>; openWindow(options?: IOpenEmptyWindowOptions): Promise<void>; openWindow(toOpen: IWindowOpenable[], options?: IOpenWindowOptions): Promise<void>; toggleFullScreen(): Promise<void>; handleTitleDoubleClick(): Promise<void>; isMaximized(): Promise<boolean>; maximizeWindow(): Promise<void>; unmaximizeWindow(): Promise<void>; minimizeWindow(): Promise<void>; /** * Only supported on Windows and macOS. Updates the window controls to match the title bar size. * * @param options `backgroundColor` and `foregroundColor` are only supported on Windows */ updateWindowControls(options: { height?: number; backgroundColor?: string; foregroundColor?: string }): Promise<void>; setMinimumSize(width: number | undefined, height: number | undefined): Promise<void>; saveWindowSplash(splash: IPartsSplash): Promise<void>; /** * Make the window focused. * * @param options Pass `force: true` if you want to make the window take * focus even if the application does not have focus currently. This option * should only be used if it is necessary to steal focus from the current * focused application which may not be VSCode. */ focusWindow(options?: { windowId?: number; force?: boolean }): Promise<void>; showMessageBox(options: MessageBoxOptions): Promise<MessageBoxReturnValue>; showSaveDialog(options: SaveDialogOptions): Promise<SaveDialogReturnValue>; showOpenDialog(options: OpenDialogOptions): Promise<OpenDialogReturnValue>; pickFileFolderAndOpen(options: INativeOpenDialogOptions): Promise<void>; pickFileAndOpen(options: INativeOpenDialogOptions): Promise<void>; pickFolderAndOpen(options: INativeOpenDialogOptions): Promise<void>; pickWorkspaceAndOpen(options: INativeOpenDialogOptions): Promise<void>; showItemInFolder(path: string): Promise<void>; setRepresentedFilename(path: string): Promise<void>; setDocumentEdited(edited: boolean): Promise<void>; openExternal(url: string): Promise<boolean>; moveItemToTrash(fullPath: string): Promise<void>; isAdmin(): Promise<boolean>; writeElevated( source: URI, target: URI, options?: { unlock?: boolean; }, ): Promise<void>; getOSProperties(): Promise<IOSProperties>; getOSStatistics(): Promise<IOSStatistics>; getOSVirtualMachineHint(): Promise<number>; getOSColorScheme(): Promise<IColorScheme>; hasWSLFeatureInstalled(): Promise<boolean>; killProcess(pid: number, code: string): Promise<void>; readClipboardText(type?: 'selection' | 'clipboard'): Promise<string>; writeClipboardText(text: string, type?: 'selection' | 'clipboard'): Promise<void>; readClipboardFindText(): Promise<string>; writeClipboardFindText(text: string): Promise<void>; writeClipboardBuffer(format: string, buffer: VSBuffer, type?: 'selection' | 'clipboard'): Promise<void>; readClipboardBuffer(format: string): Promise<VSBuffer>; hasClipboard(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(items: ISerializableCommandAction[][]): Promise<void>; installShellCommand(): Promise<void>; uninstallShellCommand(): Promise<void>; notifyReady(): Promise<void>; relaunch(options?: { addArgs?: string[]; removeArgs?: string[] }): Promise<void>; reload(options?: { disableExtensions?: boolean }): Promise<void>; closeWindow(): Promise<void>; closeWindowById(windowId: number): Promise<void>; quit(): Promise<void>; exit(code: number): Promise<void>; openDevTools(options?: OpenDevToolsOptions): Promise<void>; toggleDevTools(): Promise<void>; toggleSharedProcessWindow(): Promise<void>; sendInputEvent(event: MouseInputEvent): Promise<void>; enableSandbox(enabled: boolean): Promise<void>; profileRenderer(session: string, duration: number): Promise<IV8Profile>; resolveProxy(url: string): Promise<string | undefined>; findFreePort(startPort: number, giveUpAfter: number, timeout: number, stride?: number): Promise<number>; windowsGetStringRegKey( hive: 'HKEY_CURRENT_USER' | 'HKEY_LOCAL_MACHINE' | 'HKEY_CLASSES_ROOT' | 'HKEY_USERS' | 'HKEY_CURRENT_CONFIG', path: string, name: string, ): Promise<string | undefined>; }