12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Atom】エディタの自動フォーマットの設定を統一しよう

Posted at

チーム開発におけるフォーマット統一の重要性

チーム開発でGithubなどのバージョン管理システムを導入しているのはもはや当たり前だと思いますが、そこで必ず発生するのがこのフォーマット統一に関する問題です。
例えば、ある人はファイル末尾に必ず空行を挿入する設定をしているのに、自分は空行を挿入しないような設定にしていると、自分が作成したファイルを他の人が編集すると、微妙なフォーマットの更新が発生します。また、その逆も起こりえます。

特定の人が編集する度にフォーマットに関する差分が発生してしまうと、無駄なコミット履歴が残ってしまい、またコードレビューをする人からするとかなり見難いため、あまりよくありません。
チームごとで各メンバーが使用するエディタの設定を統一することで、無駄なコミットが発生しないよう心がけましょう :muscle:

Atomでのフォーマットの設定

Preference > Packages を選択し、検索欄に「whitespace」を入力して検索します。
Atomにはこのwhitespaceというプラグインがデフォルトで入っており、ここでスペースに関する設定をすることができます。
スクリーンショット 2016-06-05 11.19.02.png

また、いくつかデフォルトでオンになっている設定があり、保存時に自動フォーマットしてくれるため、変更したい時はこの設定を確認してみましょう。

スクリーンショット 2016-06-05 11.19.19.png

ファイルの末尾の改行

ファイルの末尾に改行が挿入するかどうかの設定は、Ensure Single Trailing Newlineで行います。改行させないようするには、このチェックを外します。

カーソル行のスペース

カーソルがある行の余分なスペースを削除したくないときは、Ignore Whitespace On Current Lineのチェックを入れます。削除したい場合は、チェックを外します。

空行のスペース

スペースのみの行があった場合、そのスペースを削除したくない場合は、Ignore Whitespace Only Lineのチェックを入れます。削除したい場合は、チェックを外します。

ファイル保存時に自動的にスペースを削除する

ファイルを保存した時に、上記で設定したような余分なスペースを自動で削除するようにしたい場合は、Remove Trailing Whitespaceのチェックを入れます。必要のないときはチェックを外します。

注意点

無意識にコードの差分を生まないように注意する

これはエディタの設定にもよると思うのですが…。
この自動フォーマット機能は勝手にインデント揃えてくれたりと大変便利なのですが、この機能により自分の気づかないところで差分が発生してしまうことがあります。

例えば、ファイルを保存した時に自動フォーマットするような設定にしていると、意図せず関係ないファイルを編集してしまい、git statusを叩くとたくさんファイルがmodifyされてる…みたいなこともあると思います。

最初からエディタの設定と同じようにフォーマットされているファイルを編集するのであれば、問題ないとは思います。
そうではないファイルを編集する際は、自動保存の設定はしなくても良いんじゃないかと個人的には思います。

12
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?