I've been happily using https://github.com/rubyide/vscode-ruby in VSCode which has been auto-formatting my code on save, until this was merged https://github.com/rubocop-hq/rubocop-rspec/pull/1109 (which is great in itself).
Now when I save a Rspec file with a focused spec, it removes it! eg
On saving fit "something" do, it updates it to it 'something'! (It does not remove disabled specs xit)
vscode-ruby config:
"ruby.intellisense": "rubyLocate",
"ruby.useLanguageServer": true,
"ruby.codeCompletion": "rcodetools",
"ruby.format": "rubocop", // this line causes the formatter to kick in
"ruby.lint": {
"rubocop": true
},
# rubocop:disable RSpec/Focus to the end, but that is annoying.rubocop.yml file, but then
rubocop on the command lineonly would be good!vscode-ruby be configured to modify the command line options?To have ruby-lsp extension still fix most auto-correctable offences on save in VS Code, but allow for focussed tests to still work, you could rely on an extra safety next in your continuous integration environment.
Disable the cop in .rubocop.yml:
RSpec/Focus:
Enabled: false
and modify the focus configuration in rails_helper.rb to say:
if ENV["CI"]
config.before(:example, :focus) { |example| raise "Focused spec found at #{example.location}" }
else
config.filter_run_when_matching :focus
end
I figured this out via Stephanie Viccari’s blog post.
If your version of rubocop/rubocop-rspec supports it, you can do:
RSpec/Focus:
AutoCorrect: contextual
For more info, see:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With