RuboCop: Строка слишком длинная ← Как игнорировать?


82

Я просто добавил RuboCop в проект рельсов и установил пакет Sublime, чтобы увидеть предложения RuboCop в редакторе. Я пытаюсь понять, как изменить максимальную длину строки с 80 символов или полностью игнорировать правило.

В настоящее время используется:

Ответы:


121

В своем коде вы можете отключить кучу таких строк:

# rubocop:disable LineLength
puts "This line is lonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnng"
# rubocop:enable LineLength

Или добавьте это в свой .rubocop.ymlфайл, чтобы увеличить максимальную длину:

Metrics/LineLength:
  Max: 100

Куда мне это поставить?
Абрам

1
Итак, я скопировал этот файл github.com/bbatsov/rubocop/blob/master/config/default.yml, внес изменения и перезапустил Sublime, но все еще вижу проблему ..
Абрам

3
Ах, я вижу, где я ошибся. Я забыл .в .rubocop.ymlменя он работает в настоящее время спасибо!
Абрам

Я предпочитаю параметр Exclude :, а не параметр Max :, если вы предпочитаете вносить изменения в .yml, а не локально. Поскольку Макс меняет правило глобально, а Исключение позволяет управлять несколькими исключениями снежинок. Когда их становится больше, чем несколько, я чувствую, что нужно провести рефакторинг. Если рефакторинг не может помочь, тогда я бы подумал об изменении параметра Max :.
SMAG

66

Создавая .rubocop.ymlфайл (следите за инициалом .в имени файла) в корне вашего проекта, у вас будет множество вариантов (проверьте комментарии, какая версия Rubocop, используемая в качестве способа обработки LineLength, изменилась ):

Metrics/LineLength: # for Rubocop < 0.78.0
Layout/LineLength: # for Rubocop >= 0.78.0
  # This will disable the rule completely, regardless what other options you put
  Enabled: false
  # Change the default 80 chars limit value
  Max: 120
  # If you want the rule only apply to a specific folder/file
  Include:
    - 'app/**/*'
  # If you want the rule not to apply to a specific folder/file
  Exclude:
    - 'db/schema.rb'

3

С последними изменениями в rubocop gem версии 0.78.0 от 18-12-2019, теперь сотрудник LineLength переходит из отдела метрик в отдел верстки. Так что в основном, если кому-то нужно отключить длинные строки с использованием номера версии выше 0.78.0, следует сделать это так.

# rubocop:disable Layout/LineLength
  "I'm a really long line"
# rubocop:enable Layout/LineLength

Также на .rubocop.ymlэто изменена конфигурация.

Layout/LineLength:
  Max: 100

Чтобы получить доступ к журналам изменений rubocop, щелкните здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.