/
githubmirror
/
halo
Обзор
Документация
Войти
/
githubmirror
/
halo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ui/packages/editor/src/extensions/code/index.ts
48 строк
2 KB
Takagi
feat: add AI metadata for editor extensions (#10176)
31 июл 2026, 12:16
Не верифицирован
31 июл 2026, 12:16
669ee1d
Код
Авторство
О чём код?
import type { CodeOptions } from "@tiptap/extension-code"; import TiptapCode from "@tiptap/extension-code"; import { markRaw } from "vue"; import MingcuteCodeLine from "~icons/mingcute/code-line"; import ToolbarItem from "@/components/toolbar/ToolbarItem.vue"; import { i18n } from "@/locales"; import type { Editor } from "@/tiptap"; import type { ExtensionOptions } from "@/types"; export type ExtensionCodeOptions = Partial<CodeOptions> & ExtensionOptions; export const ExtensionCode = TiptapCode.extend<ExtensionCodeOptions>({ exitable: true, addHaloEditorMetadata() { return { ai: { description: "Inline code for identifiers, commands, short expressions, and file names.", exposure: "recommended", useWhen: ["Including a short code fragment within prose."], avoidWhen: ["Presenting a multi-line code sample."], generation: { mode: "direct-html", }, examples: ["<p>Run <code>pnpm install</code> first.</p>"], }, }; }, addOptions() { return { ...this.parent?.(), getToolbarItems({ editor }: { editor: Editor }) { return { priority: 100, component: markRaw(ToolbarItem), props: { editor, isActive: editor.isActive(TiptapCode.name), icon: markRaw(MingcuteCodeLine), title: i18n.global.t("editor.common.code"), action: () => editor.chain().focus().toggleCode().run(), }, }; }, }; }, });