質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

1回答

4035閲覧

Rubyのフォーマッター「Rufo」導入について

YO14

総合スコア45

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/09/22 02:22

実現したいこと

Rubyファイル保存時に、フォーマッターが発動してレイアウトを自動で調整できるようにしたい

環境

VisualStudioCode

実行済み

・VSCodeの拡張機能で、Rufo - Ruby formatterインストール済み
・gem install rufo 実行済み

→この時点で、rubyファイル保存時にRufoによってコードが整形されると思っていたのですが、されませんでした
参考)https://shanshan.hatenadiary.jp/entry/2018/12/23/093125

追加で、
・基本設定>設定で、
-Editor: Default Formatter:jnbt.vscode-rufo
-Format on save:有効
-Ruby: Format
Which system to use for formatting. Use false to disable or if another extension provides this feature. : rufo を選択

と行いましたが、コードの整形は行われません。

現状の問題点

・コードを保存時に自動整形、が実行されない
・また、

rufo file names or dir names

というコマンドで、
対象ファイルをディレクトリからフルパスで指定したら整形が実行されていたが、
上記の設定を弄っているうちにそれも発動しなくなってしまった

お手軽に自動整形が導入できると思っていたのですが、思った以上に時間が取られています。
知見がお有りのかた、どのような設定をされたかご教示いただけないでしょうか。どうぞ宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

まず、「Editor: Default Formatter」(setting.jsonではeditor.defaultFormatter)の設定は、初期設定のnullに戻してください。この設定は、「他のすべてのフォーマッタ設定よりも優先される、既定のフォーマッタ」なので、通常は設定する必要がありません。言語ごとのフォーマッターを指定すればちゃんと動きます。

次に、VSCodeコンソールかターミナルなどの端末で、which rufo(Windowsではwhere rufo)を実行して、RuFoがコマンド検索パス(環境変数PATH)に含まれるかを確認します。rufoの実行ファイルへのフルパス(/usr/local/bin/rufoとか)が表示されるのであれば、RuFoは(コマンド名だけで)使用可能な状態です。

VSCodeの設定では、

  • 「Ruby: Format」(ruby.format) 「rufo」を選択
  • 「Rufo: Exe」(rufo.exe) 「rufo」を設定(初期設定)
  • 「Rufo: Use Bundler」(rufo.useBundler) チェックしない(初期設定)

が必要です。settings.jsonには、初期設定から変更された「"ruby.format": "rufo"」だけが追加されます。「Editor: Format On Save」(editor.formatOnSave)などの設定はお好みで。

以上の設定でVSCodeからRuFoが(保存時などのタイミングで)動作します。

設定がちゃんとしてあるのに動作しない場合は、コマンド検索パスにrufoの置かれたディレクトリが含まれていない可能性が高いですね。その場合も、「Rufo: Exe」(rufo.exe)の設定を、rufoのフルパスに変更すれば動くはずです。

投稿2020/09/22 03:52

Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YO14

2020/11/07 07:31

ご回答ありがとうございます。 ご教示いただいた内容で、ソースコードのファイルを保存などしてみましたが、 Rufo failed with exit code: 1 というエラーメッセージ が出ます。 > 「Rufo: Exe」(rufo.exe)の設定を、rufoのフルパスに変更すれば動くはずです。 こちらの情報をもとに、which rufo -v で表示されたフルパスを、rufo.exeに設定しましたが、 同様のエラーが出ます。何か対処法ございませんでしょうか。ググってみても解決策が見つけられておりません。
Daregada

2020/11/08 02:01

状況を切り分けてください。 VSCodeからでは「なく」、端末(ターミナルなど)のコマンドラインから、「rufo 適当なファイル名.rb」を実行すると、整形されますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問