HEXA BLOG

TIPS

HEXA BLOGその他TIPS2019.6.18

EditorConfig でエンコード(文字コード)を揃えて平和なチーム開発を

社会人になりたてのプログラマーだった頃、、、
バージョン管理されたプロジェクトを更新すると
一文字も変えていないように見えるソースコードの
全ての行で差分が検知される…!

何故だ…おかしい…diffツール(ファイル比較ソフト)のバグかな…?

と、調べていると…インデントがスペースとタブで
異なっているために殆どの行で差分が出てしまっている事が発覚。。

コレではどこを更新したのかわからなくなるので
チームメンバーでインデントの書き方を揃えましょう!
と、交通整理をすることに。。😓
遥か遠い昔そんな事もあったなぁ…と思うシラッチです。

昨今だとエディタも進化していて、また、プログラミング言語に
あわせた整形ツールも多種多様にあって便利で有り難い限りです。

ただ、チームでエンコードを揃えたい、という課題を
スマートに解決する方法ってなかなかないよなぁ…と
モヤモヤしていました。

あ、ココからが本題です。長くてすみません。笑

開発環境によってはエンコードによってコンパイルエラーに
なってしまいビルドに失敗してしまう、なんて事があります。
プログラマーがソースコードを作成したときにエンコードも
気をつけて指定するように…という手段もありますが、、

EditorConfig( https://editorconfig.org/ )ご存知でしょうか?
私は最近知りました。。😅

冒頭で触れているインデントや、改行コード、そしてエンコードなど
コーディングスタイルに関するエディタの設定を
異なるエディタ間で共有するための規格です。

対応しているテキストエディタもメジャーなものが多く
標準で対応されていないものもプラグイン等の拡張で
対応しているものがあるようです。

個人的には業務でよく使う Visual Studio が 2017 から
対応している事が大きなメリットに感じました。

.editorconfig というファイルをプロジェクトのルートへ
配置しておくだけで、指定したファイルを編集した際の
スタイルを固定することができます。

例えば、
『C++のソースコード(拡張子 cpp および h のファイル)の
エンコードをBOM付きUTF-8にしたい』
というときは .editorconfig に次のように記述しておきます。

root = true

[*.{cpp,h}]
charset = utf-8-bom

root = true は、エディタに対してココがルートになります、と
示すための記述です。

フォルダごとに .editorconfig を配置することができますが
更に上位のフォルダに遡って設定を探してくれるようです。
これ以上遡らなくてもよい、と示すための設定なので
プロジェクトのルートへ配置する場合は記述しておくといいかと思います。
他にも設定はいろいろあるのですがチームでゲーム開発、プログラム開発を
されていて、コーディングスタイルの運用でモヤモヤされている方が
いらっしゃいましたら是非オススメします!

冒頭の私のように何故ビルドが通らないのだ…?とか
もー、チームルールでこうしようって決めたじゃん…ッ!!といった事に
時間を割かないように、少しでも、できるだけ
『良いプロダクトを作ること』に集中していきたいですね🙂

ではまた~🖐

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE