web-dev-qa-db-ja.com

vscode(vscode-Ruby + rubocop)保存時に自動修正する方法は?

環境

  • vscodeバージョン1.19.1(1.19.1)
  • rubocop(0.52.1)
  • Darwin mbp 16.7.0 Darwin Kernelバージョン16.7.0:Wed Oct 4 00:17:00 PDT 2017; root:xnu-3789.71.6〜1/RELEASE_X86_64 x86_64
  • Ruby 2.3.5p376(2017-09-14リビジョン59905)[x86_64-darwin16]

https://github.com/rubyide/vscode-Ruby#linters に従い、すべてのgemをインストールし、settings.jsonを次のように編集しました。

{

  "Ruby.rubocop.executePath": "/Users/ac/.rbenv/shims/",
  "Ruby.rubocop.onSave": true,
  "Ruby.lint": {
    "Ruby": {
      "unicode": true //Runs Ruby -wc -Ku
    },
    "reek": true,
    "rubocop": {
      "lint": true,
      "Rails": true
    },
    "fasterer": true,
    "debride": {
      "Rails": true //Add some Rails call conversions.
    },
    "Ruby-lint": true
  },
  "Ruby.locate": {
    "include": "**/*.rb",
    "exclude": "{**/@(test|spec|tmp|.*),**/@(test|spec|tmp|.*)/**,**/*_spec.rb}"
  }

}

Vscodeでは、コードの強調表示は正常に機能しています。
*注意してください。インストールされている拡張機能と、問題のタブに警告が表示されます。

rubocop is working ok

質問

私はvscode-Rubyrubocopは、file saveのインデントとcopルールを自動修正しますが、そうではないようです。
コードをprettierのようにフォーマットしたい場合、どのように設定すればよいですか?

10
kukrt

Vscode-Ruby-rubocop GitHubの このコメント ごとに、次の設定を使用できます。

{
    "editor.formatOnSave": true,
    "editor.formatOnSaveTimeout": 5000,
    "Ruby.rubocop.executePath": "path/where/rubocop/is/located",
    "Ruby.format": "rubocop",
}

ローカルボックスのユーザー設定にそれらを適用するだけで、機能するように見えます。 VS CodeがRuby.rubocop.executePath設定に対して実行可能でないことを示すエラーをスローし、行を削除してもそのエラーは表示されず、それに応じてコードをフォーマットします。タイムアウトを低く設定すると(私は2500を試しました)、保存時に自動フォーマットが壊れるようですので、5000のままにすることをお勧めします。

10
MattD

Ruby-rubocopで自動修正が機能することを確認するには、以下の設定を追加します "Ruby.rubocop.executePath": "path/where/rubocop/is/located"がデフォルトの "Ruby.rubocop.executePath": ""に設定されていることを確認します

Vscodeのjsonファイルに以下を追加します

"editor.formatOnSave": true,
"editor.formatOnSaveTimeout": 5000,
"Ruby.rubocop.executePath": "",
"Ruby.format": "rubocop",
1
Samuel Kiroko N

このコメントはありがたいことに古くなっています

-残念ながら、これは現在のrubocop拡張機能では実行できません。主な使用例は、Rubyをlintし、IDEで視覚的な合図を表示することです。

これは現在githubで未解決の問題/機能のリクエストです。この問題を表示して、解決されるまで進行状況を確認してください。

https://github.com/misogi/vscode-Ruby-rubocop/issues/49

0
gdxn96