2014-10-13 6 views

Antwort

4

Ich denke, die Grundidee hier ist, dass Sie die Zeilenlänge erzwingen wollen, egal was nach n Zeichen ist. Der Standard auf 80 Zeichen ist ein Cargo-Kult für alte Terminalfenster, die nur diese Anzahl von Zeichen enthalten konnten. Die einzige Option, die ich sah in the code ist eine Option, um URLs zu erlauben, die die Zeichengrenze überschreiten könnten.

können Sie ignore whole files, ich denke, das ist nicht das, was Sie suchen.

+4

diesen Tagen ist die Idee, die hinter 80 Zeichen ist nicht so sehr „Cargo-Kult“ für die Terminal, es gibt immer noch einen logischen Grund dafür: Jeder kann seinen Editor oder seine IDE-Fenster beliebig teilen, und solange sie nur mehr als 80 Zeichen haben, müssen sie weder die Breite noch das Wrapping ändern. –

+2

IMO Wenn Sie keine IDE haben, die weiches Wrapping unterstützt, sind Ihre Werkzeuge nicht auf dem neuesten Stand. – phoet

+6

80 Zeichen ist auch ziemlich lesbar, während 40 oder 200 ist weniger so, so ist es auch eine Usability-Sache –

98

Es gibt eine Möglichkeit, Polizisten pro Zeile zu ignorieren.

Es gibt auch eine Möglichkeit, es über die Konfigurationsdatei zu tun.

Führen Sie rubocop --auto-gen-config und es wird eine Datei generieren, mit der Sie die Straftaten deaktivieren können.

Der Befehl gibt auch einen Hinweis darauf, was zu tun ist, um diese Optionen zu laden.

Auf Zeilenbasis können Sie die Cops auch aktivieren und deaktivieren.

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

Sie können auch mehr als eine Regel gleichzeitig in Ihrem Code ausführen.

# rubocop:disable BlockComments, AsciiComments 

Durch eine Inline-Direktive, wird die Richtlinie für die Linie nur gültig, und es würde wie folgt aussehen:

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

Sie eine Tonne mehr über RuboCop in seiner official manual lesen kann.

Um alle Regelnamen ihren Wert suchen in the rubocop config files

cyberwiz sagt zu finden - „laufen rubocop -D, wenn ich die Regelnamen müssen nicht in der Dokumentation suchen“

+4

so mehr Kommentare um Kommentare \ o/aber es wird die Arbeit erledigt bekommen – phoet

+1

Nun, die Kommentare können die Abweichung von einem Stil erklären, der von der Mannschaft akzeptiert wurde, also ist das keine schlechte Sache, oder? Andernfalls platzieren Sie es in der Datei rubocop.yml, und dann ist es keine akzeptierte Stilausnahme und es ist kein Kommentar erforderlich. Der Kommentar sagt "Ich wollte das machen!". Keine schlechte Sache. – vgoff

+1

Kommentare sind kein Code, also ist die Überprüfung semantisch anders und IMO rubocop sollte es so behandeln. – phoet

10

Es ist möglich, regex Muster zu definieren, um automatisch zu ignorieren bestimmte Linien in rubocop.yml, so dass Sie alle Zeilen beginnend mit einem # Zeichen zu ignorieren wählen könnten:

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

Dies verbessert werden könnte, so dass „gegliederte“ Kommentarzeilen (Whitespace gefolgt von einem # Zeichen) werden ebenfalls ignoriert, wenn Sie das möchten.

Beachten Sie, dass dies nicht berücksichtigt Codezeilen, die Ende mit einem Kommentar, aber:

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

Alle Einstellungen: https://github.com/bbatsov/rubocop/blob/master/config/default.yml – hlcs

+2

Sie können diese Regexp um Zeilen erweitern, die Whitespaces enthalten können: 'IgnorePatterns: ['(\ A | \ s) # '] ' – poustovitss

+0

** Danke ** @poustovitss. Es gibt einen Tippfehler: Es sollte "IgnoredPatterns" statt "IgnorePatterns" sein (es fehlt der Buchstabe "d"). – Horacio

Verwandte Themen