LoginSignup
30
21

More than 3 years have passed since last update.

VS Code で Apex コードをオートフォーマットする方法

Last updated at Posted at 2019-02-17

VS Code をしばらく使ってみて気づいたのですが、 実は Apex ファイルに対応したフォーマッターが無いらしいです。
Screen Shot 2019-02-17 at 13.32.13.png
そこで、 Uncrustify という CLI と VS Code の Extension を使って、 Java ファイルとしてフォーマットさせる方法を試してみました。

uncrustify をインストール

まずは、UncrustifyHomebrew でインストールします。

$ brew install uncrustify
$ uncrustify -v
=> Uncrustify-0.68_f

続いて、VS Code に vscode-uncrustify Extension をインストールします。
Screen_Shot_2019-02-17_at_13_45_40.png

VS Code を Command + Shift + p > Reload Window でリロードしておきます。

uncrustify の設定

VS Code のコマンドで uncrustify.cfg を作成します。
Command + Shift + p > Uncrustify: create default config file

VS code のエクスプローラから uncrustify.cfg を開き以下を修正
Screen_Shot_2019-02-17_at_13_53_21.png
その他の項目も以下の要領でお好みで編集しておきます。

項目 説明
indent_with_tabs 0 ハードスペース化
indent_columns 4 4 スペースでインデント
indent_class true class 内のインデントを有効化

VS Code の設定

Command + , で設定を開き、 JSON エディタに切り替えてから以下を追加

"uncrustify.langOverrides": {
    "apex": "JAVA",
    "apex-anon": "JAVA"
}

最後に Command + Shift + p > Reload Window で再度リロードすれば Apex ファイルでもフォーマッター使える様になります。

全てのプロジェクトで共通の設定

uncrustify.cfg はそのままではプロジェクト単位で適用されてしまうため、新規プロジェクトの作成時に毎回設定し直す必要があり面倒ですよね。そこで、これを全プロジェクト共通の設定としてしまいましょう。

まず上で作った uncrustify.cfg を適当なディレクトリ(今回は~/.uncrustify/uncrustify.cfg)にコピーしておきます。

そして、Command + , で設定を開き JSON エディタに切り替えてから以下を追加します。

"uncrustify.configPath.osx": "$HOME/.uncrustify/uncrustify.cfg",

再度 Command + Shift + p > Reload Window で再度リロードすれば全てのプロジェクトで Apex ファイルをフォーマットできるようになります。

30
21
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
30
21