PhpStorm 2018.1 Help

Configuring Inspection Severities

Basics

Inspection severity indicates how seriously the code issues detected by the inspection impact the project and determines how the detected issues should be highlighted in the editor. By default, each inspection has one of the following severity levels:

  • Server problem server problem
  • Typo typo
  • Info info
  • Weak Warning weak warning
  • Warning warning
  • Error error

You can increase or decrease the severity level of each inspection. That is, you can force PhpStorm to display some warnings as errors or weak warnings. In a similar way, what is initially considered a weak warning can be displayed as a warning or error, or just as info.

You can also configure the color and font style used to highlight each severity level. Besides, you can create custom severity levels and set them for specific inspections.

If necessary, you can set different severity levels for the same inspection in different scopes.

All modifications to inspections mentioned above are saved in the inspection profile currently selected in the inspection settings and apply when this profile is used.

Changing severity of an inspection

  1. In the inspection settings, select the desired profile. The inspections associated with the profile are displayed in the tree view.
  2. Select the desired inspection. If this inspection is disabled, select the checkbox next to it.
  3. Select the desired severity from the context menu of the inspection or from the Severity selector on the right:
    severity selector

    Note that inspections, whose state is changed relative to the default values, and all their grouping nodes are highlighted with blue.

  4. Apply the changes. The modified inspection will now have the new severity level when this profile is used.

In the PHP context, the Undefined field and Undefined method inspections may erroneously report severe problems when actually no problems take place. This happens when you attempt to access a property or to assign a value to a property that is not explicitly defined while the referenced class contains the _get() or _set() magic methods. No error should be reported because these methods are invoked every time an undefined property is referenced, however, PhpStorm still treats them as errors or warnings, depending on the severity you have specified for the inspection in general.

To suppress reporting Undefined method errors in such cases, re-configure the inspection severity. To do that, open the Inspections page of the Settings dialog box, click the inspection name in the list and select the Downgrade severity if __magic methods are present in class checkbox in the Options area. After that undefined properties in such cases will be indicated one step lower than specified for inspections in general, by default, Info instead of Warning.

To suppress irrelevant reporting of Undefined field errors, clear the Notify about access to a field via magic method and Notify about PHP dynamic field declaration checkboxes. When the checkboxes are selected, PhpStorm reports errors even if the class contains the __get() and __set() magic methods.

The Undefined variable inspection can be configured through the checkboxes on the Inspections page of the Settings dialog:
  • Enable inspection in global space: select this checkbox to run the inspection against variables outside functions/methods, classes, and namespaces, that is, in the global space.
    ps_undefined_var_global_space_on.png
  • Report that variable might have not been defined: select this checkbox to have a warning displayed even if the definition of a variable is not definitely missing. Such situation may take place when a variable is used in several paths and some of them may never be reached, for example, in if() statements:
    ps_undefined_var_if_statement.png
  • Ignore 'include' and 'require' statements Suppose the inspection scope contains an include or require statement. If this checkbox is cleared, PhpStorm treats such variable as defined in the classes referenced through these statements and no error is reported. If this checkbox is selected, an Undefined variable error is reported.

Changing severity of an inspection for different scopes

  1. Choose the desired profile and inspection.
  2. Click the drop-down list In All Scopes, and select the scope you want to change inspection severity in:
    inspection for scope1

    PhpStorm shows severities for two scopes: for the selected one and Everywhere else

  3. Click severity drop-down list for the selected scope and choose the appropriate severity level from the drop-down list:
    inspection for scope2

Changing the highlighting style for a specific severity level

  1. Do one of the following:
    • In the Settings/Preferences dialog, select Editor | Colors & Fonts -> General, and then select the style corresponding to the desired severity level.
    • In the inspection settings, select the desired inspection and choose Edit severities from the Severity selector.

      Next, in the Severities Editor dialog box that opens, select the desired severity level and click Editor | Colors & Fonts.

    Either way you will see the styles associated with this severity in the Color Scheme settings page.

  2. Configure the color and font styles as necessary and apply changes. The detected issues with the corresponding severity will now be highlighted in the editor with the modified style when the current profile is used.

Defining a custom severity level

  1. In the inspection settings, select the desired inspection and choose Edit severities from the Severity selector.
    edit severities
  2. In the Severities Editor dialog box that opens, click new:
    severity editor
  3. Type the name for the new severity in the New Highlight Severity dialog box.
    severity highlight

    The custom severity is added to the list of severities.

  4. Specify color and font settings for the new severity using the controls to the right of the list of severities.
  5. Use the Up arrowUp.png and Down arrowDown.png buttons to change the priority of the new severity.
  6. Apply the changes. The new severity level will now be available for all inspections within the current profile. You can assign it to specific inspections and get the corresponding code issues highlighted with the specified style in the editor.

    If necessary, you can remove the custom severity level later by selecting it in the Severities Editor dialog box and clicking delete.

    You cannot change priorities of the pre-defined severity levels, or remove them.

Last modified: 27 July 2018

See Also

Procedures: