M4 Macro Language Support
这是一个为 GNU m4 及相关 .m4 / .m4f 文件提供编辑与调试体验的 Visual Studio Code 扩展。
主要功能
- 语法与符号(Outline):自动识别
define(...) 风格的宏并在大纲视图中列出,方便导航宏定义。
- 补全(Completion):内置关键字补全,同时从工作区
.m4f 文件中提取宏并生成可插入的补全项(支持根据宏体检测位置参数并生成 snippet 占位)。
- 悬停(Hover)与跳转定义(Go to Definition):在符号上悬停显示简单的宏预览,或跳转到同文件中的宏定义位置。
- 格式化(Formatting):简单的文档格式化,主要去除行尾多余空白并确保以换行结尾。
- 诊断(Diagnostics)与修复(Quick Fix):对常见语法小问题(如未闭合的反引号 / 单/双引号、
define(...) 缺少 ) 等)提供警告并可通过快速修复插入缺失字符。
- 引用与重命名(References / Rename):基于工作区文本查找简单的符号引用并支持跨文件重命名(基于文本匹配,谨慎使用)。
- 自定义只读编辑器(
.m4f):为 .m4f 提供特殊视图与语义标记(符号/语义 token)。
- 调试集成(Debugging):包含针对 m4 的调试适配器支持(断点、步进、输出捕获、divert 导出等)。
如何使用
- 安装:在 VS Code 扩展市场搜索并安装 “M4 Macro Language Support”(或从 VSIX 安装)。
- 激活:打开或创建以
.m4 或 .m4f 为扩展名的文件时自动激活扩展。
- 大纲与导航:打开侧边栏的大纲 (Outline) 面板查看已识别的宏定义,点击即可跳转。
- 补全:在编辑器中输入关键字(如
define、include 等)或触发补全(Ctrl+Space)以查看建议;若工作区包含 .m4f,宏补全会自动包含这些宏并带有参数占位符。
- 悬停与跳转:把鼠标移到宏名上可以看到简短预览;使用 “转到定义”(F12 / 右键菜单)跳转到定义位置。
- 格式化:在编辑器内使用
Format Document(右键菜单或快捷键)应用基本格式化操作。
- 诊断与快速修复:编辑器下方的警告/问题面板会显示扩展检测到的简单问题;在问题上点击快速修复(Lightbulb)可以自动插入闭合符号。
- 引用与重命名:右键选择
Find All References 或使用 Rename Symbol 进行跨文件查找与替换(注意:实现基于文本匹配,可能产生误报,建议先审查变更)。
- 调试与导出 divert:使用 VS Code 调试视图选择
m4 类型的配置启动调试。调试过程中可将 m4 的 divert 流导出为文件或在编辑器中打开(命令:m4.exportDiverts)。
注意事项与限制
- 本扩展使用基于正则和文本分析的轻量实现来识别宏与引用,因此在非常复杂或动态生成的宏场景下可能产生误报或无法识别所有用例。对于大型项目或需要语义精确性的场景,请结合手动检查或其他工具使用。
- 重命名/引用功能为简单文本替换,可能替换误匹配的文本(例如在注释或字符串中出现同名标识)。使用前请备份或在 Git 下操作以便回退。
- 调试功能依赖调试配置与系统上可用的 m4 可执行环境;在某些环境下,调试适配器可能以内嵌模式运行或使用本地 TCP 端口通信。
支持与反馈
- 如果发现问题或希望提交改进建议,请到项目仓库创建 Issue,或在扩展页面使用“报告问题”链接。
| |