From 0f8bb1946c3d9bbf7ad129afae9be5afb02d3603 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=8C=E8=A8=80?= <2311595895@qq.com> Date: Tue, 26 Mar 2024 21:03:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(EditorMd):=20=E5=A2=9E=E5=8A=A0beforeShowH?= =?UTF-8?q?int=E5=8F=82=E6=95=B0=20(#1809)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../devui/editor-md/src/composables/use-editor-md.ts | 8 ++++++++ packages/devui-vue/devui/editor-md/src/editor-md-types.ts | 3 +++ packages/devui-vue/package.json | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/devui-vue/devui/editor-md/src/composables/use-editor-md.ts b/packages/devui-vue/devui/editor-md/src/composables/use-editor-md.ts index d3741c7985..a8ca947dd7 100644 --- a/packages/devui-vue/devui/editor-md/src/composables/use-editor-md.ts +++ b/packages/devui-vue/devui/editor-md/src/composables/use-editor-md.ts @@ -20,6 +20,7 @@ export function useEditorMd(props: EditorMdProps, ctx: SetupContext) { hintConfig, disableChangeEvent, modelValue, + beforeShowHint, } = toRefs(props); const toolbars = reactive(cloneDeep(DEFAULT_TOOLBARS)); @@ -202,6 +203,13 @@ export function useEditorMd(props: EditorMdProps, ctx: SetupContext) { const cursor = editorIns.getCursor(); let i = prefixes.value.length; const value = editorIns.getLine(cursor.line).replace(/\t/g, ' '); + let result = false; + if (beforeShowHint?.value) { + result = beforeShowHint.value(value); + } + if (result) { + return; + } const selection = editorIns.getSelection(); const isImgRegx = /^\!\[\S+/; if (selection) { diff --git a/packages/devui-vue/devui/editor-md/src/editor-md-types.ts b/packages/devui-vue/devui/editor-md/src/editor-md-types.ts index 40dc634df2..c6b4fa3b4e 100644 --- a/packages/devui-vue/devui/editor-md/src/editor-md-types.ts +++ b/packages/devui-vue/devui/editor-md/src/editor-md-types.ts @@ -125,6 +125,9 @@ export const editorMdProps = { customHintReplaceFn: { type: Function as PropType<(prefix: string, row: any) => string>, }, + beforeShowHint: { + type: Function as PropType<(value: string) => boolean>, + }, }; export type EditorMdProps = ExtractPropTypes; diff --git a/packages/devui-vue/package.json b/packages/devui-vue/package.json index dbde99e541..e0d8e72db0 100644 --- a/packages/devui-vue/package.json +++ b/packages/devui-vue/package.json @@ -1,6 +1,6 @@ { "name": "vue-devui", - "version": "1.6.4-markdown.0", + "version": "1.6.4-markdown.1", "license": "MIT", "description": "DevUI components based on Vite and Vue3", "keywords": [