UNPKG

sussudio

Version:

An unofficial VS Code Internal API

130 lines (129 loc) 4.38 kB
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { BrowserWindow, Rectangle } from 'electron'; import { CancellationToken } from "../../../base/common/cancellation.mjs"; import { Event } from "../../../base/common/event.mjs"; import { IDisposable } from "../../../base/common/lifecycle.mjs"; import { ISerializableCommandAction } from "../../action/common/action.mjs"; import { NativeParsedArgs } from "../../environment/common/argv.mjs"; import { IUserDataProfile } from "../../userDataProfile/common/userDataProfile.mjs"; import { INativeWindowConfiguration } from "../common/window.mjs"; import { ISingleFolderWorkspaceIdentifier, IWorkspaceIdentifier } from "../../workspace/common/workspace.mjs"; export interface ICodeWindow extends IDisposable { readonly onWillLoad: Event<ILoadEvent>; readonly onDidSignalReady: Event<void>; readonly onDidTriggerSystemContextMenu: Event<{ x: number; y: number; }>; readonly onDidClose: Event<void>; readonly onDidDestroy: Event<void>; readonly whenClosedOrLoaded: Promise<void>; readonly id: number; readonly win: BrowserWindow | null; readonly config: INativeWindowConfiguration | undefined; readonly openedWorkspace?: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier; readonly profile?: IUserDataProfile; readonly backupPath?: string; readonly remoteAuthority?: string; readonly isExtensionDevelopmentHost: boolean; readonly isExtensionTestHost: boolean; readonly lastFocusTime: number; readonly isReady: boolean; ready(): Promise<ICodeWindow>; setReady(): void; addTabbedWindow(window: ICodeWindow): void; load(config: INativeWindowConfiguration, options?: { isReload?: boolean; }): void; reload(cli?: NativeParsedArgs): void; focus(options?: { force: boolean; }): void; close(): void; getBounds(): Rectangle; send(channel: string, ...args: any[]): void; sendWhenReady(channel: string, token: CancellationToken, ...args: any[]): void; readonly isFullScreen: boolean; toggleFullScreen(): void; isMinimized(): boolean; setRepresentedFilename(name: string): void; getRepresentedFilename(): string | undefined; setDocumentEdited(edited: boolean): void; isDocumentEdited(): boolean; handleTitleDoubleClick(): void; updateTouchBar(items: ISerializableCommandAction[][]): void; serializeWindowState(): IWindowState; updateWindowControls(options: { height?: number; backgroundColor?: string; foregroundColor?: string; }): void; } export declare const enum LoadReason { /** * The window is loaded for the first time. */ INITIAL = 1, /** * The window is loaded into a different workspace context. */ LOAD = 2, /** * The window is reloaded. */ RELOAD = 3 } export declare const enum UnloadReason { /** * The window is closed. */ CLOSE = 1, /** * All windows unload because the application quits. */ QUIT = 2, /** * The window is reloaded. */ RELOAD = 3, /** * The window is loaded into a different workspace context. */ LOAD = 4 } export interface IWindowState { width?: number; height?: number; x?: number; y?: number; mode?: WindowMode; readonly display?: number; } export declare const defaultWindowState: (mode?: WindowMode) => IWindowState; export declare const enum WindowMode { Maximized = 0, Normal = 1, Minimized = 2, Fullscreen = 3 } export interface ILoadEvent { readonly workspace: IWorkspaceIdentifier | ISingleFolderWorkspaceIdentifier | undefined; readonly reason: LoadReason; } export declare const enum WindowError { /** * Maps to the `unresponsive` event on a `BrowserWindow`. */ UNRESPONSIVE = 1, /** * Maps to the `render-process-gone` event on a `WebContents`. */ PROCESS_GONE = 2, /** * Maps to the `did-fail-load` event on a `WebContents`. */ LOAD = 3 }