用途:该技能面向 Rust 的 makepad-widgets crate DSL,适合处理 live_design! 语法、对象定义与继承模式相关问题,涉及控件声明、属性覆盖、原型与 DSL 组合规则时使用,提供 Makepad DSL 专用示例而非通用 Rust 语法建议。
主要能力:生成 DSL 代码;解释 DSL 语法、继承与属性覆盖。关键模式包括匿名对象 { ... }、命名对象(原型)如 MyButton = { ... }、继承并覆盖如 PrimaryButton = <MyButton> { ... }、控件实例化如 <View> { ... } 与子控件、以及用 {{RustType}} 将 Rust 结构体链接到 DSL。属性类型涵盖数字、颜色、字符串、枚举、尺寸(Fit、Fill 或数值)、嵌套对象与数组。继承规则为“急切复制”:父属性在定义时立即复制,子级可覆盖任意父属性、新增属性,并可部分覆盖嵌套对象。
使用方式:技能要求先阅读 ./references/dsl-syntax.md 与 ./references/inheritance.md;若读取失败或为空,需告知用户“本地文档不完整,建议运行 /sync-crate-skills makepad --force 更新文档”,再基于 SKILL.md 模式与内置知识作答。写代码时用 <Widget> 继承内置控件,把可复用样式定义为命名原型,用 {{RustType}} 链接 DSL 与 Rust 结构体,仅覆盖需要改动的属性,并为子控件引用取有意义的名字。
限制:资料明确表示目录副本未包含上述两个参考文件,它们是外部前置条件而非随附文件;未知其可验证下载来源,需向用户索取原始材料或已有安装。路径应相对该安装解析,并检查内容与许可、执行前提;所需文件不存在时不得运行命令或声称已执行引用步骤,也不得伪造缺失脚本或用同名无关文件替代。独立且已完整记录的步骤可在授权范围内进行,依赖步骤应报告为不可用。此外,仅当任务明确符合上述范围时使用,输出不能替代环境特定验证、测试或专家审查;缺少必要输入、权限、安全边界或成功标准时应停下请求澄清。