coc-webview
Version:
Vscode webview ported to coc.nvim
51 lines (50 loc) • 1.66 kB
TypeScript
/// <reference types="node" />
import { Emitter } from 'coc.nvim';
export declare type Arguments<F extends (arg: any) => any> = F extends (...args: infer Args) => any ? Args : never;
export declare type EmitterArg<E> = E extends Emitter<infer A> ? A : never;
export declare type ReadyContext = {
tmpdir: string;
};
export interface SocketServerEvents {
register: (pathname: string) => void;
dispose: () => void;
postMessage: (message: any) => void;
setState: (state: any) => void;
visible: (visible: boolean) => void;
tmpFile: (filename: string, blob: Buffer) => void;
}
export interface SocketClientEvents {
ready: (context: ReadyContext) => void;
title: (content: string) => void;
iconPath: (paths: IconPaths) => void;
html: (content: string) => void;
postMessage: (message: any) => void;
reveal: () => void;
dispose: () => void;
}
export interface ServerConnectorEvents {
register: (socketsCount: number) => void;
unregister: (socketsCount: number) => void;
dispose: () => void;
postMessage: (message: any) => void;
setState: (state: any) => void;
visible: (visible: boolean) => void;
}
export declare type StartupOptions = {
debug: boolean;
primaryColors: {
dark: string;
light: string;
};
url: string;
routeName: string;
state: any;
lightOrDarkMode: LightOrDarkMode;
};
export declare type IconPaths = {
light: string;
dark: string;
};
export declare type ColorMode = 'dark' | 'light';
export declare type LightOrDarkMode = ColorMode | 'system';
export declare type ColorStrategy = 'vim-background' | 'system' | ColorMode;