VS Code Go拡張機能でgoplsがデフォルトで有効に

Gopls on by default in the VS Code Go extension by Go tools team

VS Code Go拡張機能が、より堅牢なIDE機能とGoモジュールへのより良いサポートを提供するため、 goplsという言語サーバーをデフォルトで 有効にするようになったことを発表できてうれしく思います。

gopls-vscode-go_features

(gopls は、賢い自動補完、シグネチャヘルプ、リファクタリング、ワークスペースのシンボル検索といったIDE機能を提供します。)

Goモジュールが2年前にリリースされたとき、それはGo開発者向けツールの様相をすっかり変えてしまいました。 goimportsgodef のようなツールは、それまでコードが $GOPATH に保存されていることを前提としていました。 Goチームがこれらのツールをモジュールに対応させるために書き直し始めたとき、私たちはこのギャップを埋めるための より体系的なアプローチが必要だとすぐに気づきました。

その結果、私たちは単一のGo言語サーバーである gopls の開発に着手しました。これは自動補完、フォーマット、診断といったIDE機能を、互換性のある任意の エディタのフロントエンドに提供します。この永続的かつ統一されたサーバーは、以前のコマンドラインツール群の 集合体から見ると根本的な転換です。

gopls の開発に加えて、私たちはエディタ用ツールの安定したエコシステムを作るための他の方法も模索してきました。 昨年、GoチームはVS Code用のGo拡張機能の責任を引き継ぎました。この作業の一環として、 gopls の自動更新、gopls の設定の整理と明確化、トラブルシューティングのワークフローの改善、アンケートを 通じたフィードバックの収集などを行い、拡張機能と言語サーバーとの統合を円滑にしました。また、Go拡張機能の 安定性、パフォーマンス、ユーザー体験の改善に貢献してくれた、活発なユーザーとコントリビューターのコミュニティを 育て続けています。

発表

1月28日は、gopls とVS Code Goの両方の歩みにおいて大きな節目となりました。この日、gopls がVS Code用の Go拡張機能でデフォルトで有効になったのです。

この切り替えに先立ち、私たちはパフォーマンスと安定性の向上に重点を置きながら、gopls の設計、機能セット、 ユーザー体験の反復に長い時間を費やしてきました。gopls は1年以上前から、Vim、Emacsをはじめとする ほとんどのエディタのプラグインでデフォルトとなっています。これまでに24回の gopls のリリースを行っており、 そのたびに継続的にフィードバックを寄せ、問題を報告してくださったユーザーの皆さんに深く感謝しています。

私たちは新規ユーザー向けの体験を洗練させることにも時間を費やしてきました。gopls を使ったVS Code Goが わかりやすいエラーメッセージとともに直感的に使えるものであってほしいと願っていますが、もし疑問点があったり 設定を調整する必要があったりする場合は、更新されたドキュメント で答えを見つけられます。また、使い始めるのに役立つスクリーンキャストや、 見つけにくい機能を紹介するアニメーションも 用意しました。

gopls はGoのコードを扱う最良の方法であり、特にGoモジュールを使う場合はなおさらです。モジュールがデフォルトで 有効になるGo 1.16の登場も控えている中、VS Code Goのユーザーは最初から最良の体験を得られるようになります。

とはいえ、この切り替えは gopls が完成したことを意味するわけではありません。私たちはバグ修正、新機能の追加、 全体的な安定性の向上に引き続き取り組んでいきます。次に力を入れる領域は、複数のモジュールを扱う 際のユーザー体験の改善です。より多くのユーザーからのフィードバックが、私たちの次のステップの指針となる でしょう。

では、何をすればよいか

VS Codeを使っている場合、特に何もする必要はありません。次のVS Code Goのアップデートを受け取ると、gopls は 自動的に有効になります。

他のエディタを使っている場合は、すでに gopls を使っている可能性が高いでしょう。もしまだ使っていない場合は、 gopls のユーザーガイドを参照して、お使いの エディタで gopls を有効にする方法を確認してください。Language Server Protocolのおかげで、gopls は どのエディタに対しても同じ機能を提供し続けられます。

gopls がうまく動作しない場合は、詳細なトラブルシューティングガイド を参照した上でissueを立ててください。必要であれば、VS Codeで gopls を無効化する こともいつでも可能です。

お礼

既存のユーザーの皆さんには、私たちがキャッシュ層を3度も書き直す間、辛抱強くお付き合いいただいたことに感謝します。 新しいユーザーの皆さんについては、これから寄せていただく体験談やフィードバックを楽しみにしています。

最後になりますが、Goツールコミュニティの貴重な貢献に触れずしてGoツールについて語ることはできません。長い議論、 詳細なバグ報告、統合テスト、そして何より素晴らしい貢献をありがとうございます。もっとも刺激的な gopls の 機能の数々は、情熱あるオープンソースのコントリビューターの皆さんから生まれています。その努力と献身に感謝します。

もっと詳しく知りたい方へ

gopls とVS Code Goを使い始める方法については、スクリーンキャストを ご覧ください。また、追加情報についてはVS Code GoのREADMEを 参照してください。

gopls についてさらに詳しく読みたい方は、gopls のREADMEを ご覧ください。

By Go tools team