RuboCop: Рядок задовгий ← Як ігнорувати?


82

Я щойно додав RuboCop до проекту rails та встановив пакет 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 і вніс зміни та перезапустив піднесено, але все одно бачу проблему ..
Абрам,

3
Ах, я бачу, де я помилився. Я забув .в .rubocop.ymlмене він працює в даний час спасибі!
Абрам

Я віддаю перевагу варіанту Виключити: перед варіантом Макс: якщо ви віддаєте перевагу вносити зміни в .yml замість локально. Оскільки Max змінює правило глобально, а Exclude дозволяє керувати кількома винятками для сніжинок. Коли їх стає більше кількох, саме тоді я відчуваю, що має відбутися рефакторинг. Якщо рефакторинг не може допомогти, саме тоді я б подумав про редагування параметра 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

З останніми змінами у версії 0.78.0 gem rubocop 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.