夢のかけら

Railsエンジニアの技術ブログ

VSCodeでGoを書いてgit pushするとインデントがおかしくなる時の対処法

f:id:lampler:20210704100053p:plain 次のお仕事でGolangを使うのでGoを勉強中です。しかし困ったことがありました。

起こったこと

  1. VSCodeでGoを書く
  2. 保存してgit pushする
  3. Git Hub上でコードをみる
  4. 何じゃこのアホみたいなインデント!!

f:id:lampler:20210704094306p:plain

原因

VSCode拡張機能、Goが保存時にインデントをスペースからタブへ変更していた。

そのタブはVSCode上の見た目では分からない。(Tabは→、Spaceは・で見ることはできるけど)

Githubではタブは8スペースで表示される。

対策

その1 Goの拡張機能をOffにする

極めて微妙。せっかくの拡張機能がなくなってしまう。 ↓の記事にgo.formatOnSavefalseにすればいけるよ、って書いてあるけどsetting.jsonに書いても動かなかった。

Indentation is replaced with tabs from spaces on save regardless of editor settings when this extension is enabled. · Issue #1930 · microsoft/vscode-go

でも普通に保存時のコード整形は欲しい。

その2 諦める

Goではインデントにタブ(4スペース前提)を使うことが推奨されている。だから強引にスペースにするのがそもそも間違っていた。 素直にフォーマッターに従うべきだ。

その3 Git HubのTabスペースを変更する

クエリパラメーターで?ts=2とか?ts=4とすると見た目を変更できる。だが毎回こんなことできるわけがない。 Chrome拡張機能を見つけた。これを使うか〜 Githubのタブが8文字で見にくいのでextensionで解決 - Qiita