Inline Lint Waivers

Lint waivers can be extracted from user comments containing a specific pragma.

Inline waivers syntax:
 code line 1
 code line 2
 // @DVT_LINTER_WAIVER_START "#NAME#" "#DESCRIPTION#" #STATUS# #CHECKS#
 code line 4
 ...
 code line 7
 // @DVT_LINTER_WAIVER_END "#NAME#"
 code line 8
 code line 10 // @DVT_LINTER_WAIVER "#NAME#" "#DESCRIPTION#" #STATUS# #CHECKS#
 code line 11
 code line 12 /* @DVT_LINTER_WAIVER "#NAME#" "#DESCRIPTION#" #STATUS# #CHECKS# */ // inline comment
 code line 13 /* @DVT_LINTER_WAIVER "#NAME#" "#DESCRIPTION#" #STATUS# #CHECKS# */ /* @DVT_LINTER_WAIVER "#NAME#" "#DESCRIPTION#" #STATUS# #CHECKS# */ // inline comment

Parameters:

#NAME#

  • Must be an unique id of a waiver

  • It is optional; if not defined, a default name containing file and line is used

#DESCRIPTION#

  • Used in GUI as a description box for the waiver

  • It is optional; if not defined, a default description containing file and line is used

#STATUS#

  • Any value from the following set of values (mandatory)

    • error : hits matched by this waiver will be reported as errors

    • warning : hits matched by this waiver will be reported as warnings

    • info : hits matched by this waiver will be reported as infos

    • disable : hits matched by this waiver will not be stored

  • If two or more waivers cover the same piece of code they will apply in the order they were declared.

  • Inline waivers are applied before file waivers

#CHECKS#

  • Is a comma separated list of check names

Note

  • Inline waivers are applied only on failures in the same file where they were declared.

  • The failures in files included between begin and end of a waiver are not affected by the waiver.

  • The begin/end of multiline waivers must always be in the same file.

  • The multiline waivers can be interlaced by using names for start and end pragmas.

  • The inline waivers must be inserted before inline comments as block comments, otherwise they will not be identified.

To create an inline waiver invoke the Quick Fix… command on an existing error and pick the Waive … error inline proposal. The parameters that can be configured are:

  • Comment type: the type of comment that will be inserted in code

  • Name: an unique name for the waiver

  • Description: a short explanation for the waiver

  • Status: the status that will be applied to the matched failures

  • Check Names: the name of the checks this waiver applies to, separated by comma

    • Insert Check Names button: opens a quickpick with checks available in current linting session; those selected will be added to the waiver

  • Line Ranges: the line, or line range (StartLine:EndLine) this waiver must match

    • Waive Entire File button: replaces the current line or line range with a line range covering the entire file

../../_images/vscode-verissimo-inline-waiver-webview.png