2014-10-13 17 views

risposta

4

Penso che l'idea di base qui sia che si vuole applicare la lunghezza della linea, indipendentemente da cosa sia dopo n caratteri. il valore predefinito di 80 caratteri è un certo carico di traffico per le vecchie finestre di terminale che potevano contenere solo quel numero di caratteri. l'unica opzione che ho visto in the code è un'opzione per consentire URL che potrebbero superare il limite di caratteri.

è possibile ignore whole files, credo che non è quello che stai cercando.

+4

In questi giorni, l'idea alla base di 80 caratteri non è tanto "cargo cult" per il terminale, c'è ancora un motivo logico per farlo: chiunque può dividere il proprio editor o le finestre IDE come vogliono, e purché siano solo più larghe di 80 caratteri, non avranno bisogno di cambiare la larghezza o l'esperienza di avvolgimento. –

+2

IMO se non si dispone di un IDE che supporta il softwrap, gli strumenti non sono aggiornati. – phoet

+6

80 caratteri è anche abbastanza leggibile, mentre 40 o 200 è meno, quindi è anche una cosa usabilità –

98

C'è un modo per ignorare i poliziotti su base per riga.

C'è anche un modo per farlo tramite il file di configurazione.

Eseguire rubocop --auto-gen-config e genererà un file che è possibile utilizzare per disattivare le infrazioni.

Il comando fornisce anche un suggerimento su cosa fare per caricare tali opzioni.

Su una linea per riga, è possibile abilitare e disabilitare anche i poliziotti.

# rubocop:disable RuleByName 
This is a long line 
# rubocop:enable RuleByName 

È inoltre possibile eseguire più di una regola alla volta nel codice.

# rubocop:disable BlockComments, AsciiComments 

Utilizzando una direttiva in linea, la direttiva diventa valida solo per quella linea , e sarebbe simile a questa:

# Thanks to @jnt30 for the comment! 
method(argument) # rubocop:disable SomeRule, SomeOtherRule 

Si può leggere una tonnellata di più su RuboCop nella sua official manual.

per trovare tutti i nomi delle regole il suo valore cercando in the rubocop config files

cyberwiz dice - "gestito rubocop -D quando ho bisogno i nomi delle regole piuttosto che guardare nella documentazione"

+4

quindi più commenti intorno ai commenti \ o/ma otterrà il lavoro finito – phoet

+1

Bene, i commenti possono spiegare la deviazione da uno stile che è stato accettato dalla squadra, quindi questa non è una brutta cosa, giusto? Altrimenti lo si inserisce nel file rubocop.yml e quindi non si tratta di un'eccezione di stile accettata e non è necessario un commento. Il commento dice "intendevo farlo!". Non è affatto male. I commenti – vgoff

+1

non sono codice, quindi il loro controllo è semanticamente diverso e IMO rubocop dovrebbe trattarlo in questo modo. – phoet

10

E 'possibile definire modelli regex di ignorare automaticamente alcune linee in rubocop.yml, così si potrebbe scegliere di ignorare tutte le linee che iniziano con un carattere #:

Metrics/LineLength: 
    Max: 80 
    IgnoredPatterns: ['\A#'] 

Questo potrebbe essere migliorato in modo che "frastagliate" righe di commento (cioè spazi bianchi seguiti da un carattere #) vengono anche ignorati, se questo è quello che vuoi.

Si noti che questo non tiene conto di righe di codice che finali con un commento, però:

some_code(that_does_something) # This line would NOT be ignored by Rubocop. 
+1

Tutte le impostazioni: https://github.com/bbatsov/rubocop/blob/master/config/default.yml – hlcs

+2

È possibile espandere l'espressione regolare includendo le righe che possono avere spazi bianchi: 'IgnorePatterns: ['(\ A | \ s) # '] ' – poustovitss

+0

** Grazie ** @poustovitss. C'è un refuso: dovrebbe essere 'IgnoredPatterns' invece 'IgnorePatterns' (manca la lettera' d '). – Horacio

Problemi correlati