diff --git a/packages/editor/src/fields/Code.vue b/packages/editor/src/fields/Code.vue index a7f9ea4f..107661da 100644 --- a/packages/editor/src/fields/Code.vue +++ b/packages/editor/src/fields/Code.vue @@ -3,6 +3,7 @@ :style="`height: ${height}`" :init-values="model[name]" :language="language" + :options="config.options" @save="save" > @@ -17,6 +18,7 @@ const props = defineProps<{ name: string; config: { language?: string; + options?: Object; }; prop: string; }>(); diff --git a/packages/editor/src/fields/CodeLink.vue b/packages/editor/src/fields/CodeLink.vue index c7865307..42e0a703 100644 --- a/packages/editor/src/fields/CodeLink.vue +++ b/packages/editor/src/fields/CodeLink.vue @@ -12,6 +12,7 @@ const props = defineProps<{ name: string; text?: string; formTitle?: string; + codeOptions?: Object; }; model: any; name: string; @@ -20,17 +21,24 @@ const props = defineProps<{ const emit = defineEmits(['change']); -const formConfig = computed(() => ({ - ...props.config, - text: '', - type: 'link', - form: [ - { - name: props.name, - type: 'vs-code', - }, - ], -})); +const formConfig = computed(() => { + const { codeOptions, ...config } = props.config; + return { + ...config, + text: '', + type: 'link', + form: [ + { + name: props.name, + type: 'vs-code', + options: { + tabSize: 2, + ...(codeOptions || {}), + }, + }, + ], + }; +}); const modelValue = reactive<{ form: Record }>({ form: { diff --git a/packages/editor/src/index.ts b/packages/editor/src/index.ts index 9c8fd2d7..5cc64b39 100644 --- a/packages/editor/src/index.ts +++ b/packages/editor/src/index.ts @@ -63,7 +63,7 @@ export default { app.component('m-fields-ui-select', uiSelect); app.component('m-fields-code-link', CodeLink); app.component('m-fields-vs-code', Code); - app.component(CodeEditor.name, CodeEditor); + app.component('magic-code-editor', CodeEditor); app.component('m-fields-code-select', CodeSelect); }, }; diff --git a/packages/editor/src/layouts/CodeEditor.vue b/packages/editor/src/layouts/CodeEditor.vue index 12b36399..2ba25406 100644 --- a/packages/editor/src/layouts/CodeEditor.vue +++ b/packages/editor/src/layouts/CodeEditor.vue @@ -2,12 +2,35 @@
-