はじめに
どうも、限界個人開発者のtsuzuki817です😵
Appleプラットフォームの開発者であれば、プロジェクトごとに異なるコーディングスタイルでインデントの調整などを都度変更して開発をすることもあったでしょう🐢
または新しいメンバーがプロジェクトに参画した際にgitのdiffにスペースが4つ入っていたり、タブ派とスペース派の間で戦争が起きかねません。
これらの作業は大変面倒でしたが、Xcode16で .editorconfig
がサポートされたことによってその悩みから解放されます
.editorconfig
を置くことで プロジェクトをクローンしてきてXcodeを開いたらそのプロジェクトのインデントやEditingの設定が適応されている状態にすることができるのです(めでたし)
.editorconfig ファイルの作成
.editorconfigファイルは、 .xcodeproj
ファイルまたは Package.swift
のファイルの隣に作成しましょう!
どこにおいてもいいの?
EditorConfigをサポートする他のエディターの場合と同様、Xcodeは特定のファイルからディレクトリを自動的に検索して.editorconfigファイルを探します。特定のファイルに最も近い.editorconfigファイルが、そのファイルのエディター設定を決定するために使用されます✌️
なのでなるべくプロジェクトに近いところに作りましょう!
Xcode16で使えるeditorconfig
もっと追加してもいいんですよ!Appleさん!
プロパティ | 値 |
---|---|
indent_style | tab, space |
tab_width | 正の整数 |
indent_size | 正の整数 |
end_of_line | lf, cr, crl |
insert_final_newline | true, false |
max_line_length | true, false |
trim_trailing_whitespace | true, false |
ファイルの種類
ex) [*.swift]
.editorconfigには次のように、ファイルの種類ごとにコーディングスタイルの設定をそれぞれ記述していきます。[ ]内にファイルの種類を指定します。
.editorconfigでは、ワイルドカードを使ってファイル名を指定できます。
(特定のディレクトリを指定しない場合は、プロジェクト内すべてのディレクトリにあるファイルが対象となる)
indent_style
ex) space
インデントの種類を指定できます。tabかspaceのみ指定可能です。
tab | space |
---|---|
indent_size
1インデントの幅を数値で指定します!
indent_size = 4 | indent_size = 2 |
---|---|
tab_width
インデントがタブの場合の1インデントの幅を指定できます!
tab_width = 4 | tab_width = 8 |
---|---|
max_line_length
1行に含めることができる最大文字数
現在、Xcodeでは自動行折り返しはまだサポートされていません!
この設定は、Settings > Editing > Show Reformatting Guideをオンにすることで有効にできるページ ガイドラインに反映されるだけです🐸
ex) 10
(極端な例です!見づらくてしょうがないですね🙈)
trim_trailing_whitespace
trueに設定することで、行末(改行コードの前)にある空白文字(スペースやタブ)を削除します。
通常はtrueにしておくことでコードがクリーンに保たれます🧹
end_of_line
改行コードを指定します。
lf、cr、crlfのいずれかを指定できるよ!
insert_final_newline
最後の行に空行を入れます。
trueに設定して、最後の行は空行にするのが一般的
Xcodeの設定とeditorconfigファイルの設定どっちが優先?
Prefer Settings from EditorConfig
が有効になっていれば editorconfigが優先されます。
この設定はデフォルトでオンになっていますが、いつでもオフにして、Xcode でエディター設定を手動で設定することができます!
反映方法
XcodeをQuit and Restart👍
おすすめ.editorconfig
# ファイルの種類
[*.swift]
# インデントの種類
indent_style = space
# 1インデントの幅
indent_size = 2
# インデントがタブの場合の、1インデントの幅
tab_width = 2
# trueに設定することで、行末にある空白文字(スペースやタブ)を削除
trim_trailing_whitespace = true
# 最後の行に空行を入れる
insert_final_newline = true
# あとはお好きに
これをgit共有すればチームみんなでインデント2の世界に飛び込めますね!
ぜひ、 editorconfig 使ってみてください!
おすすめアプリ✈️