package com.qqchen.deploy.backend.workflow.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 代码编辑器配置注解，用于配置Monaco Editor等代码编辑器的行为
 * 
 * <p>使用示例：
 * <pre>
 * {@code
 * @SchemaProperty(
 *     title = "脚本代码",
 *     description = "脚本代码",
 *     format = "monaco-editor",
 *     codeEditor = @CodeEditorConfig(
 *         language = "shell",
 *         theme = "vs-dark",
 *         minimap = false,
 *         lineNumbers = true,
 *         wordWrap = true
 *     )
 * )
 * private String script;
 * }
 * </pre>
 */
@Target({})
@Retention(RetentionPolicy.RUNTIME)
public @interface CodeEditorConfig {
    /**
     * 编辑器语言
     * 支持的语言：java, javascript, typescript, python, shell等
     */
    String language() default "";

    /**
     * 编辑器主题
     * 支持的主题：vs, vs-dark, hc-black
     */
    String theme() default "vs";

    /**
     * 是否显示代码小地图
     */
    boolean minimap() default true;

    /**
     * 是否显示行号
     */
    boolean lineNumbers() default true;

    /**
     * 是否自动换行
     */
    boolean wordWrap() default false;

    /**
     * 编辑器字体大小
     */
    int fontSize() default 14;

    /**
     * Tab键缩进空格数
     */
    int tabSize() default 4;

    /**
     * 是否启用自动完成
     */
    boolean autoComplete() default true;

    /**
     * 是否显示代码折叠
     */
    boolean folding() default true;
} 