moraTorIamプログラマ

プログラミングに関する知見を書きます。

Rubyを書く際にrubocop よりも高速にフォーマットする方法

最近、競技プログラミングRubyで解いてます。

その際に構文エラーで時間を取られたくないし、綺麗に書きたいのでruocopでフォーマットを掛けようとしました。

しかし、もっと高速に動くフォーマッターを見つけたので導入できる方法を紹介します。

環境

エディタ(他のエディタでも可能です。公式のGitHubをご覧ください。)

VSCode拡張機能

  • rufo 0.1.1

gem

[Qiita] Rubyの高速フォーマッタ-"Rufo"を使ってみる

シチュエーション

Rails環境ではなく、Rubyファイルをサクッと書いて実行するだけのディレクトリを想定しています。

設定ファイルは自分で用意する必要がなく、それでいて簡単に導入できることが理想です。

rubocopのデメリット

vscoderuby-rubocopと言う拡張機能を使ってrubocopを使用しようとすると実行パスを指定しても実行されず、困っていました。

おそらくrailsのプロジェクト下にrubocopをinstallして、設定ファイルを作る分には問題ないです。

しかし今回はあまり設定に時間をかけたくありませんし、設定ファイルは標準のもので十分です。

rufoの設計思想

rubocopと同じコードフォーマッターですが、rufoはより小さく高速に動くことを考えて作られています。

自分でルールの設定をせずとも動くことも魅力の一つです。

導入方法

gemをインストールして、

gem install rufo

VSCode拡張機能をインストールしたら、あとはVSCodeを再起動するだけです。

VSCodeでは、既に拡張機能ruby-rubocopをインストールしているとそちらが優先してSave時に実行されてしまうので、ワークスペースでは無効にしておいてください。

使用

Save時にフォーマットしてくれます。

ありがとうrufo。

Image from Gyazo