UNPKG

vue-shiki-monaco

Version:
37 lines (36 loc) 2.07 kB
import { BundledLanguage, BundledTheme } from 'shiki'; import { ContextMenuItem } from '../useContextMenu'; import { UseMonacoEditReturn } from '../useMonacoEdit'; import * as monaco from "monaco-editor-core"; export interface MonacoDiffOptions extends monaco.editor.IStandaloneDiffEditorConstructionOptions { target: HTMLElement; languages: BundledLanguage[]; themes: BundledTheme[]; defaultTheme: BundledTheme; contextMenu?: { enabled?: boolean; items?: string[] | "minimal" | "basic" | "full"; customItems?: ContextMenuItem[]; }; diffViewType?: "inline" | "multi" | "default"; } export type DiffEditInstance = monaco.editor.IStandaloneDiffEditor; export type DiffViewOptions = Pick<monaco.editor.IStandaloneDiffEditorConstructionOptions, "enableSplitViewResizing" | "renderSideBySide" | "enableSplitViewResizing" | "originalEditable">; export type EditModelType = monaco.editor.IDiffEditorModel | monaco.editor.IDiffEditorViewModel | null; export type DefaultReturn = Omit<UseMonacoEditReturn, "initMonacoEdit" | "destroy" | "setLanguage" | "editInstance" | "onContextMenu" | "offContextMenu">; export type CreateModelType = monaco.editor.ITextModel; export interface UseMonacoDiffEditReturn extends DefaultReturn { initMonacoDiffEdit: () => Promise<DiffEditInstance>; destroy: (target: HTMLElement) => void; createModel: (code: string, language: BundledLanguage) => CreateModelType; setDiffModel: (model: EditModelType) => void; setDiffViewOptions: (type: MonacoDiffOptions["diffViewType"]) => void; diffEditInstance: DiffEditInstance | null; onOriginalContextMenu: (callback: (event: MouseEvent) => void) => void; onModifiedContextMenu: (callback: (event: MouseEvent) => void) => void; offOriginalContextMenu: () => void; offModifiedContextMenu: () => void; onMinimapContextMenu: (callback: (event: MouseEvent) => void) => void; offMinimapContextMenu: () => void; } export declare function useMonacoDiffEdit(options: MonacoDiffOptions): UseMonacoDiffEditReturn;