Go言語のサポートを提供するVisual Studio Codeの拡張機能 Microsoft/vscode-go のドキュメントを日本語に翻訳してみました。 Google翻訳を使用して翻訳した後に自分でチェックして修正しています。 翻訳時のvscode-goのバージョンは 0.6.53 で、翻訳元のcommitは b9b927d です。
重要: 最近Go 1.7にアップグレードした場合、Goの補完リストが正常に動作するように端末で gocode close
を実行する必要があります。 microsoft/vscode-go#441 を参照してください。
リリースノートを読んで、この拡張機能の直近のバージョンで何が変更されたのか確認してください。
この拡張機能はGo言語のための豊富な言語サポートをVS Codeに追加します。 含まれているもの:
- 補完リスト (
gocode
を使用) - シグネチャーヘルプ (
gogetdoc
またはgodef
+godoc
を使用) - スニペット
- クイック情報 (
gogetdoc
またはgodef
+godoc
を使用) - 定義への移動 (
gogetdoc
またはgodef
+godoc
を使用) - リファレンス検索 (
guru
を使用) - ファイルの概要 (
go-outline
を使用) - ワークスペースシンボルサーチ (
go-symbols
を使用) - リネーム (
gorename
を使用。 注意: Windowsで名前を変更した後に元に戻すには、パスにdiff
ツールがあることが必要です) - 保存時にビルド (
go build
とgo test
を使用) - 保存時にlint (
golint
またはgometalinter
を使用) - フォーマット (
goreturns
またはgoimports
またはgofmt
を使用) - ユニットテストのスケルトン生成 (
gotests
を使用) - import文の追加 (
gopkgs
を使用) - [部分的に実装] デバッグ (
delve
を使用)
はじめに、Visual Studio Codeをインストールする必要があります。
つぎに、コマンドパレット (cmd-shift-p
) で Install Extension
を選択し、Go
を選択します。
GOPATH環境変数が作業したいGOPATHに設定されている端末ウィンドウで、code
を起動します。
GOPATHフォルダーまたは作業したいサブフォルダーを開き、編集を開始するために .go
ファイルを開きます。
右下に Analysis Tools Missing
の表示を確認し、これをクリックすると拡張機能が全機能セットをサポートするために必要なGoツールをすべてインストールします。
詳細については以下の ツール セクションを参照してください。
注意: この拡張機能を使用する場合、Visual Studio Codeで Auto Save
を有効にすることを検討する余地があります ("files.autoSave": "afterDelay"
)。
Goツールの多くは保存されたファイルに対してのみ機能し、エラー報告は Auto Save
が有効であることでよりインタラクティブになります。
Auto Save
を有効にする場合、保存時にフォーマットする機能を無効にして ("go.formatOnSave": false
)、入力中にトリガーされないようにします。
注意 2: この拡張機能は入力時に gocode
を使用して補完リストを提供します。
未作成の依存関係を含め、新しい結果を提供するために、拡張機能は gocode
の autobuild=true
設定を使用します。
自動補完に関するパフォーマンスの問題が発生した場合は、VS Codeの設定で "go.gocodeAutoBuild":false
を設定してみてください。
Goの拡張機能では次のVisual Studio Code設定を使用できます。
これらはユーザー設定 (cmd+,
) やワークスペース設定 (.vscode/settings.json
) で設定できます。
{
"go.buildOnSave": true,
"go.lintOnSave": true,
"go.vetOnSave": true,
"go.buildTags": "",
"go.buildFlags": [],
"go.lintTool": "golint",
"go.lintFlags": [],
"go.vetFlags": [],
"go.coverOnSave": false,
"go.useCodeSnippetsOnFunctionSuggest": false,
"go.formatOnSave": true,
"go.formatTool": "goreturns",
"go.formatFlags": [],
"go.goroot": "/usr/local/go",
"go.gopath": "/Users/lukeh/go",
"go.gocodeAutoBuild": false
}
リンターはコーディングスタイルのフィードバックと候補を与えるツールです。 デフォルトでは、この拡張機能は公式の golint をリンターとして使用します。
デフォルトのリンターを変更し、より高機能な Go Meta Linter を使用することができます。
パッケージを手動でインストールする必要があることに注意してください: go get -u github.com/alecthomas/gometalinter
を実行して、構成を編集してください (go.lintTool
の値を "gometalinter" に設定する)。
デフォルトのリンターを変更し、より高機能な Go Meta Linter を使用することができます。
ユーザー設定で go.lintTool
を "gometalinter" に設定します。
Go meta linterは拡張機能によってインストールされるさまざまなリンターのコレクションを使用します。
非常に便利なリンターツールのいくつか:
特定のリンターのみを実行したい場合(一部のリンターは遅い)、構成を変更してそれらを指定することができます:
"go.lintFlags": ["--disable-all", "--enable=errcheck"],
最後に、これらのリンターの結果がコードの右側に表示され(候補が下線付きの場所)、出力ペインにも表示されます。
統合された編集機能に加えて、拡張機能はコマンドパレットにGoファイルを操作するためのいくつかのコマンドを提供します:
Go: Add Import
は、Goコンテキストにパッケージの一覧からimport文を追加しますGo: Current GOPATH
は、現在設定されているGOPATHを確認しますGo: Run test at cursor
は、アクティブなドキュメントの現在のカーソル位置でテストを実行しますGo: Run tests in current package
は、アクティブなドキュメントを含むパッケージ内のすべてのテストを実行しますGo: Test Previous
は、前に実行したテストコマンドを実行しますGo: Generates unit tests (package)
は、現在のパッケージのユニットテストを生成しますGo: Generates unit tests (file)
は、現在のファイルのユニットテストを生成しますGo: Generates unit tests (function)
は、現在のファイルで選択された関数のユニットテストを生成しますGo: Install Tools
は、拡張機能が依存するすべてのGoツールをインストール/アップデートします。
デバッガーを使用するには、現在 delve
を手動でインストールする必要があります。
詳細については インストール手順 を参照してください。
OS Xでは、dlv
バイナリーに署名するために自己署名証明書を作成する必要があります。
詳細については VS Codeを使用したGoコードのデバッグ を参照してください。
VS Codeを使用したリモートデバッグを行うには リモートデバッグ を参照してください。
あなたは拡張機能開発中に拡張機能をデバッグするための開発環境をセットアップできます。
本リポジトリーをクローンし、npm install
を実行してCodeの開発インスタンスを開きます。
git clone https://github.com/Microsoft/vscode-go
cd vscode-go
npm install
code .
デバッグビューレットに移動し、Launch Extension
を選択してrun (F5
) を押します。
[Extension Development Host]
インスタンスで、GOPATHフォルダーを開きます。
[Extension Development Host]
インスタンスで、Goコードで任意のフォルダーを開きます。
ブレークポイントを設定して、拡張機能をステップ実行することができます。
拡張子 .ts
ファイルを編集した場合は、Codeの [Extension Development Host]
インスタンスをリロード (cmd-r
) して新しい拡張機能コードをロードしてください。
デバッグインスタンスが自動的に再接続されます。
デバッガーをデバッグするには、the debugAdapter readme を参照してください。
この拡張機能は、現在のGOPATHにインストールされている次のツールを使用します。 いずれかのツールが見つからない場合は、エディターの右下隅に "Analysis Tools Missing" という警告が表示されます。 その警告をクリックすると、不足しているツールをインストールすることができます。
- gocode:
go get -u -v github.com/nsf/gocode
- godef:
go get -u -v github.com/rogpeppe/godef
- gogetdoc:
go get -u -v github.com/zmb3/gogetdoc
- golint:
go get -u -v github.com/golang/lint/golint
- go-outline:
go get -u -v github.com/lukehoban/go-outline
- goreturns:
go get -u -v sourcegraph.com/sqs/goreturns
- gorename:
go get -u -v golang.org/x/tools/cmd/gorename
- gopkgs:
go get -u -v github.com/tpng/gopkgs
- go-symbols:
go get -u -v github.com/newhook/go-symbols
- guru:
go get -u -v golang.org/x/tools/cmd/guru
- gotests:
go get -u -v github.com/cweill/gotests/...
拡張機能にツール用の別のGOPATHを使用させる場合は、VSCODE_GOTOOLS 環境変数を目的のパスに設定します。
拡張機能にツール用の別のGOPATHを使用させたい場合は、go.toolsGopath
の設定で目的の場所を指定します。
gometalinter
と dlv
の2つのツールは例外で、あなたのGOPATHにインストールする必要があります。
現在のGOPATHに手動でツールをインストールするには、以下をペーストして実行します:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/cweill/gotests/...
そして、デバッグのためには: