HSPICE IntelliSense
VS Code extension for HSPICE netlist files (.sp, .spi, .hsp, .net, .lib, .l).
Installation
From VSIX file:
- Open VS Code
Ctrl+Shift+P → Extensions: Install from VSIX…
- Select
hspice-intellisense-0.1.0.vsix
- Reload when prompted
From Marketplace: (not yet published)
Features
Go to Definition — F12
Place the cursor on a subcircuit name in the instance statement (the name at the end of an X instance line) or a device model name in the device statement and press F12 to jump to the .SUBCKT or .MODEL definition. Works across files linked by .INCLUDE, .INC, or .LIB — included files do not need to be open.
Place the cursor on instance statement's node and press F12 to jump to the port node in .SUBCKT definition. Check settings for which instances are indexed for this feature.
Find References — Shift+F12
Place the cursor on a .SUBCKT name or .MODEL name to list every instance statement that references it across all open files. Check settings for which instances are indexed for this feature.
Hover
Hover over a subcircuit name in the instance statement to see its port list. Hover over a model reference to see its type (e.g. nmos, pnp).
Hover over node name in the instance statement to see corresponding subcircuit's port node name. Check settings for which instances are indexed for this feature.
Include File Navigation
Ctrl+CLick file name in .include/.inc/.lib statement - VS Code will navigate to that file.
Syntax Highlighting
Comments (*, $, ;), dot-commands (.SUBCKT, .MODEL, .TRAN, …), device instances, key=value parameters, and numeric literals with engineering suffixes (n, u, m, k, M, G, etc.) are all colorized.
Outline View
The Outline panel (Explorer sidebar) lists all .SUBCKT and .MODEL definitions in the current file, with clickable navigation.
Diagnostics
The extension warns (yellow squiggle) on:
- Undefined subcircuit: an
X instance references a subcircuit name not found in any open file
- Port count mismatch: an
X instance provides a different number of nodes than the .SUBCKT definition declares ports
| Feature |
Detail |
| Case sensitivity |
Case-insensitive; original case preserved for display |
| Line continuation |
+ at line start joins to the previous logical line |
| Comments |
* full-line; $ or ; inline (stripped before parsing) |
.INCLUDE / .INC / .LIB |
Resolved relative to the including file's directory; path may be quoted (single or double) or unquoted |
| Devices |
X (subckt), M (MOSFET), Q (BJT), D (diode), R/C/L (passives), V/I (sources), E/F/G/H (controlled sources), and more |
File Extensions
The extension activates automatically for files with the extensions listed above. For files with other extensions (e.g. .txt, .ll), you have two options:
Additionally, when the extension follows an .INCLUDE / .INC / .LIB chain and reads a file from disk, it automatically switches that file to HSPICE mode the moment you open it — so F12 navigation into included library files works immediately regardless of their extension.
Known Limitations
- Nested
.SUBCKT definitions are not supported (not valid HSPICE syntax).
- Port count mismatch warnings may be spurious for subcircuits using
$PINS or non-standard port constructs.