Rubocop 缩进配置
Rubocop indentation configuration
我希望 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
哪个更好,但仍然不是我想要的。
您可以在 .rubocop.yml
文件中使用选项 Layout/MultilineMethodCallIndentation
以在第一个示例中为多行表达式强制使用不同的样式。
对于您的第二个示例,您可以配置 Layout/MultilineAssignmentLayout
and Layout/EndAlignment
。
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineAssignmentLayout:
EnforcedStyle: same_line
Layout/EndAlignment:
EnforcedStyleAlignWith: variable
我希望 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
哪个更好,但仍然不是我想要的。
您可以在 .rubocop.yml
文件中使用选项 Layout/MultilineMethodCallIndentation
以在第一个示例中为多行表达式强制使用不同的样式。
对于您的第二个示例,您可以配置 Layout/MultilineAssignmentLayout
and Layout/EndAlignment
。
Layout/MultilineMethodCallIndentation:
EnforcedStyle: indented
Layout/MultilineAssignmentLayout:
EnforcedStyle: same_line
Layout/EndAlignment:
EnforcedStyleAlignWith: variable