Odpowiedzi:
Istnieje sposób na ignorowanie gliniarzy na podstawie linii.
Jest też sposób na zrobienie tego poprzez plik konfiguracyjny.
Uruchom, rubocop --auto-gen-config
a wygeneruje plik, którego możesz użyć do wyłączenia przestępstw.
Polecenie daje również wskazówkę, co zrobić, aby załadować te opcje.
Dla każdego wiersza możesz także włączać i wyłączać gliniarzy.
# rubocop:disable RuleByName
This is a long line
# rubocop:enable RuleByName
Możesz także zastosować więcej niż jedną regułę naraz w swoim kodzie.
# rubocop:disable BlockComments, AsciiComments
Używając dyrektywy inline, staje się ona ważna tylko dla tego wiersza i wyglądałoby to tak:
# Thanks to @jnt30 for the comment!
method(argument) # rubocop:disable SomeRule, SomeOtherRule
Możesz przeczytać mnóstwo więcej o RuboCop w jego oficjalnej instrukcji .
Aby znaleźć wszystkie nazwy reguł, warto zajrzeć do plików konfiguracyjnych rubocop
Cyberwiz mówi - „uruchom, rubocop -D
kiedy potrzebuję nazw reguł, zamiast szukać w dokumentacji”. Aktualizacja : jest to teraz domyślne zachowanie bez flagi.
#!/bin/env ruby
wiersz komentarza jest komentarzem, ale jest kodem i jest semantycznie ważny. Komentarze nie zawsze są tylko „komentarzami”.
Możliwe jest zdefiniowanie wzorców wyrażeń regularnych, aby automatycznie ignorować określone wiersze rubocop.yml
, więc możesz wybrać ignorowanie wszystkich wierszy zaczynających się od #
znaku:
Metrics/LineLength:
Max: 80
IgnoredPatterns: ['\A#']
Można to ulepszyć tak, aby "wcięte" wiersze komentarza (tj. Białe znaki, po których następuje #
znak) były również ignorowane, jeśli tego chcesz.
Zwróć uwagę, że nie uwzględnia to linii kodu kończących się komentarzem:
some_code(that_does_something) # This line would NOT be ignored by Rubocop.
IgnorePatterns: ['(\A|\s)#']
IgnoredPatterns
zamiast tego powinno być IgnorePatterns
(brakuje litery „d”).
Możesz użyć następującego komentarza z rubocopem, aby zignorować określoną regułę:
# rubocop:disable Metrics/LineLength
def this_could_be_a_very_long_line_that_extends_forever_into_infinity
end
# rubocop:enable Metrics/LineLength
Możesz także zignorować całe pliki, dodając je do .rubocop.yml
:
AllCops:
Exclude:
- path/to/file.rb
Myślę, że podstawową ideą jest to, że chcesz wymusić długość linii, bez względu na to, co jest po n znakach. Domyślnie 80 znaków jest kultowym ładunkiem dla starych okien terminali, które mogły przechowywać tylko taką liczbę znaków. jedyną opcją, jaką widziałem w kodzie, jest opcja zezwalająca na adresy URL, które mogą przekraczać limit znaków.
możesz zignorować całe pliki , myślę, że nie tego szukasz.