The Go Blog
VS Code Go 拡張機能で Gopls がデフォルトで有効に
この度、VS Code Go 拡張機能で gopls 言語サーバーがデフォルトで有効になったことを発表できることを嬉しく思います。これにより、より堅牢な IDE 機能と Go モジュールへのより良いサポートが提供されます。
(goplsは、インテリジェントなオートコンプリート、シグネチャヘルプ、リファクタリング、ワークスペースシンボル検索などの IDE 機能を提供します。)
Go モジュールが2年前にリリースされたとき、Go 開発者ツールの状況は完全に変わりました。goimportsやgodefのようなツールは、以前はコードが$GOPATHに保存されているという事実に依存していました。Go チームがこれらのツールをモジュールで動作するように書き直し始めたとき、私たちはすぐに、このギャップを埋めるためのより体系的なアプローチが必要であることに気づきました。
その結果、オートコンプリート、フォーマット、診断などの IDE 機能を互換性のあるエディターのフロントエンドに提供する単一の Go 言語サーバーであるgoplsの開発を開始しました。この永続的で統一されたサーバーは、以前のコマンドラインツールのコレクションとは根本的に異なります。
goplsの開発に加えて、エディターツールの安定したエコシステムを構築する他の方法も模索しました。昨年、Go チームはVS Code 用 Go 拡張機能の責任を引き受けました。この作業の一環として、言語サーバーとの拡張機能の統合をスムーズにし、goplsの更新を自動化し、goplsの設定を再編成して明確にし、トラブルシューティングのワークフローを改善し、アンケートを通じてフィードバックを募りました。また、Go 拡張機能の安定性、パフォーマンス、ユーザーエクスペリエンスの向上に貢献してくれたアクティブなユーザーと貢献者のコミュニティを育成し続けています。
発表
1月28日は、VS Code 用 Go 拡張機能でgoplsがデフォルトで有効になったことで、goplsと VS Code Go の両方の道のりにおいて大きな節目となりました。
この切り替えに先立ち、私たちはgoplsの設計、機能セット、ユーザーエクスペリエンスについて長い時間をかけて反復し、パフォーマンスと安定性の向上に注力しました。1年以上にわたり、goplsは 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が動作しない場合は、詳細なトラブルシューティングガイドを参照し、問題を報告してください。必要に応じて、いつでも VS Code でgoplsを無効にすることができます。
ありがとうございます
既存のユーザーの皆様、3度目のキャッシュレイヤーの書き換えに辛抱強くお付き合いいただきありがとうございます。新規ユーザーの皆様、皆様の体験レポートやフィードバックを楽しみにしています。
最後に、Go ツールの議論は、Go ツールコミュニティの貴重な貢献に言及することなくしては完結しません。長い議論、詳細なバグレポート、統合テスト、そして最も重要なこととして、素晴らしい貢献に感謝します。最もエキサイティングなgopls機能は、情熱的なオープンソースの貢献者から生まれており、皆様の努力と献身に感謝しています。
さらに詳しく
goplsと VS Code Go の始め方については、スクリーンキャストをご覧ください。追加情報については、VS Code Go READMEを参照してください。
goplsについてさらに詳しく読みたい場合は、gopls READMEを参照してください。
次の記事: Go 1.16 がリリースされました
前の記事: Go におけるコマンド PATH のセキュリティ
ブログインデックス