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

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

重大度を変更するインスペクションの名前は、インスペクションのオプションの上部に書かれています。
ハイライトを元に戻したい場合は、 Ctrl+Alt+S を押して IDE 設定を開き、 を選択します。 リストで必要なインスペクションを見つけて、必要に応じて重大度を変更します。 詳細については、 すべてのスコープでインスペクションの重大度を変更する を参照してください。
ファイルのハイライトレベルを変更する
デフォルトで GoLand は検出したすべてのコードの問題をハイライトします。 エディターの右上隅にあるウィジェットの上にマウスを置き、 ハイライト リストから別のレベルを選択します。
なし: ハイライトをオフにします。
構文: 構文上の問題のみをハイライトします。
すべての問題: (デフォルト)構文の問題とインスペクションで見つかった問題をハイライトします。
メインメニューからハイライトレベルを変更することもできます。 Ctrl+Alt+Shift+H を選択または押します。
コメントを抑制する
インスペクションの名前 | noinspection キーワードで使用する ID |
|---|---|
未使用の定数 | Go の未使用定数 |
未使用のグローバル変数 | Go の未使用グローバル変数 |
未使用のエクスポートされた関数 | Go の未使用のエクスポートされた関数 |
未使用機能 | Go の未使用関数 |
未使用のパラメーター | Go の未使用パラメーター |
未使用の型パラメーター | Go の未使用型パラメーター |
未使用タイプ | Go の未使用型 |
未使用のエクスポートタイプ | Go の未使用のエクスポートされた型 |
GOPATH インデックス作成を無効にしました | Go の無効化された GOPATH インデックス作成 |
ブール条件 | Go のブール式 |
自己割り当て | Go の自己代入 |
空の宣言 | Go の空の宣言 |
スライスの冗長な 2 番目のインデックス | Go のスライス内の冗長な第 2 インデックス |
範囲内の冗長な空の引数 | Go の range 内の冗長な空白引数 |
複合リテラルの冗長型 | GoRedundantTypeDeclInCompositeLit |
冗長なセミコロン | Go の冗長なセミコロン |
冗長なコンマ | Go の冗長なカンマ |
冗長な型変換 | Go の冗長な変換 |
冗長インポートエイリアス | Go の冗長なインポートエイリアス |
タイプは省略できます | Go の var と const の型は省略可能 |
リテラルを使用して宣言された空のスライス | Go の nil スライスを優先 |
エクスポートされた要素のコメントが間違った名前で始まります | Go のコメント開始 |
自身の宣言が必要なエクスポートされた要素 | Go のエクスポートされた独自宣言 |
フィールド名のない構造体の初期化 | Go のフィールド名なしの構造体初期化 |
レシーバーの総称は | Go のレシーバー名 |
名前はパッケージ名で始まります | Go のパッケージ名で始まる名前 |
ソートされていないインポート | Go の未ソートのインポート |
大文字または句読記号で終わらないエラー文字列 | Go のエラー文字列形式 |
先頭のスペースがないコメント | Go のコメントの先頭スペース |
Snake_Case の使用 | Go のスネークケースの使用 |
エクスポートされた要素にはコメントが必要です | Go のエクスポートされた要素にはコメントが必要 |
'time.Duration' のユニット固有の接尾辞 | Go の単位固有の期間サフィックス |
型パラメーターは小文字で宣言されています | Go の小文字の型パラメーター |
for ループ条件内の冗長な 'true' | Go の for 条件内の冗長な true |
予約語を名前として使用 | Go の名前として使用された予約語 |
func リテラルによってキャプチャーされたループ変数 | Go のループクロージャ |
名前識別子としてインポートされたパッケージ名 | Go の名前として使用されたインポート |
不正な構造タグ | Go vet の構造体タグ |
不可能なインターフェースタイプのアサーション | Go vet の不可能なインターフェース間アサーション |
'fmt.Printf' および 'fmt.Println' 関数の誤った使用箇所 | Go の print 関数 |
シャドウイング変数 | Go のシャドーイングされた変数 |
ゼロ除算 | Go のゼロ除算 |
'strings.Replace' カウント引数が正しくありません | Go の strings.Replace の回数 |
不正なビルドタグ | Go のビルドタグ |
'sync/atomic' パッケージの誤った使用箇所 | Go vet の atomic |
誤って値で渡されたロック | Go vet のロックコピー |
'uintptr' から 'unsafe.Pointer' への無効な変換 | Go vet の unsafe ポインター |
'errors.As' 関数の誤った使用箇所 | Go の errors.As |
未使用の関数またはメソッド呼び出しの結果 | Go の未使用の呼び出し結果 |
未処理のエラー | Go の未処理のエラー結果 |
ニルネスアナライザー | Go の nil 状態 |
Defer/go ステートメントは「recover」または「panic」を直接呼び出します | Go の defer と go |
既知の関数名の非標準の署名 | Go の標準メソッド |
シフト式超過 | Go のシフト |
「Unmarshal」が誤った引数で呼び出された | Go vet の unmarshal |
整数から文字列型への変換 | Go vet の int から string への変換 |
'context.CancelFunc' は呼び出されません | Go vet のキャンセル漏れ |
非テストゴルーチンの「FailNow」 | Go vet のテスト以外の goroutine での FailNow |
混合値およびポインターレシーバー | Go の混在したレシーバー型 |
「iota」の不規則な使用箇所 | Go の不規則な iota |
エラーの直接比較 | Go のエラーの直接比較 |
エラーの型アサーションはラップされたエラーでは失敗する | Go のエラーに対する型アサーション |
'switch' の 'iota' 定数の 'case' ステートメントが欠落しています | Go の iota 定数の switch で不足している case |
無限の 'for' ループ | Go の無限 for |
ループ内の「延期」 | Go のループ内の defer |
受信者への割り当て | Go のレシーバーへの代入 |
到達不能コード | Go の到達不能コード |
非推奨の要素 | Go の非推奨 |
冗長な丸括弧 | Go の冗長な括弧 |
エクスポートされた関数のエクスポートされていない戻り型 | Go のエクスポートされた関数にエクスポートされていない型 |
不必要にエクスポートされた識別子 | Go の不要にエクスポートされた識別子 |
不正な形式のテスト関数名 | Go のテスト名 |
context.TODO() の使い方 | Go の context.TODO |
タイプとしての「interface{}」の使用 | Go の interface{} から any へ |
ファジングは Go 1.18 からサポートされています | Go のファジングサポート |
文字列リテラルを変換する | Go の文字列リテラルの変換 |
ディレクティブコメントの先頭の空白 | Go のディレクティブコメント内の先頭空白 |
複合リテラルの改行の前に末尾のコンマがありません | Go の末尾カンマの不足 |