Goplsリリース v0.20.0
このリリースには、gopls用の新しい実験的なモデルコンテキストプロトコル(MCP)サーバーが含まれており、AI支援環境でgoplsの機能の一部を統合するために使用できます。
Goplsのドキュメントは、Goプロジェクトのウェブサイト https://go.dokyumento.jp/gopls で利用できるようになりました。(このリンクは最新のgoplsリリースを反映しています。最新のコミットのドキュメントを見るには https://tip.golang.org/gopls を使用してください。)GitHubのMarkdownファイルとは異なり、これらのページはGoogleのウェブ検索インデックスによってクロールされます。
設定の変更
このリリースでは、モジュールキャッシュ内のパッケージの新しい永続インデックスがデフォルトで有効になります。これは v0.19 で最初に試みられましたが、その後修正された問題のために元に戻されました。
ウェブベースの機能
「パッケージ分割」ツール
source.splitPackage コードアクションは、パッケージを依存関係が非循環である2つ以上のコンポーネントに分割するのに役立つウェブベースのツールを開きます。
使用するには、一連のコンポーネントに名前を付け、各宣言をコンポーネントに割り当て、次にコンポーネント間の依存関係(循環を形成するかどうかを含む)を視覚化します。コードを編集するたびにページを更新して、最新の情報を確認してください。

このツールを使用すると、満足のいく分解が見つかるまで、潜在的な分解を簡単に反復できます。ツールの将来のバージョンではコード変換が自動化されますが、今のところそのステップは手動で行う必要があります。
編集機能
モデルコンテキストプロトコルサーバー
Goplsには、モデルコンテキストプロトコル(MCP)用の実験的な組み込みサーバーが含まれるようになり、その機能の一部をMCPツールの形式でAIアシスタントに公開できるようになりました。
詳細については、ドキュメントを参照してください。
注意: これはgoplsのまったく新しい操作モードであるため、提供する最適なツールと指示のセットをまだ実験中です。どの程度機能するかお知らせください。また、上記ドキュメントで説明されているように、LLMがワークスペースで操作を実行することを許可すると、追加のセキュリティ上の考慮事項が発生することにご注意ください。
分析機能
ignoredError インレイヒント
新しい ignoredError インレイヒントは、誤って破棄されたエラーを検出するのに役立ちます。これは、エラー結果が暗黙的に無視される関数呼び出しであるステートメントの後に // ignore error ヒントを挿入します。たとえば、このコードは
f.Close()
として表示されます。
f.Close() // ignore error
ヒントを非表示にするには、呼び出しステートメントの後に ignore error を含む実際のコメントを記述するか、結果を空白の _ 変数に明示的に割り当てます。fmt.Println など、いくつかの一般的な関数はチェックから除外されます。
この設定を使用して有効にします:{"hints": {"ignoredError": true}}。
unusedfunc は未使用の type、var、および const 宣言も報告します
unusedfunc アナライザーは、宣言するパッケージ内で参照されていないエクスポートされていない型、変数、および定数を報告するようになりました。(参照されていないエクスポートされたシンボルの問題は、ワークスペース全体に依存するため、分析フレームワークでは表現できません。)
コード変換機能
Rename操作では、struct{ T } のTのような組み込みフィールドの名前を変更できるようになりました。ただし、操作がフィールド宣言(T)で要求された場合に限ります。フィールドとその型の両方の名前が変更されます。
このドキュメントのソースファイルは、golang.org/x/tools/gopls/doc の下にあります。