wat 文件黑白因 sublime 未将 .wat 关联到 source.wat 作用域,需手动绑定语法、配置 brackethighlighter、折叠规则及 lsp,并修改语法文件支持自定义指令。

装完 WAT 插件后文件还是黑白?不是插件没装好,是 Sublime 根本没把 .wat 当成 WAT 处理——source.wat 这个作用域没绑上,高亮、括号匹配、折叠、LSP 全部失效。
点击右下角选 WAT 为什么还不生效?
WAT 插件(mab851 版)只在文件被识别为 source.wat 作用域时才触发。状态栏显示 Plain Text 就说明语法绑定完全没走通,哪怕你点了右下角选了 WAT,也只是一次性切换,没做永久关联。
- 打开一个
.wat文件 → 点击右下角语言名(如Plain Text)→ 选择WAT - 再点一次右下角 →
Open all with current extension as…→ 再选WAT -
.wast和.WAT(大写)必须分别重复上述操作,Sublime 区分大小写 - 若文件无后缀(比如粘贴的代码片段),用
Ctrl+Shift+P→ 输入Set Syntax: WAT强制切换
高亮有了但括号不配对、(module 块无法折叠?
这不是 WAT 插件的问题,而是其他插件或 Sublime 自身没认出 source.wat 这个作用域。
-
BracketHighlighter需在bracket_highlighter.sublime-settings的scope_brackets或bracket_styles中显式加入"source.wat" - 折叠依赖 Sublime 默认规则,它不支持
source.wat;可在Preferences → Settings – Syntax Specific里加:{"fold_by_level": true} - 若用了 LSP(如
lsp-wasmbind),也要确认其配置中enabled_capabilities或selector包含source.wat
想高亮自定义指令(如 %myop)或扩展注释(如 ;;; doc)?
默认 WAT 语法只覆盖标准指令(i32.add、local.get)和官方注释(;;)。私有宏、文档注释不会自动着色,得手动改语法定义。
- 打开
Preferences → Browse Packages→ 进入WAT/目录 → 编辑WAT.sublime-syntax - 在
contexts下新增 rule,例如匹配%\w+并赋予keyword.other.custom.wat作用域 - 改完保存后,执行
Ctrl+Shift+P→Reload Syntax Definitions(不是重启 Sublime) - 若修改后变回
Plain Text,检查 YAML 缩进和引号是否匹配——错一处就整个语法加载失败
真正卡住人的从来不是装插件这一步,而是 source.wat 这个作用域像一根线,得同时穿起高亮、括号、折叠、LSP 四个孔——漏一环,整个 WAT 开发体验就断掉。别指望“装完即用”,每个环节都得手动对。











