Korzystając z aplikacji Rails 4, chciałbym, aby Rubocop ignorował wiersze z komentarzami (tylko komentarz lub jakiś kod z komentarzem na końcu wiersza) podczas sprawdzania, czy linia jest za długa. Czy jest na to sposób?
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: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:
źródło
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łę:
Możesz także zignorować całe pliki, dodając je do
.rubocop.yml
:źródło
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.
źródło