インスペクションの無効化と有効化
いくつかのインスペクションは現在見たくない問題を報告するかもしれません。この場合、無効にしたり抑制したりできます。
インスペクションを無効にする
インスペクションを使用不可にすると、無効になります。これは、このインスペクションが検出するように設計されているという問題について、コード分析エンジンがプロジェクトファイルの検索を停止することを意味します。インスペクションを無効にすると、現在のインスペクションプロファイルで無効になります。他のプロファイルでは有効のままです。
GoLand のほとんどのインスペクションは無効にできます。ただし、一部のインスペクションは、設定に関係なくコードをハイライトし続けます。例: 構文エラーは常にハイライトされます。
設定でインスペクションを無効にする
Ctrl+Alt+S を押して設定を開き、を選択します。
無効にするインスペクションを見つけて、その横にあるチェックボックスをオフにします。
変更を適用し、ダイアログを閉じます。
コンテキストアクションを使用して、トリガーされたインスペクションをエディター内で直接すばやく無効にすることができます。
エディターからインスペクションを無効にする
ハイライト表示された行にキャレットを置き、Alt+Enter を押す (または
をクリックする) と、使用可能なコンテキストアクションのリストが呼び出されます。
無効にするインスペクションの横にある
をクリックし、インスペクションを無効にするを選択します。
問題ツールウィンドウからインスペクションを無効にする
問題ツールウィンドウ (コード分析を実行すると表示されます) のインスペクション結果タブで、無効にするインスペクションを右クリックし、インスペクションを無効にするを選択します。
ツールバーの
をクリックし、解決済み項目のフィルターを選択して、無効なインスペクションアラートを非表示にします。
インスペクションの抑止
インスペクションを抑制すると、コード分析エンジンは、特定のコード部分 (型、関数、行) でこのインスペクションによって検出された問題をハイライトしません。現在の型のすべてのインスペクションを抑制することもできます。
GoLand のほとんどのインスペクションを抑制できます。ただし、一部のインスペクションにはこのオプションがありません。例: 構文エラーは、設定に関係なく、エディターで常にハイライトされます。
エディターからのインスペクションの抑制
ハイライトされた行にキャレットを置き、Alt+Enter を押します(または
をクリックしてインテンションアクションを使用します)。
抑制するインスペクションの横にある
ボタンをクリックし、必要な範囲に応じてアクションを選択します。GoLand は、インスペクションが抑制されているコードフラグメントの上に
// noinspectionコメントを追加します。インスペクションとその識別子のリストは、コメントの抑制テーブルにあります。例: エクスポートされた要素のコメントが間違った名前で始まりますインスペクションを抑制するには、
// noinspectionコメントとともにGoCommentStartInspection識別子を使用します。完全なコメントは// noinspection GoCommentStartInspectionです。
問題ツールウィンドウからインスペクションを抑制する
問題ツールウィンドウのインスペクション結果タブには、コード分析の実行中に検出された問題が表示されます。
問題ツールウィンドウのインスペクション結果タブ (コード分析を実行すると表示されます) で、抑制するインスペクションを右クリックし、必要な抑制アクションを選択します。

抑制されたインスペクションを有効にする
インスペクションを抑制すると、IDE は選択したシンボルの前に //noinspection アノテーションを追加します。例: ステートメントのインスペクションを抑制すると、GoLand はこのステートメントの前にアノテーションを追加します。
抑制されたインスペクションを再度有効にするには、
//noinspectionアノテーションを削除します。
ハイライトを無効にしますが、修正は保持する
インスペクションには重大度があり、エディターでコードの問題をハイライトします。設定を開かなくても、インスペクションのコードのハイライトをすばやく無効にすることができます。この場合、インスペクションは有効なままで修正を提供しますが、重大度はハイライトしない (修正を使用できます) に変わります。
エディターでインスペクションによってハイライトされているコード要素にキャレットを置き、Alt+Enter を押します。
利用可能な修正とコンテキストアクションのリストが開きます。
でマークされたインスペクションフィックスを見つけます。修正の横にある
ボタンをクリックしてインスペクションのオプションを開き、ハイライトの無効化、修正の保持を選択します。

重大度を変更するインスペクションの名前は、インスペクションのオプションの上に書かれています。
ハイライトを元に戻したい場合は、Ctrl+Alt+S を押して IDE 設定を開き、を選択します。リストで必要なインスペクションを見つけて、必要に応じて重大度を変更します。詳細については、すべてのスコープでインスペクションの重大度を変更するを参照してください。
ファイルのハイライトレベルを変更する
デフォルトでは、GoLand は検出されたすべてのコードの問題をハイライトします。エディターの右上隅にあるウィジェットの上にマウスを置き、ハイライトリストから別のレベルを選択します。
なし : ハイライトをオフにします。
構文 : 構文上の問題のみをハイライトします。
すべての問題 : (デフォルト)構文の問題とインスペクションで見つかった問題をハイライトします。
メインメニューからハイライトレベルを変更することもできます。Ctrl+Alt+Shift+H を選択または押します。
コメントを抑制する
インスペクションの名前 | noinspection キーワードで使用する ID |
|---|---|
未使用の定数 | GoUnusedConstInspection |
未使用のグローバル変数 | GoUnusedGlobalVariableInspection |
未使用のエクスポートされた関数 | GoUnusedExportedFunctionInspection |
未使用機能 | GoUnusedFunctionInspection |
未使用のパラメーター | GoUnusedParameterInspection |
未使用の型パラメーター | GoUnusedTypeParameterInspection |
未使用タイプ | GoUnusedTypeInspection |
未使用のエクスポートタイプ | GoUnusedExportedTypeInspection |
GOPATH インデックス作成を無効にしました | GoDisabledGopathIndexingInspection |
ブール条件 | GoBoolExpressionsInspection |
自己割り当て | GoSelfAssignmentInspection |
空の宣言 | GoEmptyDeclarationInspection |
スライスの冗長な 2 番目のインデックス | GoRedundantSecondIndexInSlicesInspection |
範囲内の冗長な空の引数 | GoRedundantBlankArgInRangeInspection |
複合リテラルの冗長型 | GoRedundantTypeDeclInCompositeLit |
冗長なセミコロン | GoRedundantSemicolonInspection |
冗長なコンマ | GoRedundantCommaInspection |
冗長な型変換 | GoRedundantConversionInspection |
冗長インポートエイリアス | GoRedundantImportAliasInspection |
タイプは省略できます | GoVarAndConstTypeMayBeOmittedInspection |
リテラルを使用して宣言された空のスライス | GoPreferNilSliceInspection |
エクスポートされた要素のコメントが間違った名前で始まります | GoCommentStartInspection |
自身の宣言が必要なエクスポートされた要素 | GoExportedOwnDeclarationInspection |
フィールド名のない構造体の初期化 | GoStructInitializationWithoutFieldNamesInspection |
レシーバーの総称は | GoReceiverNamesInspection |
名前はパッケージ名で始まります | GoNameStartsWithPackageNameInspection |
ソートされていないインポート | GoUnsortedImportInspection |
大文字または句読記号で終わらないエラー文字列 | GoErrorStringFormatInspection |
先頭のスペースがないコメント | GoCommentLeadingSpaceInspection |
Snake_Case の使用 | GoSnakeCaseUsageInspection |
エクスポートされた要素にはコメントが必要です | GoExportedElementShouldHaveCommentInspection |
'time.Duration' のユニット固有の接尾辞 | GoUnitSpecificDurationSuffixInspection |
型パラメーターは小文字で宣言されています | GoTypeParameterInLowerCaseInspection |
for ループ条件内の冗長な 'true' | GoRedundantTrueInForConditionInspection |
予約語を名前として使用 | GoReservedWordUsedAsNameInspection |
func リテラルによってキャプチャーされたループ変数 | GoLoopClosureInspection |
名前識別子としてインポートされたパッケージ名 | GoImportUsedAsNameInspection |
不正な構造タグ | GoVetStructTagInspection |
不可能なインターフェースタイプのアサーション | GoVetImpossibleInterfaceToInterfaceAssertionInspection |
'fmt.Printf' および 'fmt.Println' 関数の誤った使用箇所 | GoPrintFunctionsInspection |
シャドウイング変数 | GoShadowedVarInspection |
ゼロ除算 | GoDivisionByZeroInspection |
'strings.Replace' カウント引数が正しくありません | GoStringsReplaceCountInspection |
不正なビルドタグ | GoBuildTagInspection |
'sync/atomic' パッケージの誤った使用箇所 | GoVetAtomicInspection |
誤って値で渡されたロック | GoVetCopyLockInspection |
'uintptr' から 'unsafe.Pointer' への無効な変換 | GoVetUnsafePointerInspection |
'errors.As' 関数の誤った使用箇所 | GoErrorsAsInspection |
未使用の関数またはメソッド呼び出しの結果 | GoUnusedCallResultInspection |
処理不可能なエラーです | GoUnhandledErrorResultInspection |
ニルネスアナライザー | GoNilnessInspection |
Defer/go ステートメントは「recover」または「panic」を直接呼び出します | GoDeferGoInspection |
既知の関数名の非標準の署名 | GoStandardMethodsInspection |
シフト式超過 | GoShiftInspection |
「Unmarshal」が誤った引数で呼び出された | GoVetUnmarshalInspection |
整数から文字列型への変換 | GoVetIntToStringConversionInspection |
'context.CancelFunc' は呼び出されません | GoVetLostCancelInspection |
非テストゴルーチンの「FailNow」 | GoVetFailNowInNotTestGoroutineInspection |
混合値およびポインターレシーバー | GoMixedReceiverTypesInspection |
「iota」の不規則な使用箇所 | GoIrregularIotaInspection |
エラーの直接比較 | GoDirectComparisonOfErrorsInspection |
エラーの型アサーションはラップされたエラーでは失敗する | GoTypeAssertionOnErrorsInspection |
'switch' の 'iota' 定数の 'case' ステートメントが欠落しています | GoSwitchMissingCasesForIotaConstsInspection |
無限の 'for' ループ | GoInfiniteForInspection |
ループ内の「延期」 | GoDeferInLoopInspection |
受信者への割り当て | GoAssignmentToReceiverInspection |
到達不能コード | GoUnreachableCodeInspection |
非推奨の要素 | GoDeprecationInspection |
冗長な括弧 | GoRedundantParensInspection |
エクスポートされた関数のエクスポートされていない戻り型 | GoExportedFuncWithUnexportedTypeInspection |
不必要にエクスポートされた識別子 | GoUnnecessarilyExportedIdentifiersInspection |
不正な形式のテスト関数名 | GoTestNameInspection |
context.TODO() の使い方 | GoContextTodoInspection |
タイプとしての「interface{}」の使用 | GoInterfaceToAnyInspection |
ファジングは Go 1.18 からサポートされています | GoFuzzingSupportInspection |
文字列リテラルを変換する | GoConvertStringLiteralsInspection |
ディレクティブコメントの先頭の空白 | GoLeadingWhitespaceInDirectiveCommentInspection |
複合リテラルの改行の前に末尾のコンマがありません | GoMissingTrailingCommaInspection |
関連ページ:
インスペクションの重大度を変更する
インスペクション重大度レベルは、検出されたコードの問題がプロジェクトに与える影響の深刻度を示します。GoLand には、定義済みの一連の重大度レベルがあります。エラー構文エラー警告バグを引き起こす可能性がある、または拡張が必要なコードの断片弱い警告改善または最適化できるコードの断片 (冗長なコード、重複したコードフラグメントなど) サーバーの問題外部ビルドサーバー (TeamCity など) に起因する問題文法エラー文法の間違い。この重大度は、バンドルされている自然言語プラグインに起因します。詳細...
カスタムインスペクションを作成する
カスタムインスペクションを作成するには、検索を構成してテンプレートを置き換える必要があります。IDE はテンプレートに一致するコードを検索し、それをエディターでハイライトします。設定ダイアログで、に移動します。を押してインスペクションの構成を選択することもできます。新しいインスペクションを作成するプロファイルを選択します。ツールバーでカスタムインスペクションの追加ボタン () をクリックし、インスペクションでコードのみをハイライトする場合は正規表現の検索インスペクションを追加…を選択します。また...