@vhdl-linter/vhdl-linter

A typescript based linter for vhdl


License
GPL-3.0
Install
npm install @vhdl-linter/vhdl-linter@1.8.17

Documentation

vhdl-linter

Introducing the open-source VHDL Linter, written in TypeScript and thoroughly unit-tested for maximum reliability. Our linter is the perfect tool for checking your VHDL code for errors and ensuring that it adheres to coding standards. With its advanced analysis engine, written in TypeScript, the VHDL Linter can quickly and easily identify any issues in your code, such as syntax errors or suboptimal coding practices. Plus, our extensive unit testing ensures that the linter is reliable and accurate, so you can trust the results it provides. Try the VHDL Linter today and see the difference it can make in your design process.

(written by ChatGPT)

Node CI VUnit Compile TS Lint

Installation

The vhdl-linter can be used as a cli executable or as a VS Code extension.

Stand alone command line executable

npm i -g @vhdl-linter/vhdl-linter

This provides the vhdl-linter executable which can be used to lint one folder from the command line (e.g. for CI).

Extension for VS Code

  • Press Ctrl+P to open the VS Code Quick Open Dialog
  • Enter ext install g0t00.vhdl-linter

Configuration

Rules and style settings can be configured with vhdl-linter.yml configuration files which modifies the default settings:

configuration-example

Features (list is still incomplete)

Project wide rename support

Most identifier can be renamed with the project wide rename feature. This includes:

  • ports
  • signals
  • package names
  • entity names
  • project wide definitions in packages (types, functions, etc.)

rename

Signature Help

Show the signature of the object being instantiated. Currently working for instantiation of:

  • entities
  • procedures
  • components

Signature help is not yet supported for calling of functions.

signature-helper signature-helper-long

Region Folding

Fold regions according to the file content:

  • declarations
  • statements
  • use clauses (incl. library)
  • interface lists
  • special blocks like instantiations, association lists, case (generate), types (record and protected)

Style checking

Checks custom naming styles:

namingStyle

Entity Converter

Automatically convert entities to a commonly used template:

  • instantiation
  • component
  • SystemVerilog instantiation
  • ports to signals

entityConverter

Target library inference

The target library of vhdl design units is parsed from csv files like vunit in the format libary,filename

  • The library is used for auto completion, reference checking and template generation (e.g. instantiation template for entities)