sussudio
Version:
An unofficial VS Code Internal API
153 lines (152 loc) • 10.2 kB
text/typescript
/*---------------------------------------------------------------------------------------------
* 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 "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { AddFirstParameterToFunctions } from "../../../base/common/types.mjs";
import { URI } from "../../../base/common/uri.mjs";
import { MouseInputEvent } from "../../../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 "../../../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;
}