@scalar/api-client
Version:
the open source API testing client
39 lines • 1.73 kB
TypeScript
import * as monaco from 'monaco-editor';
import 'monaco-editor/esm/vs/language/json/monaco.contribution';
import 'monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution';
import 'monaco-editor/esm/vs/editor/contrib/folding/browser/folding';
import 'monaco-editor/esm/vs/editor/contrib/folding/browser/folding.css';
import 'monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.css';
import { type MaybeRefOrGetter } from 'vue';
import type { JsonPath } from '../../../../../../v2/features/collection/components/Editor/helpers/json-ast.js';
type MonacoEditorAction = {
id: string;
label: string;
keybindings?: number[];
run: () => void | Promise<void>;
};
export type MonacoEditorLanguage = 'json' | 'yaml';
export declare const useEditor: ({ element, value, onChange, actions, readOnly, isDarkMode, theme, language, }: {
element: HTMLElement;
value?: MaybeRefOrGetter<string>;
readOnly?: MaybeRefOrGetter<boolean>;
onChange?: (e: string) => void;
actions?: MonacoEditorAction[];
isDarkMode?: MaybeRefOrGetter<boolean>;
theme?: MaybeRefOrGetter<string>;
language?: MonacoEditorLanguage;
}) => {
editor: monaco.editor.IStandaloneCodeEditor;
model: monaco.editor.ITextModel;
highlightPath: (path: JsonPath) => Promise<void>;
focusPath: (path: JsonPath) => Promise<void>;
formatDocument: () => Promise<void>;
getValue: () => string;
setValue: (nextValue: string, isProgrammaticUpdate?: boolean) => void;
hasTextFocus: () => boolean;
setLanguage: (nextLanguage: MonacoEditorLanguage) => void;
setCursorToMarker: (marker: monaco.editor.IMarker) => void;
dispose: () => void;
};
export {};
//# sourceMappingURL=use-editor.d.ts.map