Code Tags
VSG supports inline tags embedded into code to enable or disable rules. This can be useful in fine tuning rule exceptions within a file. The code tags are embedded in comments similar to pragmas, and must be on it’s own line.
Full rule exclusion
Entire portions of a file can be ignored using the vsg_off and vsg_on tags.
-- vsg_off
process (write, read, full) is
begin
a <= write;
b <= read;
end process;
-- vsg_on
The vsg_off tag disables all rule checking. The vsg_on tag enables all rule checking, except those disabled by a configuration.
Individual Rule Exclusions
Individual rules can be disabled by adding the rule identifier to the vsg_off and vsg_on tags. Multiple identifiers can be added.
-- vsg_off process_016 process_018
process (write, read, full) is
begin
a <= write;
b <= read;
end process;
-- vsg_on
The bare vsg_on enables all rules not disabled by a configuration.
Each rule can be independently enabled or disabled:
-- vsg_off process_016 process_018
process (write, read, full) is
begin
a <= write;
b <= read;
end process;
-- vsg_on process_016
FIFO_PROC : process (write, read, full) is
begin
a <= write;
b <= read;
end process;
-- vsg_on process_018
FIFO_PROC : process (write, read, full) is
begin
a <= write;
b <= read;
end process FIFO_PROC;
In the previous example, the process_016 and process_018 are disabled for the first process. Process_018 is disabled for the second process. No rules are disabled for the third process.
Next Line Rule Exclusions
Rules can be disabled for a single line using the vsg_disable_next_line tag. Multiple identifiers can be added to a single tag..
-- vsg_disable_next_line process_016
process (write, read, full) is
begin
a <= write;
b <= read;
-- vsg_disable_next_line process_018
end process;
In the above example, process_016 will only be disabled for the line with the process keyword. Successive processes without labels will be flagged by process_016.
Sequential next line exclusions will also be honored:
-- vsg_disable_next_line process_002
-- vsg_disable_next_line process_016
process(write, read, full) is
begin
a <= write;
b <= read;
-- vsg_disable_next_line process_018
end process;
In the above example, both process_002 and process_016 will be disabled for the line starting with the process keyword.
Comments in code tags
Code tags themselves are comments, however there is a method to allow commenting of the code tag on the same line. The colon character, :, can be used to document why the code tag exists.