环境
- vscode版本1.19.1(1.19.1)
- 红铜矿(0.52.1)
- 达尔文mbp 16.7.0达尔文内核版本16.7.0:2017年太平洋夏令时10月4日星期三00:17:00;根目录:xnu-3789.71.6~1/版本_x86_64 x86_64
- Ruby2.3.5p376(2017年9月14日修订版59905)[x86_64-达尔文16]
按照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上,程式码反白显示运作良好。
- 请注意,您会看到已安装的扩展,并在problem选项卡中显示警告。
问题
我的印象是vscode-ruby
和rubocop
会在**文件保存 * 时自动更正缩进和复制规则,但显然它不会。
如果我想让它像prettier
一样格式化我的代码,我应该如何设置?
7条答案
按热度按时间afdcj2ne1#
根据对vscode-ruby-rubocop GitHub的评论,您可以使用以下设置:
只是将它们应用到我本地的用户设置中,它似乎可以工作。VS代码对我的
ruby.rubocop.executePath
设置抛出了一个错误,说它是不可执行的,删除该行似乎不会导致该错误显示,并仍然相应地格式化我的代码。设置一个较低的超时(我尝试了2500)似乎也破坏了保存时的自动格式化,所以我建议将其保留在5000。xzlaal3s2#
我已经尝试了其他人分享的所有选项,它为我修复了链接(所以当我的代码格式不正确时,我会收到警告),但它没有修复保存时的缩进或其他格式。
对我来说,添加一个默认的格式化程序选项似乎很有用。如果你看一下vscode的右下角,你会看到一个通知图标,它可能会抛出一些警告,对你的配置有帮助。对我来说,它是添加:
nkhmeac63#
现在,只需添加以下行就足够了:
qacovj5a4#
我有这个问题一段时间,没有其他解决方案为我工作。
根据github的评论,解决的问题是:
我将PATH中的
bin
替换为wrappers
,并解决了该问题:vscode设置:ruby.rubocop.executePath": "/Users/USER_NAME/.rvm/gems/ruby-2.6.5/wrappers/
**注:**如果上述方法都不适用,您可以检查另一个有用的方法,即检查您的个人文件夹中是否有
.rubocop.yml
文件(~/.rubocop.yml
),然后删除它,这样您就只需要处理项目的.rubocop.yml
文件。vm0i2vca5#
要确保自动更正与ruby-rubocop一起工作,请添加以下设置,并确保“ruby.rubocop.executePath”:“/rubocop/所在的路径”,设置为默认的“ruby.rubocop.executePath”:“",
在vscode中将以下内容添加到json文件中
lhcgjxsq6#
谢天谢地,这条评论现在已经过时了
--不幸的是,当前的rubocop扩展无法实现这一点。主要的用例是在IDE中lint您的ruby并显示可视提示。
这是github上目前尚未解决的问题/功能要求。请检视此问题以查看进度,直到问题解决为止。
https://github.com/misogi/vscode-ruby-rubocop/issues/49
xbp102n07#
我对ruby-rubocop这个扩展很纠结,上次更新是在2021年12月。它似乎还在使用自动更正命令
--autocorrect
,而Rubocop现在使用的是--auto-correct
。我换了另一个扩展ruby-rubocop-revived,它修复了我的自动更正问题。它还引入了
useServer
选项,可加快执行速度。以下是我使用的设置: