109
86

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.

AndroidStudioで保存時に自動整形+import整理する(作業時間2分)

Posted at

Commitする前に毎回Command+Option+Lでフォーマット整形してControl+Option+Oでimport整理するの面倒だったので、保存時に自動的にフォーマット整形+import整理するようにしてみました。

AndroidStudioのマクロ機能を使って2分でできたので手順をメモしておきます。

##1. マクロ記録開始

AndroidStudioには、一連の操作を登録できるマクロ機能があります。

Android Studio > Edit > Macros > Start Macro Recordingを押したあと操作して、終わったらStop Macro Recordingを押すだけです。

まずは、Start Macro Recordingをクリックします。

##2. マクロの登録

今回は、Reformat Code、Optimize ImportSave Allの操作を記録したいので

Code > Reformat Codeをクリックしたあと、Code > Optimize Importをクリックします。

Optimize Importをクリックしたあとでダイアログが表示された時は、ダイアログの中のRearrange entriesにチェックを入れてRunボタンを押してください。

android_studio_1.png

最後に、File > Save Allをクリックすればマクロの操作は終了です。

##3. マクロの保存

Macros > Stop Macro Recordingをクリックしてマクロの登録を終了します。マクロに名前をつけるよう言われるので、適当な名前をつけてください。

android_studio_2.png

##4. ショートカットキーのバインド

保存はCommand+Sでやるので、ショートカットキーを変更しておきます。

Android Studio > Preferences > Keymap > Macrosから、先ほど作ったマクロを選択して右クリック。
Add Keyboard ShortcutCommand+Sをバインドします。元のキーバインドを消していいかという警告が出ると思うので、OKを押してください。

android_studio3.png

##5. マクロのエクスポート

以上で保存時に自動的にフォーマットがかかるはずです。もしチーム全体でこのマクロの設定を共有したい場合は、設定をエクスポート・インポートすることができます。

Android Studio > File > Export Settingsをクリックします。ダイアログに、どの設定をエクスポートするかチェックボックスが並んでいるので、Macrosだけ選択して他はクリアします。Key mapsも選んでもいいのですが、独自にキーバインドしている人の設定とコンフリクトする可能性があるので外しておきました。

OKを押すとsettings.jarというファイルをエクスポートできるので、チームメンバーに渡して、Android Studio > File > Import Settingsからマクロをインポートしてもらいましょう。

以上!コードが自動的に読みやすくなっていい感じです。
マクロ機能はもっと使いこなせば色々捗りそうです。

109
86
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
109
86

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?