Disabling and enabling inspections
Some inspections may report problems that you currently do not want to see. In this case, you can disable or suppress them.
When you disable an inspection, you turn it off. It means that the code analysis engine stops searching project files for the problem that this inspection is designed to detect. Note that when you disable an inspection, you disable it in the current inspection profile; it remains enabled in other profiles.
Most inspections in GoLand can be disabled. However, some inspections will keep highlighting your code regardless of the settings. For example, syntax errors are always highlighted.
Press CtrlAlt0S to open settings and then select Editor | Inspections.
Locate the inspection you want to disable, and clear the checkbox next to it.
Apply the changes and close the dialog.
You can quickly disable a triggered inspection directly in the editor.
Place the caret at the highlighted line and press AltEnter (or click
to use the intention action).
Click the arrow next to the inspection you want to disable, and select Disable inspection.
In the Inspection Results tab of the Problems tool window (appears once you run code analysis), right-click the inspection you want to disable and select Disable inspection.
Click
to hide the disabled inspection alerts.
When you suppress an inspection, the code analysis engine doesn't highlight the problem found by this inspection in the specific piece of code (type, function, or line) . You can also suppress all inspections in the current type.
Most inspections in GoLand can be suppressed. However, some inspections do not have this option. For example, syntax errors are always highlighted in the editor regardless of the settings.
Place the caret at the highlighted line and press AltEnter (or click
to use the intention action).
Click the
button next to the inspection you want to suppress and select the suppress action according to the required scope. GoLand adds a
// noinspection
comment above the code fragment where the inspection is suppressed.You can find a list of inspections and their identifiers in the Supressing comments table. For example, to supress the Comment of exported element starts with the incorrect name inspection, use the
GoCommentStartInspection
identifier with the// noinspection
comment. The full comment is// noinspection GoCommentStartInspection
.
The Inspection Results tab of the Problems tool window shows the problems detected while running code analysis.
In the Inspection Results tab of the Problems tool window (appears once you run code analysis), right-click the inspection you want to suppress and select the necessary suppress action.
When you suppress an inspection, the IDE adds the //noinspection
annotation before the selected symbol. For example, if you suppress an inspection for a statement, GoLand adds the annotation before this statement.
To re-enable a suppressed inspection, delete the
//noinspection
annotation.
Inspections have severities according to which they highlight code problems in the editor. You can quickly disable code highlighting for an inspection without opening the settings. In this case, the inspection remains enabled and provides a fix, but the severity changes to No highlighting (fix available).
Place the caret at a code element highlighted by an inspection in the editor and press AltEnter.
A list with available fixes and context actions opens. Locate the inspection fix that is marked with
.
Click the
button next to the fix to open the inspection's options and select Disable highlighting, keep fix.
The name of the inspection for which you are changing the severity is written above the inspection's options.
If you want to restore the highlighting, press CtrlAlt0S to open the IDE settings and select Editor | Inspections. Find the necessary inspection in the list and change its severity as you like. For more information, refer to Change inspection severity in all scopes.
By default, GoLand highlights all detected code problems. Hover over the widget in the top-right corner of the editor and select another level from the Highlight list:
None: turn highlighting off.
Syntax: highlight syntax problems only.
All Problems: (default) highlight syntax problems and problems found by inspections.
You can also change the highlighting level from the main menu. Select or press CtrlAltShift0H.
Name of the inspection | ID to use with the noinspection keyword |
---|---|
Unused constant | GoUnusedConstInspection |
Unused global variable | GoUnusedGlobalVariableInspection |
Unused exported function | GoUnusedExportedFunctionInspection |
Unused function | GoUnusedFunctionInspection |
Unused parameter | GoUnusedParameterInspection |
Unused type parameter | GoUnusedTypeParameterInspection |
Unused type | GoUnusedTypeInspection |
Unused exported type | GoUnusedExportedTypeInspection |
Disabled GOPATH indexing | GoDisabledGopathIndexingInspection |
Bool condition | GoBoolExpressionsInspection |
Self assignment | GoSelfAssignmentInspection |
Empty declaration | GoEmptyDeclarationInspection |
Redundant second index in slices | GoRedundantSecondIndexInSlicesInspection |
Redundant blank argument in range | GoRedundantBlankArgInRangeInspection |
Redundant types in composite literals | GoRedundantTypeDeclInCompositeLit |
Redundant semicolon | GoRedundantSemicolonInspection |
Redundant comma | GoRedundantCommaInspection |
Redundant type conversion | GoRedundantConversionInspection |
Redundant import alias | GoRedundantImportAliasInspection |
Type can be omitted | GoVarAndConstTypeMayBeOmittedInspection |
Empty slice declared using a literal | GoPreferNilSliceInspection |
Comment of exported element starts with the incorrect name | GoCommentStartInspection |
Exported element should have its own declaration | GoExportedOwnDeclarationInspection |
Struct initialization without field names | GoStructInitializationWithoutFieldNamesInspection |
Receiver has a generic name | GoReceiverNamesInspection |
Name starts with a package name | GoNameStartsWithPackageNameInspection |
Unsorted imports | GoUnsortedImportInspection |
Error string should not be capitalized or end with punctuation | GoErrorStringFormatInspection |
Comment has no leading space | GoCommentLeadingSpaceInspection |
Usage of Snake_Case | GoSnakeCaseUsageInspection |
Exported element should have a comment | GoExportedElementShouldHaveCommentInspection |
Unit-specific suffix for 'time.Duration' | GoUnitSpecificDurationSuffixInspection |
Type parameter is declared in lowercase | GoTypeParameterInLowerCaseInspection |
Redundant 'true' in for loop condition | GoRedundantTrueInForConditionInspection |
Reserved word used as name | GoReservedWordUsedAsNameInspection |
Loop variables captured by the func literal | GoLoopClosureInspection |
Imported package name as a name identifier | GoImportUsedAsNameInspection |
Malformed struct tag | GoVetStructTagInspection |
Impossible interface type assertion | GoVetImpossibleInterfaceToInterfaceAssertionInspection |
Incorrect usage of 'fmt.Printf' and 'fmt.Println' functions | GoPrintFunctionsInspection |
Shadowing variable | GoShadowedVarInspection |
Division by zero | GoDivisionByZeroInspection |
Incorrect 'strings.Replace' count argument | GoStringsReplaceCountInspection |
Malformed build tag | GoBuildTagInspection |
Incorrect usage of the 'sync/atomic' package | GoVetAtomicInspection |
Locks mistakenly passed by value | GoVetCopyLockInspection |
Invalid conversions of 'uintptr' to 'unsafe.Pointer' | GoVetUnsafePointerInspection |
Incorrect usage of the 'errors.As' function | GoErrorsAsInspection |
Unused function or method call result | GoUnusedCallResultInspection |
Unhandled error | GoUnhandledErrorResultInspection |
Nilness analyzer | GoNilnessInspection |
Defer/go statement calls 'recover' or 'panic' directly | GoDeferGoInspection |
Non-standard signature for well-known function names | GoStandardMethodsInspection |
Exceeded shift expression | GoShiftInspection |
'Unmarshal' is called with the incorrect argument | GoVetUnmarshalInspection |
Integer to string type conversion | GoVetIntToStringConversionInspection |
'context.CancelFunc' is not called | GoVetLostCancelInspection |
'FailNow' in a non-test goroutine | GoVetFailNowInNotTestGoroutineInspection |
Mixed value and pointer receivers | GoMixedReceiverTypesInspection |
Irregular usage of 'iota' | GoIrregularIotaInspection |
Direct comparison of errors | GoDirectComparisonOfErrorsInspection |
Type assertion on errors fails on wrapped errors | GoTypeAssertionOnErrorsInspection |
Missing 'case' statements for 'iota' consts in 'switch' | GoSwitchMissingCasesForIotaConstsInspection |
Infinite 'for' loop | GoInfiniteForInspection |
'defer' in the loop | GoDeferInLoopInspection |
Assignment to a receiver | GoAssignmentToReceiverInspection |
Unreachable code | GoUnreachableCodeInspection |
Deprecated element | GoDeprecationInspection |
Redundant parentheses | GoRedundantParensInspection |
Unexported return type of the exported function | GoExportedFuncWithUnexportedTypeInspection |
Unnecessarily exported identifier | GoUnnecessarilyExportedIdentifiersInspection |
Malformed test function name | GoTestNameInspection |
Usage of context.TODO() | GoContextTodoInspection |
Usage of 'interface{}' as a type | GoInterfaceToAnyInspection |
Fuzzing is supported starting with Go 1.18 | GoFuzzingSupportInspection |
Convert string literals | GoConvertStringLiteralsInspection |
Leading whitespace in directive comment | GoLeadingWhitespaceInDirectiveCommentInspection |
Missing trailing comma before a newline in a composite literal | GoMissingTrailingCommaInspection |
Thanks for your feedback!