タブでもスペースでもインデント幅を自分好みに固定できる Atom パッケージ

どんなコーディングスタイルでもインデント幅を自分好みに固定できる Atom パッケージ fixed-indentation-width を公開した。Atom からインストールできる。

ファイルが 2 spaces だろうが 4 spaces, 5spaces それからハードタブ、どんなスタイルでも自分の決めたインデント幅にできる。

使用するにあたっては Atom がそのコードのインデント幅を知っている必要がある。具体的には EditorConfig などを使って、コードのインデント幅とエディタが想定しているインデント幅を揃えておく必要がある。

リポジトリはこちら。

経緯

どこの誰が広めたのか知らないが、「環境によって見え方が変わるから」「patch でハードタブを扱えないから」「ターミナルからコピペするとタブ文字がスペースになってしまうから」などという的外れな理由で、 Web 業界ではインデントにスペース2つが当たり前になっている。

環境によって見え方が変わるのは、フォントによってスペースの幅が違うからスペースだって同じだし、いまどきの patch はタブをちゃんと扱えるし、そもそもターミナルからコピペすんなよと言いたいところだが、今は prettier だって使えるし問題ない。

現時点での最大の問題は、指定数のスペースしか許さんとぬかしている輩のせいで、ユーザがそれぞれ見やすいインデント幅に設定できないことだ。特にプロポーショナルフォントで表示するとスペース2つなんて漢字一文字よりも狭いからインデントしているんだかしていないんだかはっきりしてほしい状態になる。

しかもだ、一般人が GoogleAirbnb の使っているコーディングスタイルがクールだと言って真似する。そうすると自力で prettier をセットアップできない一般人は悲しいことに、スペースを1つだけ削ったり余計に足したりしてインデントをガタガタに崩してしまう。

一方タブでインデントを行えば、現在使われているほとんど全てのエディタはタブの幅を設定する機能があるので、ファイルのバイト列は変えずに各個好みのインデント幅に設定できる。スペースと違って目立つので一般人にも優しい。

とはいうものの宗教だとか政治の世界になってしまうので、何とか解決するものはないかと Atom をいじくり回してできたのがこのパッケージ。

既知の問題

  • 2段以上のインデントの中間にカーソルを移動させるとカーソルが見えなくなる
  • 起動直後はインデント幅がちゃんと設定されない(内容を変更すると直る)

解決手段を思いついた方は教えてください。