8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iOSAdvent Calendar 2024

Day 17

Xcode16から.editorconfigがサポートされてインデントの設定など便利になったっぽい🎉

Posted at

はじめに

どうも、限界個人開発者のtsuzuki817です😵

Appleプラットフォームの開発者であれば、プロジェクトごとに異なるコーディングスタイルでインデントの調整などを都度変更して開発をすることもあったでしょう🐢

または新しいメンバーがプロジェクトに参画した際にgitのdiffにスペースが4つ入っていたり、タブ派とスペース派の間で戦争が起きかねません。

これらの作業は大変面倒でしたが、Xcode16で .editorconfigがサポートされたことによってその悩みから解放されます :tada:

.editorconfigを置くことで プロジェクトをクローンしてきてXcodeを開いたらそのプロジェクトのインデントやEditingの設定が適応されている状態にすることができるのです(めでたし)

スクリーンショット 2024-12-16 18.09.22.png

.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
スクリーンショット 2024-12-17 0.22.02.png スクリーンショット 2024-12-17 0.21.27.png

indent_size

1インデントの幅を数値で指定します!

indent_size = 4 indent_size = 2
スクリーンショット 2024-12-17 0.23.28.png スクリーンショット 2024-12-17 0.21.27.png

tab_width

インデントがタブの場合の1インデントの幅を指定できます!

tab_width = 4 tab_width = 8
スクリーンショット 2024-12-17 0.30.51.png スクリーンショット 2024-12-17 0.30.51.png

max_line_length

1行に含めることができる最大文字数
現在、Xcodeでは自動行折り返しはまだサポートされていません!
この設定は、Settings > Editing > Show Reformatting Guideをオンにすることで有効にできるページ ガイドラインに反映されるだけです🐸

スクリーンショット 2024-12-17 0.44.50.png

ex) 10
(極端な例です!見づらくてしょうがないですね🙈)
スクリーンショット 2024-12-17 0.46.14.png

trim_trailing_whitespace

trueに設定することで、行末(改行コードの前)にある空白文字(スペースやタブ)を削除します。

通常はtrueにしておくことでコードがクリーンに保たれます🧹

animated.gif

end_of_line

改行コードを指定します。
lf、cr、crlfのいずれかを指定できるよ!

insert_final_newline

最後の行に空行を入れます。

trueに設定して、最後の行は空行にするのが一般的

スクリーンショット 2024-12-17 1.01.49.png

Xcodeの設定とeditorconfigファイルの設定どっちが優先?

Prefer Settings from EditorConfigが有効になっていれば editorconfigが優先されます。
この設定はデフォルトでオンになっていますが、いつでもオフにして、Xcode でエディター設定を手動で設定することができます!

スクリーンショット 2024-12-16 18.20.49.png

反映方法

XcodeをQuit and Restart👍

おすすめ.editorconfig

.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 使ってみてください!


おすすめアプリ✈️


8
2
0

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
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?