48
43

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.

Xcodeで使えるSwiftコードフォーマッター「Swimat」をつかってみた

Posted at

Swimatとは

会社の人にXcodeでつかえるSwiftコードフォーマッター Swimat を教えてもらったのでつかってみました。

Swimatがどういうものかは、GitHub - Jintin/Swimat: An Xcode formatter plug-in to format your swift code. のGIFアニメがわかりやすいです。

01-01.png 01-02.png

このように、一定のルールに従って空白やインデントを入れたり消したりして、コードを読みやすくしてくれます。

インストールしてみよう

Swimatは、homebrew-caskでインストールします。
もし、homebrewがインストールされていない場合は、事前にHomebrew-Caskからインストールしてください。

まず、ターミナルを開いて、つぎのコマンドを実行します。

brew cask install swimat

つぎに、Swimatのアプリをダウンロードします。

02.png

ダウンロードしたSwimatのアプリを起動します。

03.png

Swimatの画面が表示されるので、内容をよく読んだら閉じます。

04.png

システム環境設定を開いて、機能拡張をクリックします。

05.png

画面左のXcode Source Editorをクリックして、右側のSwimatをチェックします。

Xcodeを起動している場合は、再起動してください。

つかってみよう

06.png

Xcodeでフォーマットしたいファイルを選択して、メニューのEditor > Swimat > Fromatをクリックします。青色の選択部分のコードにご注目。

07.png

あっというまに、きれいなコードのできあがりです。

おまけ(ショートカットで楽々フォーマット)

毎回メニューから実行するのは大変なのでショートカットを設定します。

08.png

XcodeのメニューのXcode > Preferencesを開いて、Key Bindingsをクリックします。

09.png

検索欄に Swi と入力すると、Swimatが表示されます。

10.png

Key欄をダブルクリックしてから、割り当てたいショートカットキーをキーボードで押します(すでに割り当て済みの場合は、右側に黄色い三角や赤い丸のエラーマークが表示されるので、別のキーを割り当てましょう)。
保存するついでにフォーマットするのが良さそうなので、 option + S にしてみました。

11.png

メニューで確認すると、バッチリショートカットキーが割り当てられています。

おまけ(SwiftFormat)

SwiftFormat というコードフォーマッターもあるので、興味があるかたはご覧ください。

GitHub - nicklockwood/SwiftFormat: A code library and command-line formatting tool for reformatting Swift code

12.png

こちらのスクリーンショットのように、Githubにフォーマットのルールがたくさん掲載されています。不要な空白はなくしましょう、というようなものから

13.png

数値の3桁区切りに _ を入れましょう、みたいなものまでいろいろとあります(3桁区切りの _ 知りませんでした)。

ざっと眺めるだけでもコードの書き方の勉強になりますね。

48
43
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
48
43

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?