Inspectopedia 2025.1 Help

New Inspections in This Release

C#

Name

Description

Check .NET source code coverage

Reports methods, classes and files whose coverage is below a certain threshold.

CSS

Name

Description

W3C CSS validator

Reports a discrepancy detected by the W3C CSS Validator.

Dockerfile

Name

Description

Duplicated stage name

Reports duplicated stage names in FROM ..

Missing 'exec' in entrypoint shell form

Reports missing exec in the shell form of ENTRYPOINT command.

Dotenv

Name

Description

Nested variables must not appear outside double quotes

Detects instances where nested variables are used outside of double quotes in `.env` files and might not be parsed correctly.

Reference to nested variable ''{0}'' is undefined

Detects instances where nested variables in `.env` files are accessed without being defined or initialized elsewhere within the project's scope.

Reference to variable is empty

Highlights instances where a nested variable in a `.env` file is defined but left empty or blank, helping developers identify potentially problematic or incomplete configurations.

Gotemplate

Name

Description

Possibly excessive whitespace trim

Reports excessive whitespace trims in Go template expressions.

HCL

Name

Description

Conflicting properties

Reports conflicting properties in an HCL block.

Deprecated blocks/properties

Reports deprecated blocks or properties.

Duplicated output

Reports duplicate outputs.

Duplicated property

Reports duplicate properties inside one block.

Duplicated provider

Reports duplicate providers.

Duplicated variable

Reports duplicate variables.

HIL expression can be converted to HCL2

Reports old style HCL expressions and suggests converting them to HCL2 expressions.

Illegal interpolation

Reports illegal interpolations.

Incorrect .tfvars content

Reports errors in vars files.

Incorrect variable type

Reports incorrect variable type.

Invalid block names

Reports invalid block labels or incorrect number of labels according to the schema.

Invalid string and number literal

Reports string and number invalid literals.

Missing required property

Reports blocks with missing required properties.

Module directory isn't initialized

Reports if terraform was not initialized in the current working directory.

Suboptimal expression

Reports suboptimal HCL2 expressions and suggests simplifications.

Unknown block type

Reports blocks with an unknown type (first literal).

Unknown encryption key provider

Detects non-existing encryption key providers references in OpenTofu encryption block configuration.

Unknown encryption method

Detects non-existing encryption methods references in OpenTofu encryption block configuration.

Unknown property

Reports unknown properties in blocks.

Unknown resource type

Detects resources/datasources that cannot be resolved against known providers.

Unresolved module

Reports unresolved modules and suggests running terraform get to update the modules.

Unused elements

Reports unused variables, locals, and data sources in a Terraform module and provides a quick-fix to remove them.

HIL

Name

Description

Operation argument type mismatch

Reports operations incorrect argument types.

Unavailable scope

Reports usage of unavailable scopes, e.g.

Unknown resource types referenced

Reports unknown (non-used in module) resource type usage.

Htmlcompatible

Name

Description

Illegal @for loop access

Reports illegal access to the template variable within @for loop track expression.

Http request

Name

Description

Ambiguity Encoding Inspection

Detects '+' in an encoded query string.

Duplicate import

Highlights already defined import.

JVM

Name

Description

ActionUpdateThread is missing

Reports actions, action groups and other ActionUpdateThreadAware classes that do not explicitly state their mode.

Component/Action not registered

Reports plugin components and actions that are not registered in a plugin.xml descriptor.

Extension class should be final and non-public

Reports extension classes that are non-final or public.

Extension registered as service/component

Reports extension implementation being additionally registered as a service/component.

Inspection description checker

Reports inspections that are missing an HTML description file, i.e.

Intention description checker

Reports intentions that are missing an HTML description file, before.template file or after.template file.

JComponent must use UiDataProvider

Reports JComponent classes implementing incorrect data provider interface.

Light service must be final

Reports classes annotated with the @com.intellij.openapi.components.Service annotation that are not final.

Listener implementation implements 'Disposable'

Reports listener implementations that implement com.intellij.openapi.Disposable.

Mismatch between light service level and its constructor

Reports mismatches between light service levels and its constructors.

Postfix template description checker

Reports postfix templates missing an HTML description file, before.template file or after.template file.

Java

Name

Description

Injection annotation is not applicable

Reports when a @Language annotation is applied to an element with a type other than String or String[].

Java annotator

Allows viewing the problems reported by the Java annotator: compilation problems, unresolved by IDEA references, and so on.

Java sanity

Reports unresolved references in Java code.

Language mismatch

Reports when the language of a reference does not match the expected language of the usage context.

Non-annotated Method overrides @Pattern Method

Reports when a method without any @Pattern annotation overrides a @Pattern annotated method.

Pattern annotation is not applicable

Reports when a @Pattern annotation is applied to an element with a type other than String.

Unknown Language ID

Reports when the ID of the language used in a @Language annotation is unknown.

Using PsiElement string representation to generate new expression is incorrect

Reports direct usage of PsiElement and PsiType in strings.

Validate annotated patterns

Reports expressions passed as arguments for @Pattern parameters and returned from @Pattern-annotated methods that do not match the specified pattern.

Json

Name

Description

Dev Container folder structure problems

Checks nested .devcontainer folders with ambiguous Dev Container context or a missing parent .devcontainer folder where it is needed.

Unknown inspection id in meta information

Reports unknown inspection ids in metaInformation.json files.

Unreal Engine json inspection

RIDER-83134.

Kotlin

Name

Description

Companion object in extensions

Reports incorrect companion objects' usage in extensions.

Forbidden in suspend context method usage

Reports inappropriate usages of methods in Kotlin coroutines, which uses threading context (annotated with @RequiresBlockingContext).

Generate implementation

Reports absent of implementation for the entity.

Kotlin object registered as extension

Reports Kotlin objects that are registered as plugin extensions.

Kotlin sanity

Reports unresolved references in Kotlin code.

Obsolete version of entity implementation

Reports existence of the obsolete implementation for the entity.

Unsupported 'var' field in entity

Detects unsupported var fields in the inheritors of WorkspaceEntity interface Interface implementing WorkspaceEntity have to have only val fields because it's immutable.

Use 'com.intellij.util.io.ProcessKt.awaitExit()'

Reports usages of Process.waitFor() and Process.onExit() in coroutine context.

Msbuild

Name

Description

TargetFramework tag checks

RIDER-83136.

Multiple

Name

Description

Check dependency licenses

Check dependencies licenses for possible problems: missing or prohibited licenses, or other compliance issues.

Check module licenses

Check module licenses for possible problems: missing licenses or other compliance issues.

Check third party software list

Check project for possible problems: user's third party software list does not match the collected project metadata.

Hardcoded passwords

Detects potential security tokens or passwords in comments using entropy analysis and regular expressions.

Possible template file

Detects Terraform Template files without the standard extension (*.tftpl) that do not have an associated data language and suggests choosing one from the list of possible candidates.

Unresolved reference

Reports unresolved references.

Vulnerable imported dependency

Reports vulnerabilities in Gradle and Maven dependencies imported into your project.

PHP

Name

Description

Vulnerabilities scanner

Call of this function may be unsafe.

Vulnerable paths scanner

Global taint analysis inspection.

Properties

Name

Description

Message format validation in properties files

Reports the following MessageFormat problems in property values: Unknown format types MessageFormat supports only these format types: number date time choice Other format types will be reported.

Python

Name

Description

Check Python source code coverage

Reports methods, classes and files whose coverage is below a certain threshold.

Inconsistent return statements

Highlights inconsistent return statements in functions.

Invalid Enum definition and usages

Reports invalid definition and usage of Enum.

Invalid usage of NewType

Reports invalid usages of NewType.

Unresolved columns

Reports attempts to access PySpark DataFrame columns that do not exist in the schema.

typing.assert_type

Checks typing.assert_type(val, typ, /) calls and reports cases when val's inferred type is not typ.

SQL

Name

Description

Create a temporary table without a single session mode

Reports temporary tables creation not in the single-session mode.

Tftpl

Name

Description

No template data language selected

Reports Terraform Template files with no data language selected.

UAST

Name

Description

'UastHintedVisitorAdapter' hints problems

Reports missing or redundant hints in UastHintedVisitorAdapter creation.

A service can be converted to a light one

Reports classes that can be marked as light services using the @com.intellij.openapi.components.Service annotation instead of being registered as services in plugin.xml A service that is not intended for overriding is not required to be registered in the plugin.xml file.

Accessible context is missing

Reports Swing components that do not provide accessibility context.

Application service assigned to a static final field or immutable property

Reports assignments of application services to static final fields / immutable properties.

Calculate Kotlin and Java code metrics

Counts the number of code lines.

Calling method should be annotated with @RequiresBlockingContext

Highlights calls of method annotated with @RequiresBlockingMethod inside non-annotated method.

Cancellation check in loops

Reports loops, forEach-like methods, and ContainerUtil.process() with missing cancellation checks.

Cancellation exception handled incorrectly

Reports ProcessCanceledException and CancellationException handled incorrectly.

Check Kotlin and Java source code coverage

Reports methods and classes whose coverage is below a certain threshold.

Component type mismatch

Reports incorrect registration of plugin components (Actions and Components).

Eager creation of action presentation

Reports any actions that are registered in the plugin.xml file and instantiate the com.intellij.openapi.actionSystem.Presentation object in their constructors.

Field blocks intention preview

Reports fields in LocalQuickFix and IntentionAction implementations that prevent intention preview action from functioning properly.

File.equals() usage

Reports usages of java.io.File.equals()/hashCode()/compareTo() methods.

Incorrect parentDisposable parameter

Reports using Application or Project as a parent Disposable in plugin code.

Incorrect service retrieving

Reports the following problems when retrieving services: Attempts to retrieve an unregistered service.

Invalid icon path in @Presentation

Reports invalid and deprecated value for icon attribute in com.intellij.ide.presentation.Presentation annotation.

Map key may leak

Reports using Language or FileType as a map key in plugin code.

Migrate to getOptionPane()

Reports createOptionsPanel() methods in inspection implementation, which can be automatically converted to getOptionsPane().

Non-default constructor in serializable class

Reports non-default constructor in serializable classes.

Non-default constructors for service and extension class

Reports extension/service class having a non-default (empty) constructor.

Non-platform TokenSet declared in ParserDefinition

Reports TokenSet field declarations referencing non-platform element types in ParserDefinition classes.

Potential deadlock in service initialization

Reports read/write actions and invokeAndWait called from the scope of service initialization: service constructors and initialization blocks (including static) service companion object's initialization blocks (Kotlin) service methods used in initialization blocks and fields initialization PersistentStateComponent initialization lifecycle methods: loadState noStateLoaded initializeComponent Running a read/write action or calling invokeAndWait during service initialization may cause deadlocks.

QuickFix's getFamilyName() implementation must not depend on a specific context

Reports QuickFix.getFamilyName() using contextual information.

Simplifiable service retrieving

Reports service getting calls that can be replaced with a calls to an existing static getInstance() or getInstance(Project) methods.

Stateful extension

Reports extensions and quick-fixes holding potentially leaking state.

Static initialization in extension point implementations

Reports static initialization in extension point implementations.

Threading and concurrency problems

Reports threading and concurrency issues in code using information from com.intellij.util.concurrency.annotations annotations.

UElement as PsiElement usage

Reports usage of UAST UElement as PsiElement.

Undesirable class usage

Reports usages of undesirable classes (mostly Swing components).

Unresolved plugin configuration reference

Reports unresolved references to plugin configuration elements.

Unsafe VFS recursion

Reports usage of VirtualFile.getChildren() inside recursive methods.

Unsafe return statements visitor

Reports unsafe use of JavaRecursiveElementVisitor.visitReturnStatement().

Unspecified action place

Reports passing unspecified place parameter for ActionManager.createActionToolbar() and ActionManager.createActionPopupMenu().

Usage of IntelliJ API not available in older IDEs

Reports usages of IntelliJ Platform API introduced in a version newer than the one specified in <idea-version> @since-build in plugin.xml.

Use 'PluginId#equals(Object)'

Reports comparing PluginId instances using ==.

Use 'PsiType#equals(Object)' with primitive types

Reports comparing PsiPrimitiveType instances using ==.

Use 'VirtualFile#equals(Object)'

Reports comparing VirtualFile instances using ==.

Use DPI-aware borders

Reports usages of javax.swing.border.EmptyBorder and JBUI.Borders.emptyXyz() that can be simplified.

Use DPI-aware insets

Reports usages of java.awt.Insets and JBUI.insetsXyz() that can be simplified.

Use Darcula aware JBColor

Reports usages of java.awt.Color.

Using new Color(a,a,a)

Reports usages of java.awt.Color to create gray colors.

XML

Name

Description

Extension class is a Kotlin object

Reports extensions which are instantiated by the IntelliJ Platform, but are declared as Kotlin objects.

Live templates i18n

Reports hardcoded text in live template description.

Plugin Logo check

Reports missing plugin logo.

Plugin.xml dynamic plugin verification

Reports dynamic plugin problems.

Plugin.xml extension registration

Reports problems with extension registration in plugin.xml.

Plugin.xml i18n verification

Reports hardcoded texts in plugin.xml.

Plugin.xml text capitalization

Reports text capitalization problems in plugin.xml.

Plugin.xml validity

Reports problems in plugin.xml.

Yaml

Name

Description

Duplicated job usage

Detects duplicated job usages in GitLab CI/CD Configuration file.

Erroneous relation in docker-compose YAML

Reports erroneous relations in Docker Compose files.

Undefined job

Detects unresolved job references in GitLab CI/CD Configuration file.

Undefined stage

Detects unresolved stage references in GitLab CI/CD Configuration file.

01 April 2025