Visual Studio Code で Go を書くための環境を整える

前置き

VSCode の基本的な設定*1は済んでいるものとします。また、Go の拡張機能 がインストール済みとします。

その条件のもとで、Go 用に以下の設定が私の場合は必要になりました。

1. インデントをスペース(空白)ではなくタブにする

Go の場合だけ、インデントをタブにします。タブなので「タブ幅」はそこまで考えなくても良いですが、私の場合は 4 としました。

これを適用するためには settings.json に以下のように追記します。editor.tabSize がタブ幅で editor.insertSpaces が「スペースかタブか」を指定する部分です。

{
(省略)
  "[go]": {
    "editor.tabSize": 4,
    "editor.insertSpaces": false
  },
(省略)
}

f:id:gregminster:20190302180339p:plain

2. Format Tool を gofmt にする

これは好みかとは思うんですが、Format Tool をデフォルトの goreturns にしたところ、func main() が存在しない状態でファイルを保存すると import 部分が消えてしまう、という現象に遭遇したため gofmt に変更しました。

goreturns を用いた上でこう書いて……

f:id:gregminster:20190302180659p:plain

上記の状態で保存すると以下のようになります(import が消えた)。

f:id:gregminster:20190302180726p:plain

Format Tool を変更するためには、Go の拡張機能 上で Format Tool の項目で変更したいツールの名称を選択すればよいです。変更後にツールのインストールへと自動で誘導するダイアログが出てきますが、出てこない場合は自分で入れちゃってよいです。

f:id:gregminster:20190302180838p:plain

3. タブをタブであることを明示的に表示する(行頭に「→」のような記号で表示する)

「1.」に関連して、空白部分が存在するときにそれがタブなのかスペースなのかを明示的に表示させます。

エディタ全体の設定項目の Editor: Render Whitespace の項目で boundaryall かを選びます。二つの違いは「単語間のスペースを明示的に表示(中点を表示)するかどうか」ですが*2、そんなに画面がうるさくならない限りは all でいいんじゃないかと思います。

f:id:gregminster:20190302181515p:plain

他の設定

他の設定も突き詰めていくとより便利になるでしょうが、最低限の設定として必要なものを書きました。

*1:Language Pack の導入など

*2:all だと表示する

Powered by はてなブログ