VisualStudioCodeの環境設定(GO言語)
外部ライブラリを実装時に自動で import
に追加するための settings.json
の最適な設定 を以下にまとめました。
この設定を適用すれば、godotenv.Load()
などをコードに書いた際に import
文が自動で追加される ようになります。
🔧 設定ファイル (settings.json
)
{
"[go]": {
"editor.defaultFormatter": "golang.go",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
},
"go.formatTool": "goimports",
"go.useLanguageServer": true,
"go.languageServerFlags": [
"-rpc.trace"
],
"gopls": {
"formatting.gofumpt": true,
"analyses": {
"unusedparams": true,
"shadow": true
},
"staticcheck": true,
"memoryMode": "DegradeClosed",
"verboseOutput": true
},
"go.toolsManagement.autoUpdate": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
🔍 各設定の意味
設定キー | 説明 |
---|---|
"editor.defaultFormatter": "golang.go" | Go の標準フォーマッターを使用 |
"editor.formatOnSave": true | 保存時にコードの整形を自動実行 |
"editor.codeActionsOnSave": { "source.organizeImports": true } | 未使用の import を削除 & 必要な import を自動追加 |
"go.formatTool": "goimports" | goimports を使い、import の最適化を実行 |
"go.useLanguageServer": true | VS Code の Go 言語サーバー (gopls ) を有効化 |
"go.languageServerFlags": ["-rpc.trace"] | 言語サーバーの詳細なログを出力(デバッグ用) |
"gopls.formatting.gofumpt": true | gofumpt を使用し、より厳格なフォーマットを適用 |
"gopls.analyses.unusedparams": true | 未使用の関数パラメータを警告 |
"gopls.analyses.shadow": true | 変数のシャドーイング(重複定義)を警告 |
"gopls.staticcheck": true | staticcheck を有効化し、静的解析を強化 |
"gopls.memoryMode": "DegradeClosed" | メモリ管理の最適化 |
"gopls.verboseOutput": true | gopls の詳細ログを有効化(問題がある場合のデバッグ用) |
"go.toolsManagement.autoUpdate": true | Go の開発ツールを自動更新 |
🚀 設定後の動作
✅ godotenv.Load()
を書くだけで import "github.com/joho/godotenv"
が自動追加
✅ import
文の並び順を自動整理
✅ 不要な import
を削除
✅ gopls
をフル活用して、Go のコード解析と最適化を強化
📌 もし import
が自動追加されない場合
- Go 言語サーバー (
gopls
) を再インストールgo install golang.org/x/tools/gopls@latest
- VS Code を再起動
- 設定が適用されるように
Ctrl + Shift + P
→Reload Window
を実行。
- 設定が適用されるように
- 手動で
goimports
をインストールgo install golang.org/x/tools/cmd/goimports@latest
- キャッシュクリア
gopls clean rm -rf $(go env GOPATH)/pkg/mod/cache
この settings.json
を使えば、外部ライブラリも自動で import
されるようになります!
私の環境では出来るようにはなりました。