Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>hanxuyao-pluginNew to Visual Studio Code? Get it now.
hanxuyao-plugin

hanxuyao-plugin

Hanxuyao

|
17 installs
| (0) | Free
Verilog / SystemVerilog / C / C++ / MATLAB 开发工具,内置 Tcl 导航、词语与正则高亮、CSV/TSV 彩虹列高亮及 RBQL 查询
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

hanxuyao-plugin

面向 FPGA 与嵌入式开发者的 VS Code 开发辅助插件,支持 Verilog / SystemVerilog / C / C++ / MATLAB / Tcl,并内置词语高亮和 CSV / TSV 数据处理,主要功能包括:

  1. 代码格式化:支持 Verilog、SystemVerilog、C、C++ 和 MATLAB 代码整理。
  2. 工程浏览:提供 Verilog 文件树与模块层级查看。
  3. 代码生成:支持模块一键例化、Testbench 生成和 Snippet 代码片段。
  4. 代码阅读:提供语法高亮、符号跳转、悬停定义和代码补全。
  5. 代码检查:支持 Verilog 语法检查以及 TODO 标签扫描与管理。
  6. MATLAB 开发:内置智能编辑、运行调试、交互终端、变量工作区、工程管理和测试支持。
  7. 词语高亮:跨编辑器多色标记词语、选区和正则表达式,支持全词匹配、忽略大小写、侧栏管理与前后跳转。
  8. CSV / TSV 数据处理:提供彩虹列高亮、分隔符识别、CSV 校验、表头与列编辑、对齐、格式复制和 RBQL 查询。
  9. Tcl 编辑增强:提供过程、命名空间与变量大纲、定义跳转、代码折叠、悬停说明和粘性滚动支持。
  10. 代码折叠:通过编辑器右键菜单收起或展开当前代码块、全部代码,只改变显示状态。

版本:v2.2.7 日期:2026/10/28


功能列表

代码折叠与展开

在代码编辑区右键,打开 代码折叠/展开 子菜单,选择“折叠当前代码块”“展开当前代码块”“全部折叠”或“全部展开”。也可在命令面板搜索“代码折叠”。当前块操作针对光标所在的折叠区域,全部操作针对当前文档。

直接复用 VS Code 内置命令及当前语言的折叠范围,不调用格式化器、不修改源码,不增加快捷键冲突。适用于具备折叠范围的 C/C++、Verilog/SystemVerilog、MATLAB、Tcl 等文本编辑器;折叠范围由语言扩展或 VS Code 的缩进规则决定。本功能不新增语法折叠解析器。

保留 VS Code 原有快捷键:Ctrl+Shift+[ / Ctrl+Shift+] 折叠/展开当前块,Ctrl+K Ctrl+0 / Ctrl+K Ctrl+J 全部折叠/展开。若右键菜单未显示,请确认 editor.folding 已开启;没有折叠区域的文本不会产生折叠效果。

Tcl 导航与编辑(tcl-navigate)

内置 tcl-navigate v1.0.0 的四类 Provider 和语言编辑配置,与本插件已有的 Tcl 语言注册、语法高亮配合使用。

  • 大纲:查看过程、命名空间、全局变量、命名空间变量及过程中的局部变量、数组;层级符号供 VS Code 粘性滚动使用。
  • 定义跳转:使用 F12 或 Ctrl+单击 跳转到过程、命名空间及变量定义,优先读取当前未保存缓冲区,找不到过程或命名空间时搜索工作区 .tcl 文件。
  • 悬停:显示过程参数和前置注释、变量在源码中的赋值内容、命名空间说明。
  • 折叠与编辑:支持过程、命名空间和控制块折叠,以及括号匹配、# 行注释与花括号块缩进。
  • 同时启用 lukemt.tcl-navigate 时复用原扩展,避免重复注册;禁用原扩展并重新加载窗口后使用本插件内置版本。

Tcl 导航自 1.5.0 集成到桌面入口;兼容性修复使用补丁版本,新增功能升级次版本,不兼容变更升级主版本。

词语高亮(highlight-words)

内置 highlight-words v0.1.3 的全部 11 个命令和 4 项设置,不需要另外安装该扩展,适用于所有文本语言。

  • 选择文字或将光标放在词语上,执行“词语高亮:切换当前词语高亮”;再次执行可移除该词语。
  • 执行“高亮正则表达式”输入表达式,支持 /expression/i;普通选区按字面量匹配。
  • 支持普通、全词、忽略大小写及全词且忽略大小写四种模式,可对单个词语修改匹配选项。
  • 多个可见编辑器同步高亮;浅色和深色主题可分别配置颜色、边框或背景填充,并显示概览标尺标记。
  • “词语高亮”侧栏支持逐项删除、修改选项、上一个/下一个匹配与回绕导航,也可一次清除全部标记。
  • 保留 highlightwords.colors、highlightwords.box、highlightwords.defaultMode、highlightwords.showSidebar 设置和原始命令 ID,可继续使用已有快捷键。

CSV / TSV(Rainbow CSV)

内置 Rainbow CSV v3.24.1 的全部 24 个公开命令、21 项设置及 RBQL JavaScript/Python 引擎。

  • CSV、TSV、分号、竖线、空白分隔以及动态分隔格式,支持内容自动识别、自定义多字符分隔符和 RFC 4180 多行引号字段。
  • 彩虹列高亮、列名悬停提示、光标列信息、固定表头、虚拟表头、注释行,以及最多三列跟踪与交替行背景。
  • CSVLint 检查引号和字段数;支持空格对齐、虚拟对齐、取消对齐及字段首尾空格清理,对齐时支持中文双宽字符。
  • 列多光标选择、字段前后插入、跳转到列;复制为 Excel / Sheets 可粘贴格式或 Markdown 表格。
  • 大文件头尾预览;通过右键菜单或状态栏 Query 打开 RBQL,支持 SELECT、UPDATE、WHERE、ORDER BY、GROUP BY、JOIN、结果导出及复制回源文件。
  • 保留 rainbow_csv.* 设置和 rainbow-csv.* 命令 ID。JavaScript 查询直接可用;Python 查询需要 PATH 中可用的 python3。RBQL 需要受信任工作区。

同时启用原始 rsbondi.highlight-words 或 mechatroner.rainbow-csv 时复用其运行服务,避免重复注册。要使用本插件的内置版本,禁用对应原扩展后重新加载窗口;不需要卸载。

本次还提供 Web 入口,供浏览器扩展宿主运行词语高亮和 Rainbow CSV。其限制沿用 Rainbow CSV 上游:浏览器查询使用 JavaScript,不支持 Python、本地文件 JOIN、文件头尾预览和复制回源文件。原有 MATLAB、本地编译检查等桌面功能仍需桌面版 VS Code。当前发布目标仍为 Windows x64,本次没有发布 Web 安装包。

C / C++

**自动建议:**输入字母、数字或下划线后,以自动模式请求语言服务候选;无候选时不弹出 No suggestions. 空框,有候选时仍正常显示。输入 ( 仍触发参数提示,手动请求补全的行为保持不变。该模式已核对最低支持版本 VS Code 1.95.0 的命令实现和空候选处理,无需提高版本要求。

**C 函数跳转:**在 .c / .h 的函数名上按 F4,或从命令面板执行 C:转到函数实现,直接定位带函数体的定义;多个候选时选择目标。也接入标准 F12 / Ctrl+单击 定义查询,这些入口会合并其他语言扩展的结果。若用户已有 F4 快捷键配置,其优先级高于插件默认绑定,需将 C 文件的 F4 绑定到 verilogFormatter.c.goToFunction。

优先使用当前未保存缓冲区中的实现,再查找同目录同名 .c,最后搜索当前文件所属工作区的 .c / .h。无需编译数据库或 SDK 头文件配置,支持 _Noreturn、多行参数、指针返回值及常见函数属性;忽略原型、调用、注释、字符串及宏定义,避免跳到其他 .c 的 static 函数。工作区搜索跳过常见构建目录及值为 true 的 files.exclude / search.exclude;已打开文件和同名 .c 仍可直接查找。

这是普通 C 函数的文本导航,不判断 #if 分支是否启用,不解析宏生成的函数名、函数指针目标、C++ 成员或重载,也不替代 C/C++、clangd 的语义服务。可通过 verilogFormatter.c.functionNavigation 关闭本功能。不会添加新的编辑器右键菜单或禁用其他扩展。

支持 .c、.cpp、.h 文件,使用 Ctrl+Alt+F 或 Shift+Alt+F 格式化。通用空格、缩进、花括号布局和换行实际调用 clang-format,继承当前文件所在工程的 .clang-format,没有配置时采用 LLVM 风格。在此基础上保留四空格缩进和宏体布局,并应用以下定制对齐:

  • 按完整类型、变量名、等号、初始值、分号和行尾注释多列对齐连续变量定义,支持 uint32_t、static bool 等混合类型。指针及引用符号单独占列并紧贴名称,使 *payload 中的 payload 与普通变量名首字符对齐,兼容多级指针与指针数组。
  • 连续声明均带 static、const 等修饰符且出现 struct、union、enum 或 class 时,进一步拆分修饰符、类型关键字和类型名列;按缩进、空行和注释分组,其他声明组保留既有类型布局。
  • 对齐函数内连续赋值的左值、等号、右侧表达式、分号和行尾注释,支持数组元素及成员赋值;空行、其他语句和缩进层级变化会开始新组。
  • 按宏名、宏值和行尾注释对齐连续 #define,带注释和无注释的宏共同计算列宽。
  • 保留多行宏的续行、反斜杠和原有宏体布局;注释中的括号(如 Doxygen @{)由 clang-format 按注释解析。
  • 保留已分行的 = { .成员 = … } 指定成员初始化布局,外层成员逐行排列,内嵌的小数组可继续保持一行;原有单行初始化仍按通用规则处理。
  • 结构体数组采用 AlignArrayOfStructures: Left:同列数的表格元素每项一行,按字段列左对齐,避免长命令表合并为一行;普通一维数组保持通用规则。
  • 完整格式化时,非空 C/C++ 文件末尾保留一个换行,编辑器中显示一个空白行;缺少时补齐,多余空行收为一个,沿用 LF/CRLF。选区未包含文件末尾时不调整文件尾,空文件保持为空。
  • 按参数列对齐连续同名函数调用的逗号、右括号和行尾注释,保留嵌套表达式;函数名、参数数量、缩进或分组边界变化时分别对齐。
  • 按类型、变量名、分号和注释多列对齐结构体成员。
  • 按基础类型、别名、分号和行尾注释对齐连续简单 typedef,支持 /**< … */、/* … */、// 注释;不同缩进、空行或其他语句分别分组。
  • 枚举成员一行一个(AllowShortEnumsOnASingleLine: false),并按枚举项名称、赋值表达式、逗号和注释多列对齐枚举定义。
  • switch 内的 case、default 标签缩进一级(IndentCaseLabels: true),分支语句再缩进一级;连续 case 保持同级。
  • 独立成行的单行 Doxygen 注释 /** … */、/*! … */ 展开为多行,起止标记各占一行、正文使用 * 前缀;保留正文内容和内部空格。行尾成员说明 /**< … */、普通注释、宏续行、原始字符串及 clang-format off 区域不参与此展开,已有多行注释继续沿用 clang-format 的处理。

例如 /** @brief FileSaveParams 命令参数,字段按协议顺序排列。 */ 格式化为:

/**
 * @brief FileSaveParams 命令参数,字段按协议顺序排列。
 */

函数体固定保持多行(AllowShortFunctionsOnASingleLine: None),已有的单行函数也会展开;调用、控制条件、函数签名、花括号和空行继续遵循 clang-format 的通用规则。行宽设置 verilogFormatter.c.columnLimit 默认为 999999,优先于工程的 ColumnLimit;可在 VS Code 用户或工作区设置中修改,下一次格式化即生效,设为 0 时取消行宽限制。其他样式仍可通过工程的 BreakBeforeBraces 等选项调整。后处理保留 clang-format 的换行、原始字符串、多行注释和 clang-format off/on 区域;定制列对齐可能增加行宽。

需要 clang-format 18+。默认优先复用 Microsoft C/C++ 扩展自带的程序,否则从 PATH 查找;也可在用户设置 verilogFormatter.c.clangFormatPath 中指定可执行文件的绝对路径。该设置仅作用于当前机器。程序不可用或工程配置错误时报告失败,不应用局部结果。

选区格式化向 clang-format 提供完整文档及所选行范围,保留函数、宏和注释上下文;按 clang-format 规则可能扩展到完整语句。格式化期间继续编辑会使过期结果被丢弃。

开发验证时,可设置环境变量 CLANG_FORMAT_TEST_EXE 为本机 clang-format 的绝对路径,然后执行 npm test -- --runInBand,启用真实程序集成测试;未设置时只运行独立单元测试并跳过该组集成测试。

MATLAB

已内置 MathWorks MATLAB 扩展 v1.3.13 的客户端、语言服务器、语法资源及 MATLAB 侧支持代码,不需要另行安装官方扩展。

  • 基础编辑:识别 .m 文件、语法高亮、片段、注释、折叠和代码节显示。
  • 智能编辑:自动补全、参数提示、定义跳转、引用、重命名、大纲、代码分析及快速修复。
  • 执行与调试:运行文件/代码节/选区、交互终端、中断、断点、单步、调用栈及调试变量。
  • 工作区:查看变量名称、值、大小及类型,支持排序、重命名、删除和可支持类型的内联编辑。
  • 工程与路径:新建/打开/关闭 MATLAB Project、切换目录、加入搜索路径、在 MATLAB 中打开文件。
  • 测试:发现并运行类、函数和脚本测试,包含参数化测试、结果和输出。
  • 连接与授权:连接/断开 MATLAB、安装路径设置、可选登录界面及语言服务器日志。

运行、调试和智能编辑需要已安装并可使用的 MATLAB R2021b 或更高版本;工作区面板需要 R2023a 或更高版本。Jupyter 工作流仍需要单独安装 Jupyter 扩展和 MATLAB Kernel,上游仓库本身不包含这两个组件。

配置 MATLAB.installPath 为 MATLAB 安装根目录(例如 D:\tools\matlab\R2025b)。内置版本默认 MATLAB.matlabConnectionTiming: "onDemand",避免编辑 Verilog/C 时自动启动 MATLAB;可改为 onStart 或 never。未受信任工作区不会启动 MATLAB 语言服务器。

F5 运行文件,Ctrl+Enter 运行当前节,Shift+Enter 运行选区;从左侧 MATLAB 面板查看工作区,从“测试”面板添加测试文件/文件夹。

如果同时启用官方 MathWorks.language-matlab 扩展,将复用官方运行服务以避免重复注册。禁用官方扩展并重新加载窗口即可使用内置实现。内置版本不向 MathWorks 发送扩展遥测。

MATLAB.formatter 可选择 hanxuyao(默认,保留下述定制规则)或 mathworks(使用 MATLAB 语言服务器格式化)。文档、选区以及插件快捷键会跟随此设置切换。

MATLAB 设置说明、下拉选项和工作区设置分组使用中文。设置项标题由 VS Code 根据英文配置键生成,因此在说明开头补充对应中文名称;原有配置键、选项值和默认行为保持不变。

原有格式化支持语言 ID 为 matlab 的文件,使用 Ctrl+Alt+F 或 Shift+Alt+F 格式化:

  • 按 function、if、for、switch 等块结构统一为四空格缩进。
  • 对齐整个 %% 配置单元内的变量名、=、分号和行尾 % 注释列;单 % 小标题和空行不打断对齐,下一条 %% 单元节标题会开始新区域。
  • 函数调用和计算式赋值语句只按块结构缩进,不参与变量表对齐;字符串、数值、纯数字范围、布尔值及空数组/空元胞配置值参与对齐。
  • 执行赋值语句会清理旧对齐遗留的等号和分号前空格,但不会与其他执行语句强制对齐。
  • 新节内只有一个配置变量时,使用自然单空格布局,不继承前一节的对齐列宽。
  • 保留字符串中的 %,不将其误判为注释。

Verilog

🎨 代码格式化

快捷键 Ctrl+Alt+F 或 Shift+Alt+F(格式化文档)。

规则 说明
begin 另起一行 always/if/else/for ... begin 自动拆为两行
缩进重算 基于 begin/end 嵌套栈,统一缩进为 2 个空格
信号声明对齐 reg/wire/logic 按 类型/位宽/名称/分号 四列对齐
端口声明对齐 input/output/inout 按 方向/类型/位宽/名称/逗号 五列对齐
localparam 对齐 多行 localparam 按名称/值/注释三列对齐
行尾注释对齐 连续代码块的 // 注释对齐到同一列
属性前缀支持 (* mark_debug = "true" *) 声明单独分组对齐
行尾空格清除 格式化后自动去除每行末尾多余空格
例化参数展开 将单行例化头中的具名 #(.参数(值), …) 拆为独立参数行,并与端口列表分别对齐;模块声明、位置参数、宏体及夹有注释的紧凑参数列表保持原有布局

启用 Verilog/SystemVerilog 保存时自动格式化(settings.json):

{
  "verilogFormatter.formatOnSave": true
}

💡 代码补全(IntelliSense)

输入时自动弹出补全列表,或按 Ctrl+Space 手动触发,支持三层补全:

层级 内容 说明
关键字 always、assign、module 等 内置 50+ Verilog/SV 关键字
当前文件符号 信号、端口、参数 来自当前文件,排序靠前
工作区模块名 跨文件模块 显示来源文件名

每个补全项携带类型图标和声明原文,鼠标悬停可预览完整声明。


✂️ Snippet 代码片段

输入前缀后按 Tab 展开,支持 Tab 键在各占位符间跳转:

前缀 展开内容
module 完整 module 模板(含文件头注释)
always_ff 带复位的时序逻辑 always 块
always_comb 组合逻辑 always 块
alwaysclk 时钟上升沿 always 块
initial initial 仿真块
case case 语句(含 default)
ifelse if-else 语句
for for 循环
assign assign 连续赋值
parameter parameter 声明
localparam localparam 声明
reg reg 信号声明(对齐格式)
wire wire 信号声明(对齐格式)
timescale `timescale 指令
fileheader Verilog 文件头注释模板
fsm 两段式状态机完整模板

🌲 文件树

在侧边栏 Verilog Files 面板中以树状结构展示工作区内所有 Verilog/SystemVerilog 文件,并解析模块例化层次关系,方便快速定位和导航。


⚡ 一键例化

快捷键 Ctrl+Alt+I,自动生成当前模块的例化代码并复制到剪贴板,格式如下:

module_name u_module_name (
    .port_a  ( port_a  ),  // i
    .port_b  ( port_b  ),  // o
    .port_c  ( port_c  )   // o
);

端口名、信号名、注释列自动对齐。同时支持生成 Testbench 框架(命令:Generate Testbench)。


🎨 语法高亮

支持以下文件类型的语法高亮:

扩展名 语言
.v / .vh Verilog
.sv / .svh SystemVerilog
.vhd / .vhdl VHDL
.ucf Xilinx UCF 约束
.xdc Xilinx XDC 约束
.adc Anlogic ADC 引脚约束
.sdc SDC 时序约束
.tcl Tcl 脚本
.do ModelSim DO 脚本
.cst 高云 CST 约束

Anlogic ADC 文件支持整文档或选区格式化,可自动对齐信号名及 LOCATION、IOSTANDARD、DRIVESTRENGTH 等属性列。


🔍 语法跳转 & 定义悬停

  • 跳转到定义:F4 或 F12,快速跳转到模块、端口、寄存器、wire 的定义位置
  • 查看定义:Alt+F4,Peek 弹窗查看定义,无需离开当前文件
  • 悬停提示:鼠标悬停在变量或模块名上,即可查看其声明信息

支持以下声明形式:

  • 多名称声明:reg a, b, c;
  • 带初值声明:reg [3:0] cnt = 4'd0;
  • 属性前缀:(* mark_debug = "true" *) reg flag;

✅ 语法检查

集成 xvlog(Vivado 自带工具)进行 Verilog/SystemVerilog 语法检查,错误和警告直接显示在编辑器问题面板。

启用方式(settings.json):

{
  "verilogFormatter.lintEnabled": true
}

🔄 UCF 转 XDC

命令面板搜索 Convert UCF to XDC,自动将 Xilinx UCF 约束文件转换为 XDC 格式。


🔢 数字递增 / 递减

  • Ctrl+Alt+↑:递增选中数字
  • Ctrl+Alt+↓:递减选中数字

TODO

📋 TODO 树视图

侧边栏 TODO 面板扫描整个工作区(使用 ripgrep),在树视图中展示所有 TODO/FIXME 等注释标签,点击条目直接跳转到对应文件行。

支持三种视图模式(工具栏切换):

模式 说明
树视图(默认) 按文件夹层级展示,可折叠
平铺列表 所有条目扁平展示
按标签分组 一级为 TODO/FIXME/...,二级为具体条目

工具栏按钮:折叠全部、树/平铺/标签分组切换、过滤清除、手动刷新。

右键菜单:隐藏此文件/文件夹、重置路径过滤。


🎨 行内高亮

打开文件时自动高亮 TODO 标签,各标签颜色可在配置中自定义。


🔍 前后导航

命令面板搜索 TODO: 跳到下一个 / TODO: 跳到上一个,在当前文件内的 TODO 条目间快速跳转。


🏷️ 标签管理

命令面板搜索 TODO: 添加标签 / TODO: 删除标签,动态管理扫描的标签关键字,无需手动编辑 settings.json。


配置项

{
  // 缩进空格数,默认 2
  "verilogFormatter.indentSize": 2,

  // 是否对齐行尾注释,默认 true
  "verilogFormatter.alignPortComment": true,

  // begin 是否另起一行,默认 true
  "verilogFormatter.newlineBeforeBegin": true,

  // Verilog/SystemVerilog 保存时自动格式化,默认 false
  "verilogFormatter.formatOnSave": false,

  // C/C++ 保存时自动格式化,默认 false
  "verilogFormatter.c.formatOnSave": false,

  // MATLAB 保存时自动格式化,默认 false
  "verilogFormatter.matlab.formatOnSave": false,

  // Anlogic ADC 保存时自动格式化,默认 false
  "verilogFormatter.adc.formatOnSave": false,

  // 是否启用 xvlog 语法检查,默认 false
  "verilogFormatter.lintEnabled": false,

  // 是否启用悬停查看定义,默认 true
  "verilogFormatter.hoverEnabled": true
}

四个保存开关互相独立,均支持用户和工作区设置,下一次保存即生效。VS Code 自带的 editor.formatOnSave 另行配置。

**从 1.x 升级:**原 verilogFormatter.formatOnSave 仅保留为 Verilog/SystemVerilog 开关,不再同时开启 C/C++、MATLAB 和 ADC。如果以前依赖总开关开启这些语言,需要分别开启对应的新设置;新增开关默认关闭。

TODO 配置

// TODO 相关配置
{
  // 扫描的标签关键字,默认 ["TODO","FIXME","NOTE","HACK"]
  "verilogFormatter.todo.tags": ["TODO", "FIXME", "NOTE", "HACK"],

  // 排除的 glob 模式
  "verilogFormatter.todo.excludePatterns": ["**/node_modules/**", "**/.git/**", "**/out/**"],

  // 状态栏显示 TODO 计数
  "verilogFormatter.todo.showInStatusBar": true,

  // 是否启用行内高亮
  "verilogFormatter.todo.highlightEnabled": true,

  // 所有标签的默认高亮
  "verilogFormatter.todo.defaultHighlight": {},

  // 各标签的个性化高亮
  "verilogFormatter.todo.customHighlight": {}
}

快捷键汇总

快捷键 功能
Ctrl+Alt+F 格式化当前文件
Ctrl+Alt+I 一键例化当前模块
Ctrl+Space 触发代码补全
F4 跳转到定义
Alt+F4 Peek 查看定义
Ctrl+/ 行注释切换
Ctrl+Alt+↑ 递增选中数字
Ctrl+Alt+↓ 递减选中数字

开发

环境要求

  • Node.js ≥ 18
  • VS Code ≥ 1.95(Rainbow CSV v3.24.1 的最低要求)

安装依赖 & 编译

npm install
npm run setup:matlab
npm run compile

调试

按 F5 启动扩展开发实例,打开任意 .v / .sv 文件测试各功能。

打包安装

当前安装包面向 Windows x64,包含 MATLAB 运行组件和 Windows ripgrep。发布时上传生成的 .vsix 文件;修改记录见 CHANGELOG.md。

npm run package -- --target win32-x64 --out hanxuyao-plugin-2.2.7-win32-x64.vsix
code --install-extension hanxuyao-plugin-2.2.7-win32-x64.vsix --force

MATLAB、highlight-words、Rainbow CSV、tcl-navigate 上游源码、固定提交和本地适配说明见 THIRD_PARTY_NOTICES.md。npm run compile 会构建全部内置组件;仅构建高亮、CSV 和 Tcl 组件可运行 npm run compile:editor-tools。

代码结构

hanxuyao-plugin/
├── src/
│   ├── extension.ts               # 入口,注册所有 Provider 和命令
│   ├── editorToolsWeb.ts          # 浏览器中的词语高亮与 CSV 入口
│   └── features/
│       ├── editorTools/           # 词语高亮与 CSV 生命周期、资源路径适配
│       ├── tcl/                   # Tcl 导航集成与原扩展共存
│       └── verilog/
│           ├── formatter.ts       # 格式化核心逻辑
│           ├── completionProvider.ts # 代码补全(关键字/符号/模块)
│           ├── instantiator.ts    # 一键例化 / Testbench 生成
│           ├── fileTree.ts        # 文件树 TreeDataProvider
│           ├── symbolProvider.ts  # 符号索引、跳转、悬停
│           ├── linter.ts          # xvlog 语法检查
│           ├── ucfToXdc.ts        # UCF → XDC 转换
│           └── numberEdit.ts      # 数字递增/递减
├── resources/
│   └── verilog/
│       ├── snippets/
│       │   └── verilog.code-snippets  # Verilog/SV 代码片段
│       ├── syntaxes/                  # 语法高亮 tmLanguage 文件
│       └── language-configurations/
│           ├── language-configuration-verilog.json  # Verilog/SV 注释配置
│           ├── language-configuration-vhdl.json     # VHDL 注释配置
│           └── language-configuration.json          # XDC/TCL/UCF 注释配置
├── icon.png                       # 插件图标
├── package.json                   # 扩展元数据与配置项声明
└── tsconfig.json                  # TypeScript 编译配置

修改记录

GitHub 自动测试、打包和发布的配置及使用方法见 自动发布。

版本 日期 修改内容
v2.2.7 2026/10/28 C/C++ 格式化后保留一个文件尾换行,兼容 LF/CRLF、空文件及选区边界
v2.2.6 2026/10/21 将原图标等比例缩至 395×855 并保存为 PNG,解除 Marketplace 尺寸限制,发布此前累计修复
v2.2.5 2026/10/21 修复 C/C++ 自动输入无候选时弹出 No suggestions.,保留正常补全及参数提示
v2.2.4 2026/10/20 结构体数组逐项换行并按字段列对齐,修复长命令表被合并为一行的问题
v2.2.3 2026/10/15 分列对齐带修饰符声明的类型关键字和类型名,保持指针、名称及后续列对齐
v2.2.2 2026/10/14 分离指针符号列,使指针与普通变量名称对齐,保持后续等号、分号和注释列对齐
v2.2.1 2026/10/14 将独立单行 Doxygen 注释展开为标准多行块,保留正文、行尾成员注释和受保护区域,兼容选区与重复格式化
v2.2.0 2026/10/12 新增 C 函数定义跳转和 F4 实现查找,支持头文件到源码、未保存缓冲区及工作区搜索
v2.1.2 2026/10/12 保留 C/C++ 多行指定成员初始化及内嵌单行数组布局,兼容选区格式化和行宽设置
v2.1.1 2026/10/09 C/C++ 的 case/default 相对 switch 缩进一级,保留连续标签和嵌套分支的正确层级
v2.1.0 2026/10/09 新增编辑器右键代码折叠/展开子菜单,复用当前块和全部代码的原生折叠命令,不改写源码
v2.0.3 2026/10/08 修复 Verilog 紧凑例化参数留在一行的问题,拆分具名参数并保留嵌套表达式,参数与端口分别对齐
v2.0.2 2026/09/29 禁止枚举合并为单行,保持每个成员独占一行并保留既有枚举项对齐
v2.0.1 2026/09/29 修复连续简单 typedef 的类型、别名、分号和行尾注释对齐,保留复杂声明及分组边界
v2.0.0 2026/09/24 按 Verilog/SystemVerilog、C/C++、MATLAB、ADC 拆分保存格式化开关;原开关仅控制 Verilog,提供独立工作区配置及升级说明
v1.6.3 2026/09/23 禁止短函数合并为单行,展开已有单行函数,保留可配置行宽及其他格式规则
v1.6.2 2026/09/23 C/C++ 行宽默认设为 999999,支持用户或工作区设置;记录新版核验后自动清理旧安装包的授权
v1.6.1 2026/09/22 每次修改通过验证后默认自动打包发布,统一仓库规则、版本规则和发布文档;发布此前完成的 C/C++ clang-format 集成
v1.6.0 2026/09/22 C/C++ 通用格式与换行接入 clang-format,保留定制多列对齐,修复宏续行和枚举缩进,支持工程样式及完整上下文选区格式化
v1.5.0 2026/09/21 内置 Tcl 大纲、定义跳转、折叠、悬停及粘性滚动支持,修复上游导航边界,同步简介与文档;调整为按功能范围选择版本
v1.4.11 2026/09/21 内置 highlight-words 与 Rainbow CSV,保留完整命令、配置、CSV/RBQL 运行资源和 Web 入口;同步插件简介、中文功能说明与代码注释
v1.4.10 2026/09/15 统一宏定义的宏值和注释列,新增连续同名函数调用的参数、逗号和右括号对齐,保留字面量及嵌套表达式
v1.4.9 2026/09/15 补齐函数内连续赋值的等号、表达式、分号和注释对齐,支持数组元素及成员赋值,保留分组边界和字面量内容
v1.4.8 2026/09/15 修复 C/C++ 混合类型变量声明对齐,补齐等号、初始值、分号和行尾注释列,统一等号后的空格
v1.4.7 2026/09/11 将 MATLAB 设置说明、下拉选项和工作区分组中文化,保留原有配置键及选项值
v1.4.6 2026/09/11 固定验证后的自动发布流程,要求本地只保留最新验证通过的插件安装包
v1.4.5 2026/09/11 整理 MATLAB 集成发布说明与使用要求,补齐构建步骤,生成 Windows x64 安装包;新增 GitHub Actions 标签自动发布
v1.4.4 2026/09/11 内置 MathWorks MATLAB 编辑、运行调试、工作区、工程和测试功能,保留定制格式化并增加实现切换
v1.4.3 2026/09/11 新增 Codex 仓库规则,要求每次更新同步版本号和修改记录,并从安装包排除开发规则
v1.4.2 2026/08/21 将跨行的 C/C++ 控制条件整理为单行
v1.4.1 2026/08/21 输入 C/C++ 标识符时主动显示语言服务器建议,输入 ( 时显示函数参数提示
v1.4.0 2026/08/21 新增 C/C++ 函数体、控制语句和嵌套代码块缩进重算
v1.3.4 2026/08/21 修复 VSIX 未打包 Windows ripgrep 导致 TODO Tree 扫描失败的问题
v1.3.3 2026/08/21 修复 static bool 等单行函数签名的左花括号换行问题
v1.3.2 2026/08/21 将枚举左花括号放到类型声明末尾
v1.3.1 2026/08/21 将结构体和联合体左花括号放到类型声明末尾
v1.3.0 2026/08/21 新增枚举项名称、赋值表达式、逗号和注释多列对齐
v1.2.2 2026/08/21 在类型定义结束与后续注释或类型声明之间增加一个空行
v1.2.1 2026/08/21 修复 Ctrl+Alt+F 被其他 C/C++ 默认格式化器截获的问题
v1.2.0 2026/08/21 新增结构体成员的类型、变量名、分号和注释多列对齐
v1.1.1 2026/08/21 将插件功能介绍调整为有序列表
v1.1.0 2026/08/21 插件更名为 hanxuyao-plugin;新增 C/C++ 变量定义对齐、函数调用单行化和函数左花括号同行格式化
v0.2.0 2026/05/27 新增代码补全、Snippet、保存时自动格式化;修复全部语言注释快捷键
v0.2.0 2026/05/25 新增文件树、例化、语法高亮、跳转、悬停、语法检查、UCF转XDC、数字递增等功能;添加插件图标
v0.1.0 2026/05/25 创建项目,实现代码格式化核心功能
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft