跟随https://github.com/rubyide/vscode-ruby#linters并安装了所有宝石,并像这样编辑了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上,代码突出显示工作正常 *只需注意,您会看到已安装的扩展程序,以及问题选项卡中的警告。
我受到vscode-ruby
和rubocop
会自动纠正文件保存上的缩进和警察规则的压缩,但显然它没有。
如果我希望它像prettier
那样格式化我的代码,我应该如何设置它?
答案 0 :(得分:3)
现在,添加这些行就足够了:
{
"ruby.rubocop.onSave": true,
"editor.formatOnSave": true,
}
答案 1 :(得分:1)
不幸的是,目前的rubocop扩展无法做到这一点。主要用例是在你的红宝石上lint并在IDE中显示视觉提示。
它目前是github上的一个开放问题/功能请求。查看此问题以查看进度,直至解决。
答案 2 :(得分:1)
为确保自动校正适用于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",
答案 3 :(得分:0)
在vscode-ruby-rubocop GitHub上,按this comment,您可以使用以下设置:
{
"editor.formatOnSave": true,
"editor.formatOnSaveTimeout": 5000,
"ruby.rubocop.executePath": "path/where/rubocop/is/located",
"ruby.format": "rubocop",
}
只需将它们应用到我在本地机器上的用户设置中,它似乎可以正常工作。 VS Code对我的ruby.rubocop.executePath
设置抛出了一个错误,说它不可执行,并且删除该行似乎并不导致该错误显示,并且仍相应地格式化了我的代码。设置较低的超时时间(我尝试设置为2500)似乎也会破坏保存时的自动格式,因此建议将其设置为5000。