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.