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

что лучше, но все же не то, что я хотел.

1 ответ

Решение

Вы можете использовать опцию Layout/MultilineMethodCallIndentation в вашем .rubocop.yml файл для применения другого стиля для многострочных выражений в первом примере.

Для вашего второго примера вы можете настроить Layout/MultilineAssignmentLayout а также Layout/EndAlignment,

Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented

Layout/MultilineAssignmentLayout:
  EnforcedStyle: same_line

Layout/EndAlignment:
  EnforcedStyleAlignWith: variable
Другие вопросы по тегам