前置き
VSCode の基本的な設定*1は済んでいるものとします。また、Go の拡張機能 がインストール済みとします。
その条件のもとで、Go 用に以下の設定が私の場合は必要になりました。
1. インデントをスペース(空白)ではなくタブにする
Go の場合だけ、インデントをタブにします。タブなので「タブ幅」はそこまで考えなくても良いですが、私の場合は 4
としました。
これを適用するためには settings.json
に以下のように追記します。editor.tabSize
がタブ幅で editor.insertSpaces
が「スペースかタブか」を指定する部分です。
{ (省略) "[go]": { "editor.tabSize": 4, "editor.insertSpaces": false }, (省略) }
2. Format Tool を gofmt にする
これは好みかとは思うんですが、Format Tool
をデフォルトの goreturns
にしたところ、func main()
が存在しない状態でファイルを保存すると import
部分が消えてしまう、という現象に遭遇したため gofmt
に変更しました。
goreturns
を用いた上でこう書いて……
上記の状態で保存すると以下のようになります(import が消えた)。
Format Tool
を変更するためには、Go の拡張機能 上で Format Tool
の項目で変更したいツールの名称を選択すればよいです。変更後にツールのインストールへと自動で誘導するダイアログが出てきますが、出てこない場合は自分で入れちゃってよいです。
3. タブをタブであることを明示的に表示する(行頭に「→」のような記号で表示する)
「1.」に関連して、空白部分が存在するときにそれがタブなのかスペースなのかを明示的に表示させます。
エディタ全体の設定項目の Editor: Render Whitespace
の項目で boundary
か all
かを選びます。二つの違いは「単語間のスペースを明示的に表示(中点を表示)するかどうか」ですが*2、そんなに画面がうるさくならない限りは all
でいいんじゃないかと思います。
他の設定
他の設定も突き詰めていくとより便利になるでしょうが、最低限の設定として必要なものを書きました。