ruby - Rubocop 缩进配置
问题描述
我希望 rubocop 总是只缩进一次。另外, elsif 和 end 根本不应该缩进。所以是这样的:
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| font['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
应该是这样的:
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| font['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
和这个:
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
应该是这样的:
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
我尝试了很多不同的配置选项,但我从来没有让它正常工作。
我试过了:
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
产生:
@shop = api
.shop('de')['storefronts']
.find_all do |front|
front['name'] == 'WeeklyStorefront' ||
front['name'] == 'DailyStorefront'
end
.map { |front| front['catalogEntries'] }
.flatten
.map { |item| item['devName'] }
和
mode = if key.include? '_p2'
'Solo'
elsif key.include? '_p10'
'Duo'
else
'Squad'
end
这更好,但仍然不是我想要的。
解决方案
您可以使用文件中的选项Layout/MultilineMethodCallIndentation
在.rubocop.yml
第一个示例中为多行表达式强制执行不同的样式。
对于第二个示例,您可以配置Layout/MultilineAssignmentLayout
和Layout/EndAlignment
.
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineAssignmentLayout:
EnforcedStyle: same_line
Layout/EndAlignment:
EnforcedStyleAlignWith: variable
推荐阅读
- php - 如何循环 + 7 天并根据该循环显示数据
- c# - 读取 DataGridView 时崩溃
- c++ - 案例标签值已经出现错误
- python-3.x - 我想在列表中添加“100”所以使用附加方法
- java - 有人可以解释构造函数吗?
- python - BERT 在 colab 上使用 TPU 上的 Estimator 进行微调 TypeError: *=: 'NoneType' 和 'int' 的不支持的操作数类型
- r - geom_path 在 gganimate 中淡出
- google-cloud-platform - 将 GCP 连接器与无服务器框架一起使用
- javascript - 我无法正确地将用户输入添加到状态,当它出现时,地图不是函数错误
- excel - 修改 VBA 以便将表格转移到新工作表也进行格式设置