Skip to content
| Marketplace
Sign in
Visual Studio Code>Formatters>Adolph-AlignNew to Visual Studio Code? Get it now.
Adolph-Align

Adolph-Align

AdolphWang

|
16 installs
| (1) | Free
code align
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Adolph-Align

版本许可证

一款为 Verilog/VHDL 设计的 VS Code 插件,提供代码对齐、文件树导航和信号跳转等功能,旨在提升 HDL 开发效率。


写在前面

  • 注意: 体积有点大,把linux-64和mac-64的jre环境打压缩包了,对应环境的亲自己去解压缩一下 .vscode\extensions\adolphwang.adolph-align-2.1.0\resources\jre ,然后可以将不需要的环境删除

✨ 主要功能

1. 括号内容对齐

选中代码块后,使用快捷键快速对齐括号内的内容:

  • 右对齐: Alt+R
  • 居中对齐: Alt+C
  • 左对齐: Alt+L

2. 智能代码对齐

在打开的 Verilog 文件中,按下 Alt+A 触发智能对齐。支持以下语法结构:

  • 常见预编译指令(注意会将预编译指令进行替换,这个有点不是很友好,现在先就这样吧)
  • parameter / localparam 参数声明
  • port 端口声明
  • reg / wire / integer / real 等内部信号声明
  • 二维数组声明
  • assign 连续赋值语句
  • initial 过程块
  • always 进程块(支持 if-else / case / for 的自动缩进)
  • 模块实例化
  • 门级例化
  • task/Function/generate声明

3. Verilog 文件树

在侧边栏提供一个清晰的模块/实体层级视图,方便快速导航。

4. 定义跳转

按住 Ctrl 并单击信号名,即可跳转到其定义位置。仅支持*.v文件

5. 内置代码片段

提供常用的 Verilog 和 VHDL 代码片段,加速开发。

// Verilog
zhushi、defe_key_word、reg-Signal、reg-x[x:00]  signal
wire-Signal、wire-x[x:00]  signal、task_key_word、case_key_word
input-Signal、input-x[xx:00] Signal
output-s-wire Signal、output-x-wire[xx:00] Signal
output-s-reg Signal、output-x-reg [:00] Signal
repeat_key_word、localparam-c、parameter-c、defparam_key_word
if_a_key_word、else_if_table、else_a_key_word、begin_key_word
jsq、jsq_2level、jsq_3level、shixu-full、shixu-less、Zuhe_logic
module-verilog、my_testbench、head-verilog-self、start_do、ztj_3_level
// VHDL
head-VHDL-self、module-VHDL、vhdl-input-s、vhdl-input-x、vhdl-input-int
vhdl-output-S、vhdl-output-x、vhdl-output-int、vhdl-io-s、vhdl-io-x
vhdl-constant、vhdl-signal-s、vhdl-signal-x、vhdl-signal-int、vhdl-note
vhdl-process-less、vhdl-process-full、vhdl-if-a、vhdl-elsif-a、vhdl-else-b
vhdl-case、vhdl-function、vhdl-procedure、vhdl-component、vhdl-test-bench
vhdl-process-normal、vhdl-file-opt

⚙️ 配置选项

您可以在 VS Code 的设置页面或 settings.json 文件中自定义对齐规则。

提示:每级缩进固定为4个空格,未来可能作为可配置项。

{
    // 端口对齐 (Port Alignment)
    "adolphAlign.port_num2": 16, // 行首 -> signed/unsigned
    "adolphAlign.port_num3": 24, // 行首 -> 位宽 '['
    "adolphAlign.port_num4": 48, // 行首 -> 信号名
    "adolphAlign.port_num5": 80, // 行首 -> 行尾符号 (, or ;)

    // 内部信号对齐 (Signal Alignment)
    "adolphAlign.signal_num2": 16, // 行首 -> signed/unsigned
    "adolphAlign.signal_num3": 24, // 行首 -> 位宽 '['
    "adolphAlign.signal_num4": 48, // 行首 -> 变量名
    "adolphAlign.signal_num5": 80, // 行首 -> 行尾符号 (;)

    // 参数对齐 (Parameter Alignment)
    "adolphAlign.param_num2": 24, // 行首 -> 参数名
    "adolphAlign.param_num3": 48, // 行首 -> 赋值符号 (=)
    "adolphAlign.param_num4": 80, // 行首 -> 行尾符号 (; , or //)

    // Assign 语句对齐 (Assign Statement Alignment)
    "adolphAlign.assign_num2": 12, // 行首 -> 变量名
    "adolphAlign.assign_num3": 48, // 行首 -> 赋值符号 (=)
    "adolphAlign.assign_num4": 80, // 行首 -> 行尾符号 (;)

    // 模块实例化对齐 (Instance Alignment)
    "adolphAlign.inst_num2": 40, // 端口名 '.' -> 左括号 '('
    "adolphAlign.inst_num3": 80, // 端口名 '.' -> 右括号 ')'

    // 位宽格式 (Bit-width Formatting)
    "adolphAlign.upbound": 2, // 位宽 `[]` 内左侧空格数
    "adolphAlign.lowbound": 2, // 位宽 `[]` 内右侧空格数

    // 预编译指令对齐 (Preprocessor Directive Alignment)
    "adolphAlign.preprocessor_col1": 12, // 信号名对齐列
    "adolphAlign.preprocessor_col2": 24, // 字符串对齐列

    // Always 块对齐 (Always Block Alignment)
    "adolphAlign.always_lvalue_align": 28, // 左值变量对齐列
    "adolphAlign.always_op_align": 32,     // 赋值符号对齐列
    "adolphAlign.always_comment_align": 80, // 行尾注释对齐列

    // Case 语句对齐 (Case Statement Alignment)
    "adolphAlign.case_colon_align": 20, // 条件 -> 冒号 ':' 对齐列

    // 缩进回退 (Fallback Indent)
    "adolphAlign.fallbackIndentSize": 4 // 非AST解析时的缩进大小
}

⚠️ 兼容性与依赖

  • Java 环境: 本插件的AST(抽象语法树)解析功能依赖 Java 环境。已内置了 win-x64、linux-x64 和 mac-x64 平台的解析器(仅在 win-x64 上完整测试)。
  • 其他平台: 如果您使用其他操作系统或架构,或遇到解析问题,请手动安装 VS Code 官方的 Extension Pack for Java 扩展包以获得支持。

📜 更新日志

v2.0.6

  • 修复: 修复了always的不可综合语句中,丢失内容的问题

v2.0.5

  • 优化: 优化了插件打包机制,使用webpack替换vsce工具

v2.0.4

  • 修正: 没错,又忘记关闭调试模式了,啊哈哈哈

v2.0.3

  • 修正: 体积有点大,把linux-64和mac-64的jre环境打压缩包了,根据需要自行使用相应的环境,另外的用不到的可以删除
  • 修正: 集成ctags,这样不需要独立安装配置ctags以实现文件/信号跳转,声明悬停。
  • 新增: 集成iverilog,会对预编译指令进行处理替换(这个只集成了win-x64平台,所以其他平台mac/linux 需要自行安装iverilog)。

v2.0.2

  • 修正: 忘记关闭调试模式了,人一上了年纪就容易忘事。
  • 修正: 增加代码片段使用关键字注解。

v2.0.1

  • 修正: 解决了 assign 语句匹配缺失的问题。
  • 修正: 优化了信号/端口声明及模块实例化中最后一行注释的对齐效果。

v2.0.0

  • 新增: 全新的解析引擎,同时支持 AST 识别 和 正则表达式识别,大幅提升对齐准确性。

v1.1.0

  • 修复: 解决了需要多次执行对齐指令才能生效的 Bug。
  • 修复: 修正了同一 module/entity 对应多个文件时,文件树节点覆盖显示的问题。

v1.0.5

  • 修复: 修复了配置项修改后不生效的 Bug。

v1.0.4

  • 新增: 增加对 real, signed 类型的对齐支持。
  • 新增: 文件树增加对 VHDL 模块的识别。

... (更早版本省略)


📦 仓库

项目地址: adolph-align on GitHub


❤️ 致谢

本插件的开发参考了以下优秀项目:

  • Verilog Hdl Format
  • Verilog-HDL/SystemVerilog/Bluespec SystemVerilog Support
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft