Bescottee苦しいときは伸びてるとき、楽なときは伸びていないとき

15 Androidアプリ開発向け Eclipse XML Formatter

admin to KnowHow, development — Tags: ,  


Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデント位置やif前後のスペースや{}括りの位置、改行位置など)機能があります。詳しくは[Eclipse] ソースコード整形(Code Format / Java Code Style Formatter)にも説明があります。

XMLのソースコード整形の問題点

上記のeclipseのjavaソースコード整形は大変便利なのですが、Androidアプリ開発でUIを作成する場合に利用するXMLファイルには同じ整形ルールが効きません。

以下のようにXMLファイル上でマウス右クリック→「Source」→「Format」(キーボードショートカットの場合、Shift+Ctrl+f)を実行しても、以下のような結果となり1行に1つや2つのアトリビュートが入ったものとなり、見づらかったり、1アトリビュート削除や切り取り貼り付けが実施しづらいものになります。

EclipseXmlSourceFormat

XMLフォーマッターの標準設定の場合

具体的には以下のように1行に2つの要素(アトリビュート)が入るため、切り貼りや削除がやりにくい状態です。

XMLのソースコード整形ルールの設定

上記の問題は解決可能です。eclipse で XML ファイルのコード整形を実施する場合は、javaソースコードへの設定とは別に設定を行う必要があります。
設定場所は、メニューの[Window]→[Preference]でPreferenceを開いて、以下のキャプチャ画像のように[XML]→[XML Files]→[Editor]に存在します。

Eclipse XML Format Setting

  • Split multiple attriutes each on a new line
    • 複数の属性をそれぞ新規行に分割
  • Align final bracket in multi-line element tags
    • 複数行要素タグに最終括弧を位置合わせ

(pleadesの翻訳参照)

「複数の属性をそれぞ新規行に分割」を設定ONにした場合

「複数の属性をそれぞ新規行に分割」と「複数行要素タグに最終括弧を位置合わせ」を設定ONにした場合

2つの設定の比較

2つの設定を抜粋して以下のように比較してみると、閉じるブラケット(>)の位置や閉じるタグ()の位置が異なります。

切り貼りを行うことを考えると、両方ともONの設定がおススメです。

結論

Androidアプリ開発を行う場合、XML で UI を記載します。。画面数や機能が多くなってくるとこのレイアウトXMLの数も増えていくと思います。そうなると、XML内での切り貼りや他のアプリに利用するためにレイアウトXMLの一部だけを再利用したり、コピペで持っていきたいという場合が増えてくると思います。それ以外にも git や svn のような構成管理システムを利用している場合、システムに変更点を入力するまえに diff で確認するときに1行ごとに変更点が見えることは大変有益です。個人的にはこちらの効果のほうが協力だと思っています。XML Formatter の実行方法は、マウス右クリックからの

[/source]

->[Format]もよいのですが、キーボードショートカットのShift+Ctrl+f が簡単でよいと思います。残念ながらJava エディターの Formatter のように save action に xml formatter の機能を付けることがいまの eclipse ではできない(?)ようなので、XMLを書き変えたら、XMLで何か編集したら、Shift+Ctrl+f を押す癖をつけておくとよいです。もし、eclipseで XML Formatter を保存時に適用する方法があれば教えてください。標準設定のままのXML Formatter では、相当な手間が発生するため、今回ご紹介した2つの設定は、常にONにしておくことをお勧めします。

おまけ

今回の設定項目の4つ目の「Clear all blank lines」については、一人で開発する場合はON,OFFどちらでもいいと思いますが、複数人で開発する場合は、ONにして全体のXMLで統一できるようにしておいたほうが個人的にはよいと思います。

15件のコメント »

  1. vvakame より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  2. esmasui より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  3. neetron より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  4. sakura_bird1 より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  5. kkeisuke より:

    ソースコードを整形

  6. cutmail より:

    http://t.co/UfRAhqZ [Android]EclipseのXML formatter のお薦め設定 | Bescottee

  7. androhi より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  8. IS06 より:

    Android Tools ProjectのRecent Changesを見ると
    XML Formatterの改善について記載されています。
    http://tools.android.com/recent/xmlformatter
    保存時にフォーマットしてくれる機能も追加されるようです。

  9. tomorrowkey より:

    xmlもフォーマッタ使うの常識だおねー / EclipseのXML formatter のお薦め設定 | Bescottee http://t.co/MVdan0h

  10. hotchemi より:

    便利:EclipseのXML formatter のお薦め設定 | Bescottee http://t.co/SRHF84K

  11. admin より:

    IS06(koji.okb)様
    コメントありがとうございます。ADTのほうですでに改善が実施されているんですね。
    大変有益な情報ありがとうございます。リンクを早速見てみます。

    今後の ADT バージョンアップでこの機能が追加されるということで待ち遠しいです。

  12. わかめ より:

    Androidアプリ開発向け Eclipse XML Formatter – http://andbrowser.com/develop...

  13. runwork より:

    Androidアプリ開発向け Eclipse XML Formatter:
    Androidアプリ開発でもっとも多く利用されている IDE は eclipse で、eclipse の便利な機能としてソースコードを整形(インデ… http://t.co/dlAZaxw

  14. lang_and_engine より:

    レイアウトXMLファイルの整形方法。ウィンドウ>設定>XML>XMLファイル>エディタ>複数の属性をそれぞれ新企業に分割,および複数行要素タグに最終括弧を位置合わせ にチェック。これでCtrl+Shift+Fで整形できる / “Ecl…” http://t.co/nVCWks5N

  15. ywindish より:

    “EclipseのXML formatter のお薦め設定 | Bescottee” http://t.co/nf8V4Nmh

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ