Filter plug-ins

Filters let you modify or delete warnings.

Directory "prolint/filters" contains 4gl procedure files, each .p file in this directory is a filter.


Each time when any rule creates a warning, the warning will first go through each filter before it is published to each outputhandler.
A filter can modify the description or severity fields, or it can mark the warning as 'filtered' in which case the outputhandler will probably ignore the warning.

Each filter has the same API which makes it easy to add your own custom filters. You can use the filters/_template.pp file as a boilerplate for creating a new filter.


The Prolint distribution already contains a couple of standard filters:

nowarn

Directory prolint/settings or each of its subdirectories can contain a nowarn.lst file. In this text-file you can specify
a list of warnings you want to suppress.


This is convenient for sourcefiles (especially includefiles) you can't modify to add _proparse_ directives, like third-party includefiles
or src/adm2, for example.

For more details about the nowarn.lst file, see example file

exclude

Each profile directory (prolint/settings/profilename) can also contain an exclude.lst file.

This file works similar, but slightly different from nowarn.lst

exclude.lst works with file patterns with wildcards, both for filenames and rulenames. For example you can specify that all rules except rule "backslash" must be ignored in all files matching "third-party/*.i"

For more details about the exclude.lst file, see example file

ignoreab

Some rules must ignore warnings caused by code in AppBuilder-generated sections. Filter "ignoreab" figures out if a line is inside an ab-generated section.