vue-shiki-monaco
Version:
一个封shiki和monaco-editor的Vue组件
37 lines (36 loc) • 2.07 kB
TypeScript
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;