DVT IDE for VS Code VHDL User Guide
Rev. 24.1.5, 13 March 2024

Chapter 5. Quick Fix Proposals

Quick Fix Proposals are available for problems indicated with a light-bulb on the left side of the editing area.

To display the list of proposals, place the cursor inside the problem highlight range (squiggle underline) and select the "Quick Fix..." command, click on the light-bulb or trigger the context menu of an entry from the Problems View.


Add Port

An error is triggered when connecting a non-existing port in a module instantiation or an entity.

To fix it, select "Add port ..." from the list of proposals and the Refactor Add Port Quick Pick is opened.


Add Signal to Sensitivity List

When the sensitivity list of an always block is incomplete, warnings are triggered for all missing signals.

To fix it, select "Add signal ... to sensitivity list" from the list of proposals.


Create File From Build Configuration Editor

A build configuration error is triggered when a non-existing file is specified for compilation or included as an argument file (for example using -f).

To fix it, select "Create file ... in ..." from the list of proposals. The file is created in the chosen location and opened in a new editor.


Declare Variable

An error is triggered when using an identifier that does not exist, for example, a variable that you did not declare yet.

To fix it, select "Declare variable ..." from the list of proposals. Depending on context, several quick fix proposals might be available:

  1. declare variable

  2. declare argument (if inside a method)

  3. declare field (if inside a class)

  4. declare signal (if inside a module)

The type of the new variable declaration is automatically detected from context and the variable declaration is placed in such a way that it is visible for all usages.


Did You Mean

Typos represent a common source of compilation errors.

To fix such an error, select "Did you mean ..." from the list of proposals. The list may contain up to 3 relevant proposals, available only for unknown identifiers at least 3 characters long.

The undeclared identifier is replaced by a proposal of your choice.


Fully Qualify Type

An error is triggered when accessing a type that is not visible in the current scope, for example, a class defined inside some other package.

To fix it, select "Fully qualify ..." from the list of proposals.


Import Type

An error is triggered when accessing a type declared in a package that was not imported in the current scope.

To fix it, select the "Import ..." from the list of proposals. When the missing type name is provided by multiple packages, all possible imports are proposed.

An "import::*" statement is added at the beginning of the enclosing package (or module, program, etc.). If there are multiple nested modules where the import statement could be inserted, all possible insertion points are proposed.


Remove Signal from Sensitivity List

Unnecessary signals in an always block's sensitivity list are flagged with warnings.

To fix it, select "Remove signal ... from sensitivity list" from the list of proposals.


Remove Signal Never Use

Signals never used are flagged with warnings.

To fix it, select "Remove signal never used ..." from the list of proposals.


Waive Compilation Problems

DVT provides a quick and easy way to waive compilation problems from the editor.

Select "Waive ..." from the list of proposals.

You can change the default waiver severity, description, path, and message in the dialog view. When done, the new waiver is automatically added to the .dvt/waivers.xml file and applied.


Add Case Choice

A warning is triggered when a case statement is missing a case alternative.

To fix it, select "Add case choice ..." from the list of proposals.

The missing case alternative is added at the end of the case construct.


Add Generic to Entity

An error is triggered when assigning a value to a generic that is not defined in an entity.

To fix it, select "Add generic ..." from the list of proposals and the Refactor Add Generic Quick Pick is opened.


Declare Enum Value

An error is triggered when accessing an enumerated type value which does not exist.

To fix it, select "Declare enum type value ..." from the list of proposals.

The new value is inserted in the type declaration.


Replace Deprecated Package

A warning is triggered when importing a deprecated package (for example, the 'eee.std_logic_arith' package).

To fix it, select "Replace deprecated package ... with ..." from the list of proposals.

The non standard package will be replaced with the indicated equivalent.


Remove Library Clause

A warning is triggered when importing a library with implicit access (for example, the 'work' library). DVT provides a quick way to fix it.

To fix it, select "Remove clause library ..." from the list of proposals.

The unnecessary library clause is removed.


Update Entity Instance

Problems are reported when an entity instance does not match the entity definition (has missing or extra port connections).

To fix them, select "Update instance to match entity definition" from the list of proposals.

The extra ports are removed and all the missing ports are added at the end of the instance port list.

Note: The quick fix only works for named port connections.