kappyこのサイトのロゴ。kappy.dev
一覧に戻る

2026-02-01

Oxc製の爆速フォーマッタ「oxfmt」をEmacsに導入する

oxfmtとApheleiaでEmacsの保存時整形を実現したときのメモです。

JavaScript/TypeScriptの開発で、Prettierの「Format on Save(保存時整形)」はもはや必須だと思っています。

今回は、Rust製のフォーマッタ「oxfmt」をEmacsに導入した設定を紹介します。

oxfmtとは?

oxfmtは、Oxcプロジェクトが開発しているPrettier互換のフォーマッタです。

公式ベンチマークでは、特定条件下で Prettier より大幅に高速な結果が示されており、保存時整形の体感待ち時間を大きく減らせると思われます。

Our benchmarks show Oxfmt to be approximately 30x faster than Prettier and 2x faster than Biome.

ツールのインストール

oxfmtをグローバルにインストールします。

npm install -g oxfmt

Emacs側の設定

apheleiaを使いました。apheleiaにはoxfmtのformatter定義が標準で用意されているので、設定ファイルに以下のように書きます。

(use-package apheleia
  :ensure t
  :config
  (apheleia-global-mode +1)
  ;; typescript-ts-mode など、使っている各モードにoxfmtを割り当て
  (setf (alist-get 'typescript-ts-mode apheleia-mode-alist) 'oxfmt)
  (setf (alist-get 'tsx-ts-mode apheleia-mode-alist) 'oxfmt)
  (setf (alist-get 'js-mode apheleia-mode-alist) 'oxfmt)
  (setf (alist-get 'js-json-mode apheleia-mode-alist) 'oxfmt))

私はTypeScript/TSX中心なので上のモードだけ割り当てましたが、必要に応じて追加してください。

まとめ

使ってみた感想としては、Prettier互換なので設定移行のストレスが少なく、速度も速いので、非常におすすめです。