Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Limitations

Known constraints and unsupported behavior. Updated as the parser and LSP mature.

Current (v0.2)

Shipped today:

  • Rust crates (spice-parser, spice-lsp), Tree-sitter grammar, and VS Code extension
  • Syntax diagnostics plus light semantic warnings (spice/duplicate-name, spice/unknown-model)
  • Document outline, go to definition, and find references
  • Debounced diagnostics on edit; textDocument/references honors includeDeclaration
  • Marketplace extension with bundled binaries, TextMate highlighting, and restart command
  • File associations for .cir, .sp, .spf, .net, and .ckt

Current limitations

LimitationWorkaround
Ngspice-oriented parsingAvoid LTspice/HSPICE-specific syntax until v0.4
No connectivity analysisManual review; dangling/floating checks arrive in v0.5
Single-file analysis.include not followed
No formatter or completionManual alignment / typing until v0.3–v0.4
Comment toggle uses * only; and $ are highlighted as comments; VS Code allows one lineComment
No Windows arm64 bundled binarySet spiceLsp.serverPath or put spice-lsp on PATH
Linux bundled binary needs glibc 2.31+Upgrade the host OS, or build spice-lsp locally and set spiceLsp.serverPath
Shared grammar for all dialectsDialect-specific parse quirks land in later phases; hover/docs already switch
Bare numeric lines outside .DATAPrefer + continuations or keep value rows inside .DATA.ENDDATA

Post-MVP: dialect reference

The reference library under reference/ grows incrementally:

  • Shared baseline covers common directives (.subckt, .tran, .dc, .op, .ac, …) and elements (R, C, X)
  • HSPICE overlays expand analysis/control docs (.data, multi-mode .dc, .op, .measure, .probe, .lib, …) — see Dialect reference catalog
  • LTspice remains a stub corpus; missing entry → no hover (not an error)
  • Reference describes language constructs, not simulator version release notes

See Dialect reference and net semantics.

Post-MVP: connectivity analysis

Dangling-node and floating-net diagnostics are heuristic:

LimitationDetail
Single fileIgnores nets defined across .include until cross-file index exists
Ground aliasesDefaults to 0, gnd, GND; exotic ground names may need config
False positivesIntentionally open probe points may warn until suppression exists
Not full ERCDoes not check layout, EM, or foundry rules
Ideal elementsVoltage sources and unusual topologies need careful graph rules

These warnings supplement — not replace — simulator and layout review.

Dialect differences

AreaNgspiceLTspiceHSPICE
Comments*, ;, $$ common*
Directives / optionsBaseline corpusOverrides in reference/ltspice/Overrides in reference/hspice/

Tri-dialect parsing and reference namespaces target v0.4–v0.5. Current parsing is Ngspice-oriented.

Parser robustness

  • Error recovery may leave incomplete indexes until syntax is fixed
  • Very large files still re-parse the full buffer after the debounce window
  • LSP assumes UTF-8 source

Editor / LSP

  • UTF-16 positions per LSP spec
  • Stdio transport only
  • No workspace-wide symbol search until include-graph analysis exists
  • Diagnostics on didChange are debounced (~150 ms); navigation requests re-analyze on demand so the index stays current

Reporting issues

Include:

  1. Minimal netlist snippet
  2. Dialect (Ngspice / LTspice / HSPICE)
  3. Expected vs actual diagnostic or hover text

Add a fixture under test-data/ when fixing.