SOY CMS/Shopの開発を今まではEclipseを使っていたけど、
最近、Bracketsに移行することにした。
理由は中学生向けのプログラミング教室でBracketsを勧めたからで、
Eclipseが使いにくいというわけではなく、
Eclipseでよく使用していた機能がBracketsにはなくて苦戦していることも多いです。
乗り換えをした時のジレンマだと思って、
苦戦は勉強の機会だと思い楽しむことにします。
BracketsにはBeautifyというファイル保存時にコード規約にのっとって自動で整形してくれる機能がある。
Goで書いている時にGoツールにこの手の機能があって重宝していたので、
HTML、JavaScriptとPHPでも使用することにした。
Beautifyは柔軟に設定できるんだけど、
標準機能でPHPやXMLファイルの設定がない。
PHPとXMLはHTMLのルールに従って整形されるらしい。
PHPはあまり困らないんだけど、
XMLの設定がないのは本気で困った。
SOY CMS/Shopではパッケージの作成にApache Antを利用していて、
build.xmlに実行設定を記述する。
Bracketsでbuild.xmlを編集して、シェルでantを実行すると
$ ant Buildfile: /home/saito/workspace/bitbucket/soycms/main/tool/soyshop/build.xml BUILD FAILED /home/saito/workspace/bitbucket/soycms/main/tool/soyshop/build.xml:9: 要素のコンテンツは、整形式の文字データまたはマークアップで構成されている必要があります。 Total time: 0 seconds
ビルドエラーになるよ。
どうやら保存時にHTMLのルールに従って、<script>周りの記述が変更されたことが原因らしい。
というわけで、XMLファイルは自動整形されない設定方法を探してみた。
GitHub - brackets-beautify/brackets-beautify: Beautify HTML, CSS, and Javascript in Adobe Brackets
このページを読んでみると、
brackets.jsonというファイルで特定の言語のファイルの場合は無視できる設定を行えるらしい。
ということでbrackets.jsonを探してみた。
$ sudo find ~/ -name "brackets.json" /home/saito/.config/Brackets/brackets.json
brackets.jsonを開いてみて、
"bb.beautify.onSave": true,
この行の下に
"language":{ "xml":{ "bb.beautify.onSave":false } },
xmlファイルの場合はBeautifyを無視する設定を追加してみた。
追加後、Bracketsを開き、build.xmlを変更し保存後に下記のコマンドを実行してみたところ、
$ ant Buildfile: /home/saito/workspace/bitbucket/soycms/main/tool/soyshop/build.xml set_version: [input] Version? [1.17.3p7.160]
antが無事に動きました。