Gopls: コードレンズ
「コードレンズ」とは、ソースファイルの範囲に関連付けられたコマンドです。VS Codeのマニュアルでは、コードレンズを「ソースコードに散りばめられた、実行可能で文脈に応じた情報」と説明しています。LSPのtextDocument/codeLens操作は、ファイルの現在のコードレンズのセットを要求します。
Goplsは、多くのソースからコードレンズを生成します。このドキュメントではそれらについて説明します。
codelenses設定を使用して、有効化および無効化できます。その機能は変更される可能性があります。
クライアントサポート
- VS Code: コードレンズは、ソースコードの行の上に小さなテキストリンクとして表示されます。
- Emacs + eglot: 未サポートですが、プロトタイプがhttps://github.com/joaotavora/eglot/pull/71に存在します。
- Vim + coc.nvim: ??
- CLI:
gopls codelens。例えば、gopls codelens -exec file.go:123 "run test"は、指定された行でテストを実行します。
generate: go generateを実行する
このコードレンズソースは、//go:generateコメントに、このディレクトリで、このディレクトリの下にあるすべてのディレクトリに対して再帰的にgo generateを実行するコマンドを注釈付けします。
詳細については、コードの生成を参照してください。
デフォルト: オン
ファイルタイプ: Go
regenerate_cgo: cgo宣言を再生成する
このコードレンズソースは、import "C"宣言に、対応するGo宣言を再生成するためにcgoコマンドを再実行するコマンドを注釈付けします。
インポートに付随するコメント内のCコードや、Cヘッダーファイル内のCコードを編集した後にこれを使用します。
デフォルト: オン
ファイルタイプ: Go
test: テストとベンチマークを実行する
このコードレンズソースは、*_test.goファイル内の各Test関数とBenchmark関数に、それを実行するコマンドを注釈付けします。
このソースは、VS Codeがテスト用のクライアント側カスタムUIを持っているため、また、進捗通知がストリームされたテスト出力にとって優れたUXではないため、デフォルトでオフになっています。
- この機能に関する議論については、golang/go#67400を参照してください。
- 代替アプローチについては、https://github.com/joaotavora/eglot/discussions/1402を参照してください。
デフォルト: オフ
ファイルタイプ: Go
run_govulncheck: govulncheckを実行する (レガシー)
この設定は実験的なものであり、削除される可能性があります。
このコードレンズソースは、go.modファイル内のmoduleディレクティブに、Govulncheckを非同期で実行するコマンドを注釈付けします。
Govulncheckは、依存関係を含むアプリケーション内で到達可能な関数セットを計算し、既知のセキュリティ脆弱性のデータベースをクエリし、見つかった潜在的な問題を報告する静的解析ツールです。
デフォルト: オフ
ファイルタイプ: go.mod
tidy: go.modファイルを整理する
このコードレンズソースは、go.modファイル内のmoduleディレクティブに、go mod tidyを実行するコマンドを注釈付けします。これにより、go.modファイルがモジュール内のソースコードと一致するように保証されます。
デフォルト: オン
ファイルタイプ: go.mod
upgrade_dependency: 依存関係を更新する
このコードレンズソースは、go.modファイル内のmoduleディレクティブに、次のコマンドを注釈付けします。
- 利用可能なアップグレードをチェックする。
- 直接の依存関係をアップグレードする。
- すべての依存関係を推移的にアップグレードする。
デフォルト: オン
ファイルタイプ: go.mod
vendor: ベンダーディレクトリを更新する
このコードレンズソースは、go.modファイル内のmoduleディレクティブに、go mod vendorを実行するコマンドを注釈付けします。これは、モジュールルートにvendorという名前のディレクトリを作成または更新し、必要なすべてのパッケージ依存関係の最新のコピーが含まれるようにします。
デフォルト: オン
ファイルタイプ: go.mod
vulncheck: govulncheckを実行する
この設定は実験的なものであり、削除される可能性があります。
このコードレンズソースは、go.modファイル内のmoduleディレクティブに、govulncheckを同期的に実行するコマンドを注釈付けします。
Govulncheckは、依存関係を含むアプリケーション内で到達可能な関数セットを計算し、既知のセキュリティ脆弱性のデータベースをクエリし、見つかった潜在的な問題を報告する静的解析ツールです。
デフォルト: オフ
ファイルタイプ: go.mod
このドキュメントのソースファイルは、golang.org/x/tools/gopls/doc の下にあります。