jzcheck-lsp — VS Code Extension
JZ8 系列 OTP 微控制器汇编语言的 VS Code 扩展,基于 jzcheck Python 包提供完整的 IDE 支持。
前置依赖
此扩展是 jzcheck 的客户端,必须先安装 jzcheck Python 包:
pip install jzcheck-0.1.0-py3-none-any.whl
安装后确认可用:
jzcheck --version
jzcheck-lsp # 启动 LSP 服务器
功能
语法高亮
- 指令 / 伪指令 / 寄存器 / 标签 / 立即数 / 注释 分色高亮
- 自定义 TextMate 语法规则(
syntaxes/asm.tmLanguage.json)
实时诊断
- 打开或编辑
.asm 文件时自动推送:词法错误 / 语法错误 / 语义错误 / 内存 / 堆栈警告
- 错误波浪线 + 问题面板
代码补全
- 指令助记符(43 基础 + 24 EM78P153 别名 + INT)
- 寄存器名称(来自芯片配置)
- 工作区符号(标签 / EQU 常量)
- 位索引(
.0–.7,含命名字段)
悬停信息
- 指令说明 + 操作数模式 + 影响标志位
- 符号值 + 定义行
- 宏展开内容
- 寄存器地址 + 位字段
$ 表达式相对偏移
跳转到定义
- 标签 / EQU 常量 → 定义文件位置
- 宏名 → MACRO 定义位置
文档符号(大纲)
CodeLens — 堆栈深度
- 每个函数上方显示静态堆栈深度
- 显示最差调用路径
- 递归函数标记
oo
- 状态栏实时显示主程序 + 中断合计深度
代码格式化
- 规范化缩进 / 大小写 / 对齐(四列对齐)
- 通过 VS Code 设置配置:
jzcheck-lsp.format.enable — 启用格式化
jzcheck-lsp.format.tabSize — 缩进宽度
jzcheck-lsp.format.operandColumn — 操作数对齐列
jzcheck-lsp.format.commentColumn — 注释对齐列
jzcheck-lsp.format.uppercaseMnemonics — 指令大写
jzcheck-lsp.format.uppercaseRegisters — 寄存器大写
符号重命名
- 跨文件重命名标签 / EQU 常量 / 宏名
- 保留标签定义中的冒号
安装
方法 1:从 VSIX 安装
# 先构建 VSIX(需要 npm / @vscode/vsce)
cd vscode-jzcheck-lsp
npx @vscode/vsce package
# 或在项目根目录使用打包脚本
..\build_vscode-lsp.bat
在 VS Code 中:扩展 → ... → Install from VSIX... → 选择 jzcheck-lsp-*.vsix
方法 2:拷贝到扩展目录
将 vscode-jzcheck-lsp 文件夹复制到 VS Code 扩展目录:
| 平台 |
扩展目录 |
| Windows |
%USERPROFILE%\.vscode\extensions\ |
| Linux / macOS |
~/.vscode/extensions/ |
使用
- 打开包含
.mpj 项目文件的文件夹(作为 VS Code 工作区根目录)
- 打开任意
.asm 源文件
- 扩展自动启动
jzcheck-lsp 语言服务器
状态栏右下角显示堆栈深度摘要:
堆栈:3/5
打包
cd vscode-jzcheck-lsp
# 安装打包工具(仅首次)
npm install -g @vscode/vsce
# 打包
vsce package
产物为 jzcheck-lsp-0.0.1.vsix。
设置项
| 设置 |
默认 |
说明 |
jzcheck-lsp.trace.server |
verbose |
LSP 通信日志级别 |
jzcheck-lsp.format.enable |
true |
启用代码格式化 |
jzcheck-lsp.format.tabSize |
4 |
缩进宽度 |
jzcheck-lsp.format.operandColumn |
12 |
操作数对齐列 |
jzcheck-lsp.format.commentColumn |
40 |
注释对齐列 |
jzcheck-lsp.format.uppercaseMnemonics |
true |
指令转大写 |
jzcheck-lsp.format.uppercaseRegisters |
true |
寄存器转大写 |
文件编码
默认使用 gb2312 编码(JZ 汇编项目常见编码),可在 VS Code 设置中修改:
"[asm]": {
"files.encoding": "gb2312"
}
系统要求
- VS Code ^1.85.0
- Python >=3.10
- jzcheck ==0.1.0(Python 包)