Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>mamlNew to Visual Studio Code? Get it now.
maml

maml

qianggaogao

|
23 installs
| (0) | Free
集成多种开发增强功能:序列插入、图片预览、maml格式颜色高亮、内联提示,悬浮提示,括号对匹配,XML属性排序等,语法诊断,缓动函数预览与编辑,混合模式编辑,表达式格式化,表达式高亮,等等一列系功能。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MAML

提供开发增强功能和诊断工具。

主要功能

文本编辑和格式化

  • XML 属性排序 — 自动排序和格式化 XML 属性,支持属性权重优化
  • 诊断自动选中 — 点击诊断错误时自动选中内容,便于快速修改
  • 表达式格式化 — 自动格式化复杂表达式,提高可读性
  • 序列插入 — 快速生成数字序列、日期序列、字符串序列,支持历史记录(功能从https://marketplace.visualstudio.com/items?itemName=volkerdobler.insertnums提取并修改)

视觉反馈和预览

  • 图片预览 — 悬浮预览图片 URL 和本地路径,支持多种格式和路径映射 (功能从https://marketplace.visualstudio.com/items?itemName=kisstkondoros.vscode-gutter-preview提取并修改)
  • 颜色高亮 — 高亮显示颜色值,支持多种格式,可快速复制和修改透明度
  • 缓动函数预览 — 30+ 种缓动函数(Sine、Quad、Cubic 等)和 SVG 曲线可视化
  • 混合模式演示 — 交互式混合模式选择器和实时视觉演示
  • 括号范围高亮 — 光标在括号内时高亮匹配的括号对和包含范围

智能代码补全和提示

  • 属性名智能补全 — 根据标签类型智能提示可用属性,属性名右侧直接显示描述说明
  • 智能排序 — 属性补全按标签专属性、语义优先级、使用频率综合排序
  • 属性值智能提示 — 显示命令、动作、类型、传感器等属性值的详细说明和文档
  • 图片路径补全 — 为 src 属性提供项目内图片文件路径补全,支持 .png/.jpg/.svg/.pag/.mp4 等格式
  • 变量补全 — 输入 @/#/$/$$ 触发变量补全,包括全局变量、用户自定义变量
  • SDK 点变量补全 — 输入 #elementName. 触发 SDK 自动变量后缀补全(x, y, alpha 等)
  • 内置函数补全 — 智能提示 MAML 内置函数(sin、cos、ifelse 等),显示函数签名和参数说明
  • 智能引用补全 — 根据标签上下文补全 target、name、states 等引用属性
  • Hover 悬浮提示 — 展示表达式、属性、类型等详细信息,支持点击快速填充
  • 标签名悬浮提示 — 悬浮在标签名上显示该标签的功能简介
  • 传感器类型表 — 悬浮提示时显示传感器数据索引表,支持交互式切换

代码导航

  • 定义跳转(F12) — 快速跳转到变量、函数、状态等定义位置
  • 查找引用(Shift+F12) — 查找变量、函数、动画状态等的所有引用
  • 表达式变量跳转 — 在表达式中点击变量引用直接跳转到定义

代码重构

  • 变量重命名(F2) — 重命名变量时同时更新所有引用,支持 @/#/$/$$ 前缀
  • 提取变量 — 选中表达式后可提取为新变量,自动推断类型
  • 内联变量 — 将变量引用替换为其表达式值

快速修复(CodeAction)

  • 添加 Permanence 声明 — 自动添加缺失的持久化变量声明
  • 添加 const 属性 — 为被覆盖的变量添加 const="true"
  • 移除无效属性 — 移除字符串类型变量的 threshold 属性
  • 修复变量类型 — 修改变量类型以匹配 JSON 函数返回值
  • 添加缺失按钮 — 为 Clock 添加 clock_button 按钮
  • 添加 name 属性 — 自动生成变量名

表达式编辑

  • 表达式语法高亮 — 为表达式内容提供语法高亮(函数、变量、数字、运算符、括号)
  • 表达式语义标记 — 基于 Semantic Token 的精确着色,可自定义颜色
  • 括号匹配检查 — 检查表达式中括号是否完全匹配
  • 表达式完整支持 — 支持所有 MAML 表达式属性,包括变量、函数、运算符等

语言诊断和代码检查

检查项 描述
重复属性定义 检查标签内是否有相同属性出现多次
重复变量声明 检查 Var 标签是否有重复的变量声明
标签重复定义 检查仅允许一次的标签是否重复定义
缺失必需父标签 检查标签是否在其必需的父标签内
数组初始化检查 检查数组类型变量是否有 size 或 values 初始化
括号匹配 检查表达式中括号是否完全匹配
函数递归检测 检测 Function 直接或间接调用自身形成循环
Permanence 引用 检查 PermanenceCommand 是否引用了已声明的 Permanence
变量命令覆盖 检查 VariableCommand 是否会被 Var 表达式覆盖
变量名冲突 检查变量名是否与内置函数名冲突
数组约束 检查数组类型 VariableCommand 的约束条件
变量引用前缀 检查表达式中变量引用的前缀(#、@、$)是否正确
字符串阈值 检查字符串类型变量是否设置了无效的 threshold
颜色属性格式 检查颜色属性格式是否合法
GraphicsCommand 检查 检查 GraphicsCommand 的属性和参数
Trigger 位置 检查 Trigger 是否在允许的父标签内
枚举属性值 检查 xfermode、align、cap 等枚举属性值是否合法
变量类型有效性 检查 Var 标签的 type 属性值是否有效
未定义变量引用 检查表达式中是否引用了未定义的变量
表达式循环引用 检测变量表达式循环引用
Binder 循环调用 检测 Binder 循环调用(refresh 链、dependency 订阅链、自循环刷新)
Format 占位符 检查 format 属性的占位符与 paras 参数匹配
JSON 函数参数 检查 JSON 操作函数的参数类型
必需属性 检查标签是否缺少必需属性
Object 引用前缀 检查 object 类型变量的引用前缀
EaseType 值 检查动画 easeType 属性值是否合法
关键帧时间顺序 检查动画关键帧的时间顺序是否正确
Var_config 约束 检查 var_config.xml 中的约束
标签间无效文本 检查标签之间是否有无效文本
LoopCommand 终止 检测 LoopCommand 无终止条件或循环次数过多
数值范围 检测数值属性超出范围(rate、alpha、cornerRadius 等)
渐变必填属性 检测渐变标签缺少必填属性
高频刷新检测 检测高频变量触发 Binder 频繁刷新(#time, #time_sys 等)
Folme 冲突检测 检测 Folme 模式下旧动画冲突(AlphaAnimation 等子标签、scale 属性)
FolmeCommand 检查 检查 FolmeCommand 的 target、command、states 属性
FolmeState 属性 检查 FolmeState/AnimState 的属性名是否有效
Folme 颜色格式 检查 FolmeState/AnimState 颜色属性是否为 0xAARRGGBB
三元运算符检查 检查三元运算符使用是否正确
比较运算符检查 检查无效的比较运算符(如 =、!= 等)
XML 实体检查 检查表达式中是否误用 XML 实体(< > 等)
MethodCommand 参数 检查 MethodCommand 的 params 和 paramTypes 长度匹配
渐变颜色数量 检查渐变的 colors 和 positions 数量匹配
ifelse 参数 检查 ifelse 函数的参数数量为 2n+1
动画名称重复 检查动画标签的 name 是否重复
未使用变量 检测未使用的变量
未使用帧率控制器 检测未使用的 FramerateController
无需帧率 检测无动态元素时设置帧率
复杂表达式重复 检测重复的复杂表达式,建议预存变量
大数组检测 检测数组 size > 1000
表达式嵌套深度 检测表达式嵌套深度 > 5 层
LoopCommand 复杂表达式 检测循环内的复杂表达式或高频变量

配置

在 VSCode 设置中搜索 maml-tools 可以配置以下选项:

模块开关

配置项 说明 默认值
insertSequence 启用序列插入功能 true
colorHighlight 启用颜色高亮功能 true
xmlAttributeSorter 启用XML属性排序功能 true
completionAndHint 启用提示和补全功能(包含补全、缓动函数、混合模式等8个子功能) true
definitionProvider 启用定义跳转功能(Peek Definition) true
expressionColoring 启用表达式语法着色 true
bracketRangeHighlight 启用括号范围高亮 true
lspDiagnostics 启用LSP语言诊断(独立进程,不阻塞UI) true

所有模块可在 VSCode 设置中独立启用/禁用:

{
  "maml-tools.modules.insertSequence": true,
  "maml-tools.modules.colorHighlight": true,
  "maml-tools.modules.expressionColoring": true
}

序列插入配置

配置项 说明 示例
historyLimit 历史记录最大数量,0表示无限制 100
editHistory 历史记录中的项目是否可以编辑 false
start 默认起始值 1
step 默认增量值 1
cast 默认转换函数:S=字符串, I=整数, F=浮点数, B=布尔值 s
dateFormat 日期格式(支持 yyyy-MM-dd, MM/dd/yyyy 等) yyyy-MM-dd

示例:

{
  "maml-tools.insertSeq.historyLimit": 100,
  "maml-tools.insertSeq.editHistory": false,
  "maml-tools.insertSeq.start": "1",
  "maml-tools.insertSeq.step": "1",
  "maml-tools.insertSeq.cast": "s",
  "maml-tools.insertSeq.dateFormat": "yyyy-MM-dd"
}

图片预览配置

sourceFolder / sourceFolders — 额外搜索文件夹

在查找图片时,除了从项目根目录,还会在这些文件夹中查找。支持相对路径(相对项目根)和绝对路径(系统路径)。

查找流程 — 当代码写 src="logo.png" 时,会依次查找:

  1. 项目根/logo.png
  2. 项目根/images/logo.png(sourceFolder 中的相对路径)
  3. 项目根/assets/logo.png(sourceFolders 中的相对路径)
  4. /usr/local/images/logo.png(sourceFolders 中的绝对路径)
{
  "maml-tools.imagePreview.sourceFolder": "images",
  "maml-tools.imagePreview.sourceFolders": ["images", "assets", "/usr/local/images"]
}

说明:

  • 相对路径基于项目根目录
  • 绝对路径使用系统路径(跨越项目外的文件夹)
  • sourceFolder 和 sourceFolders 的查找顺序是依次尝试

showUnderline — 显示下划线

控制识别到的图片 URL 是否显示下划线装饰。默认为 true。

{
  "maml-tools.imagePreview.showUnderline": true
}

快捷键

快捷键 功能 平台
F2 重命名变量 通用
F12 跳转到定义 通用
Shift+F12 查找所有引用 通用
Ctrl+Shift+. 插入序列 Windows/Linux
Cmd+Shift+. 插入序列 macOS
Ctrl+Shift+, 显示历史记录 Windows/Linux
Cmd+Shift+, 显示历史记录 macOS
Ctrl+Shift+C 复制颜色 Windows/Linux
Cmd+Shift+C 复制颜色 macOS
Ctrl+Shift+A 修改透明度 Windows/Linux
Cmd+Shift+A 修改透明度 macOS
Ctrl+Shift+X 打开混合模式选择器 Windows/Linux
Cmd+Shift+X 打开混合模式选择器 macOS

反馈

以下问题请联系 QQ: 1452281131

  • 误报错
  • 增加语法检查
  • 增加新功能
  • bug反馈
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft