VS Code Go 拡張機能は、Go プログラミング言語の豊富な言語サポートを提供します。
Visual Studio Code 1.75 以降 (または VS Code 1.75 以降の API と互換性のあるエディタ)
1.21 以降を使用してください。
いらっしゃいませ! ??
Go の初心者でも、経験豊富な Go 開発者でも、この拡張機能がニーズに適合し、開発エクスペリエンスが向上することを願っています。
Go 1.21 以降をまだインストールしていない場合はインストールします。
VS Code Go 拡張機能をインストールします。
Go ファイルまたは go.mod ファイルを開いて、拡張機能を自動的にアクティブ化します。 Go ステータス バーがウィンドウの右下隅に表示され、Go のバージョンが表示されます。
拡張子は、設定に応じてgo
、 gopls
(Go 言語サーバー)、およびオプションのツールに依存します。 gopls
が見つからない場合、拡張機能はそれをインストールしようとします。 Go バージョンの横にある ⚡ 記号は、言語サーバーが実行中であり、準備が整っていることを示します。
(不足しているツールをインストールします)
準備は完了です:-) ???
VS Code Go 拡張機能のその他の機能を調べてください。
拡張機能をカスタマイズするには、設定ドキュメントと高度なトピックを参照してください。
VS Code Go 拡張機能が依存するツールの完全なリストについては、ツールのドキュメントを参照してください。 「Go: ツールのインストール/更新」を使用して、追加のツールをインストールし、更新できます。
一般的なトラブルシューティングおよびデバッグのトラブルシューティング ガイドを使用して問題を解決します。
拡張機能に関する問題については問題を提出してください。
GitHub ディスカッションを開始するか、Stack Overflow でヘルプを取得してください。
go.dev/learn および golang.org/help で Go 言語リソースを調べてください。
Go を初めて使用する場合は、この記事で Go コードの構成と基本的なgo
コマンドの概要を説明します。 VS Code Go を使用して最初の Go アプリケーションを構築する方法の説明については、「VS Code Go の概要」をご覧ください。
IntelliSense - 入力すると、シンボルの結果が表示されます。
コード ナビゲーション - シンボルの宣言にジャンプしたり、シンボルの宣言を参照したりできます。
コード編集 - 保存されたスニペット、書式設定とコードの編成、インポートの自動編成のサポート。
診断 - 入力時または保存時にビルド、検査、lint エラーが表示されます。
テストとデバッグのサポートの強化
詳細については、完全な機能の内訳をご覧ください。
(コード補完と署名ヘルプ)
この拡張機能には、統合された編集機能に加えて、Go ファイルを操作するためのいくつかのコマンドが用意されています。これらのいずれかにアクセスするには、コマンド パレット (Linux/Windows ではCtrl+Shift+P
、Mac ではCmd+Shift+P
) を開き、コマンド名を入力します。この拡張機能によって提供されるコマンドの完全なリストを参照してください。
(テストファイルの切り替え)
構文の強調表示をより適切に行うには、Gopls のui.semanticTokens
設定をオンにしてセマンティックの強調表示を有効にすることをお勧めします。 "gopls": { "ui.semanticTokens": true }
VS Code Go 拡張機能は、 GOPATH
と Go モジュール モードの両方をサポートします。
Go モジュールは、Go の最新バージョンで依存関係を管理するために使用されます。モジュールは、特定のビルドで使用されるソース ファイルを指定するためのGOPATH
ベースのアプローチを置き換えるものであり、go1.16 以降のデフォルトのビルド モードです。モジュール モードでの Go 開発を強くお勧めします。既存のプロジェクトに取り組んでいる場合は、モジュールへの移行を検討してください。
従来のGOPATH
モードとは異なり、モジュール モードでは、 GOPATH
の下にワークスペースを配置する必要も、特定の構造を使用する必要もありません。モジュールは、ツリーのルート ディレクトリにあるgo.mod
ファイルを持つ Go ソース ファイルのディレクトリ ツリーによって定義されます。
プロジェクトには 1 つ以上のモジュールが含まれる場合があります。複数のモジュールまたは一般的ではないプロジェクト レイアウトを使用して作業している場合は、ワークスペース フォルダーを使用してワークスペースを構成する必要があります。詳細については、「サポートされているワークスペース レイアウト」のドキュメントを参照してください。
新機能やバグ修正に早期にアクセスしたい場合は、プレリリース拡張機能を使用できます。 vscode の規則に従い、拡張バージョン番号のマイナー バージョンを使用して、安定版とプレリリース バージョンを区別します (プレリリースの場合は0.ODD_NUMBER.patch
、安定リリースの場合は0.EVEN_NUMBER.patch
)。
プレリリース バージョンをインストールするには、ドロップダウン リストを使用して [プレリリース バージョンのインストール] を選択するか、Go 拡張機能がすでにインストールされている場合は、Visual Studio Code 拡張機能管理の [プレリリース バージョンに切り替える] オプションを使用します。ページ。このメカニズムの詳細については、Visual Studio Code のドキュメントを参照してください。
VS Code Go 拡張機能は、Go Telemetry に依存して、拡張機能と言語サーバー ( gopls
) のパフォーマンスと安定性に関する洞察を取得します。 Go Telemetry データのアップロードはデフォルトで無効になっていますが、次のコマンドで有効にできます。
go run golang.org/x/telemetry/cmd/gotelemetry@latest on
テレメトリが有効になると、言語サーバーはメトリクスとスタック トレースを telemetry.go.dev にアップロードします。以下を実行することで、どのようなデータが収集され、アップロードできるかを検査できます。
go run golang.org/x/telemetry/cmd/gotelemetry@latest view
十分な採用が得られれば、このデータは Go 拡張機能の開発ペースを大幅に早め、より高い信頼性基準を満たすのに役立ちます。例えば:
VS Code の半自動クラッシュ レポートを使用しても、数週間または数か月にわたって報告されないクラッシャーがいくつか見られました。
一連のベンチマークを使用した場合でも、一部のパフォーマンスの低下はベンチマーク環境では現れません (後述の完了バグなど)。
gopls を改善するための素晴らしいアイデアはたくさんありますが、リソースは限られています。テレメトリは、どの新機能が最も重要で、どの既存の機能が使用されていないのか、またはうまく機能していないのかを特定するのに役立ちます。
これらは、テレメトリで gopls を改善できる方法のほんの一部です。テレメトリーのブログ投稿シリーズには他にも多くの記事が含まれています。
Go テレメトリは、透過的でプライバシーが保護されるように設計されています。詳細については、https://go.dev/doc/telemetry をご覧ください。
Go 拡張機能は Go ツール チームのエンジニアによって保守されており、VS Code Go と Go 問題トラッカーを積極的に監視しています。
当社では、拡張機能の最新の安定したプレリリース バージョンのみをサポートしています。
Go 拡張機能は Go リリース ポリシーに従っています。これは、最新の 2 つの Go メジャー リリースを正式にサポートすることを意味します。 Go チームは、過去 3 つの主要な Go バージョンのベストエフォート型サポートを維持しています。
Go 拡張機能は、そのコア機能をgopls
やdlv
などのツールに依存しており、独自のリリース ポリシーとスケジュールがあります。これらのツールの最新バージョンに対してのみテストします。
古いバージョンの Go を使用する必要がある場合は、互換性ページを確認し、互換性のあるバージョンの拡張機能とツールを手動でインストールしてください。
私たちは皆さんの貢献を歓迎し、VS Code での Go 開発エクスペリエンスの向上に努めていただきありがとうございます。 VS Code Go 拡張機能の作業を支援したい場合は、VS Code Go 拡張機能をローカルで構築して実行し、プロジェクトに貢献する方法を学ぶためのコントリビュート ガイドを参照してください。
このプロジェクトは Go コミュニティ行動規範に従っています。行為関連の問題が発生した場合は、[email protected] までメールでご連絡ください。
マサチューセッツ工科大学