A fast VHDL formatter and linter extension powered by hdlfmtr.
Zero-install
The extension bundles a cross-platform WebAssembly build of the hdlfmtr formatter. No Rust toolchain, no binary download, no PATH configuration - install the extension and it works immediately on Linux, macOS, and Windows.
Features
- Format on save - registers as the default VHDL document
formatter. Enable
"editor.formatOnSave": truein your settings. - Lint diagnostics - unused signals, missing sensitivity-list entries, latch detection, multiple drivers, and more show up in the Problems panel with gutter markers and squiggly underlines.
- 17-pass formatting pipeline - process labels, keyword case, indent normalization, vertical alignment, operator spacing, comma spacing, use-clause sorting, blank-line management, and more.
- Configurable - all hdlfmtr options are exposed as VS Code
settings under the
hdlfmtr.*prefix.
Settings
| Setting | Default | Description |
|---|---|---|
hdlfmtr.indentStyle |
"tabs" |
"tabs", "spaces", or "preserve" |
hdlfmtr.indentWidth |
4 |
Spaces per indent level or tabstop hint |
hdlfmtr.keywordCase |
"lower" |
"lower", "upper", or "preserve" |
hdlfmtr.alignDeclarations |
true |
Align port / signal / variable / port-map / aggregate lists |
hdlfmtr.caseBranchIndent |
true |
Extra indent for case when bodies |
hdlfmtr.sortUseClauses |
true |
Sort consecutive use clauses, group by library |
hdlfmtr.lint |
true |
Show lint diagnostics in Problems panel |
Lint checks
| Code | Description |
|---|---|
unused_001 |
Signal declared but never read or written |
unused_002 |
Signal written but never read |
unused_003 |
Input port never read |
unused_004 |
Output port never assigned |
sens_001 |
Signal read in combinational process not in sensitivity list |
clock_001 |
rising_edge(X) but X not in sensitivity list |
driver_001 |
Signal driven by multiple processes |
latch_001 |
Signal may infer a latch (no default assignment) |
reset_001 |
Inconsistent reset polarity |
Contributing
See the main repository for build instructions and contribution guidelines.