Flex Formatterが出ました
今日、弊社に初の税務調査が来るので少々緊張してるよねむらです。
こんにちは。
flexで開発してるときに、コードのフォーマッタが欲しい!と思った人も多いと思います。
無料のフォーマッター欲しい><
そんな時に、いいのあるよ!とid:shot6から情報を頂いたので
Flexのコードフォーマッタを一昨日使ってみたので使い方と説明をメモしておきます。
asファイルとmxmlファイルのフォーマット可能です。
インストール
Eclipseのプラグインとして提供されているので、以下からFlexPrettyPrintCommand_0.6.5.jarをダウンロードします。
名前がかわいいです。
http://sourceforge.net/projects/flexformatter/
FlexBuilderを使ってるEclipseのpluginsフォルダにコピーします。
左のボタン Format Flex code (select lines)
コードをフォーマットしてくれます。
private function test ( e : FlexEvent ) : void { trace("format me!"); } }
↑のコードは↓ようになります
private function test(e:FlexEvent):void { trace("format me!"); }
右のボタン Indent Flex code (select lines)
選択コードのインデントを調整します。
private function test( e : FlexEvent) : void { if (true) { trace("format me!"); } }
↑のコードは↓ようになります
private function test( e : FlexEvent) : void { if (true) { trace("format me!"); } }
インデントだけで、引数の括弧前後の空白や、:の前後の空白はフォーマットしません。
カスタマイズ
:の前後はスペース1個だろう!いやスペースは入れない!
BSD/オールマンスタイルだ!
と喧嘩すると困るので、フォーマットのカスタマイズをします。
設定
Window
┗Preferences...
┗Flex Formatting
上記メニューで、フォーマットのカスタマイズが出来ます。
右側で設定したフォーマットを確認可能です。
私が試しに設定してみたのは
インデントにスペースを使用
IndentationでUse spacesを選択
BSDスタイルで括弧をつける
Open brace on new lineのチェックをはずす
else ifを1行にする
Else-If on same line
同じ設定を複数で共有するには
チームで設定を共有するには、設定をExportして他の人はそれを取り込めば良いです。
方法は、設定画面から Export... ボタンを押して、適当な名前で保存します。
私は、なんとなくxmlかな?と思いflex-format.xmlとしました。
そうすると以下のようなファイルが出来上がりました。
MXML.maxLineLength=200 MXML.sortAttrMode=0 Actionscript.blankLinesBeforeClasses=1 Actionscript.keepElseIfOnSameLine=true Actionscript.wrapArrayDeclMode=1 Actionscript.putOpenBraceOnNewLine=false Actionscript.wrapMethodCallMode=1 Actionscript.blankLinesBeforeFunctions=1 MXML.attrWrapMode=52 Actionscript.keepSLCommentsOnColumn1=true Actionscript.spacesAfterComma=1 Actionscript.blankLinesBeforeControlStatements=0 Actionscript.spacesAroundAssignment=0 Actionscript.keepBlankLines=true MXML.sortAttrData= Actionscript.maxLineLength=200 Actionscript.putElseOnNewLine=false Actionscript.spacesBeforeComma=0 Actionscript.wrapEmbeddedXMLMode=2 MXML.attrsPerLine=1 Actionscript.putCatchOnNewLine=false Actionscript.breakLinesBeforeComma=true MXML.spacesAroundEquals=0 Actionscript.wrapMethodDeclMode=1 MXML.sortExtraAttrs=false Flex.useTabs=false Actionscript.spacesAroundBinarySymbolicOperator=1 Actionscript.wrapExpressionMode=1
xmlじゃないですね><ただのテキストでした。
これを、設定画面からImport...ボタンで他のメンバが取り込めばチームで共通フォーマットで開発出来ますね。
雑記
先日、知り合いのお店の入口にいた犬をなでて手を洗わずに蒸しパンを手でちぎって食べたせいか
食当たりになってしまいました...
皆さん、犬を触ったら手を洗いましょうね。