google-java-formatをEmacsとCotEditorとVimで使う
google-java-formatはGoogle Java Styleに合わせてJavaコードを整形してくれるツール。とあるのだが、実際整形してくれるのは長すぎる行の折り返しやインデント調整などだけで、import文のソートや定数名の大文字化などは(まだ)してくれない、微妙なツール。
ビルド
HomebrewなどでJava>=1.7とMavenをインストールしておく。
$ pwd ~/local/src $ git clone https://github.com/google/google-java-format.git $ cd google-java-format/ $ mvn clean package --projects core $ ls core/target/ classes/ maven-status/ generated-sources/ original-google-java-format-0.1-SNAPSHOT.jar generated-test-sources/ surefire-reports/ google-java-format-0.1-SNAPSHOT.jar test-classes/ maven-archiver/ $ cd ~/local/bin $ cat <<EOF > google-java-format #!/bin/bash java -jar ~/local/src/google-java-format/core/target/google-java-format-0.1-SNAPSHOT.jar $@ EOF $ chmod a+x google-java-format
これで google-java-format
コマンドが使えるようになった。
Emacsで使う
~/.emacs.d/init.el に以下設定を追加する。
;; load-pathが通っているところに google-java-format.el を持ってくるか、以下を追加 ; (load "~/local/src/google-java-format/core/src/main/scripts/google-java-format.el") (require 'google-java-format) (setq google-java-format-executable "~/local/bin/google-java-format")
Javaファイルを開き
M-x google-java-format-buffer
でバッファ全体が整形される- リージョン選択してから
M-x google-java-format-region
でその選択部分のみ整形される
CotEditorで使う
~/Library/Application\ Support/CotEditor/ScriptMenu/ に以下の内容のファイルを追加する。
#!/bin/bash # # %%%{CotEditorXInput=AllText}%%% # %%%{CotEditorXOutput=ReplaceAllText}%%% FORMATTED=`~/local/bin/google-java-format -` echo "$FORMATTED"
CotEditorを起動し直すかスクリプトメニューを更新して、Javaファイルを開きメニューバーから実行すると、開いているファイル内容全体が整形される。
CotEditorスクリプトに選択行番号(or 開始・終了オフセット)を渡せれば、選択範囲のみ整形もできるのだが、できなさそう。