web-dev-qa-db-ja.com

Rubocop Linelength:コメント付きの行を無視する方法は?

Rails 4アプリを使用して、行が長いかどうかをチェックするときに、Rubocopにコメントのある行(コメントまたは行末コメントのあるコードのみ)を無視させたいです。これを行う方法はありますか?

85
Twiek

行ごとに警官を無視する方法があります。

構成ファイルを介してそれを行う方法もあります。

rubocop --auto-gen-configを実行すると、攻撃を無効にするために使用できるファイルが生成されます。

このコマンドは、これらのオプションを読み込むために何をすべきかについてのヒントも提供します。

回線ごとに、警官を有効または無効にすることもできます。

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

コードで一度に複数のルールを実行することもできます。

# rubocop:disable BlockComments, AsciiComments

インラインディレクティブを使用すると、ディレクティブはその行に対してのみ有効になり、次のようになります。

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

公式マニュアル でRuboCopの詳細を読むことができます。

すべてのルール名を見つけるには、見る価値があります rubocop構成ファイル内

cyberwiz と言う-「ドキュメントを見るのではなく、ルール名が必要なときにrubocop -Dを実行する」 Update:これはフラグなしのデフォルトの動作です。

156
vgoff

rubocop.ymlの特定の行を自動的に無視するように正規表現パターンを定義できるため、#文字で始まるすべての行を無視することを選択できます。

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

これは、「インデントされた」コメント行(つまり、空白文字の後に#文字が続く)も無視するように改善することができます。

ただし、これは、コメント付きのendのコード行を考慮していないことに注意してください。

some_code(that_does_something) # This line would NOT be ignored by Rubocop.
27
GoBusto

ここでの基本的な考え方は、n文字の後であっても、行の長さを強制することだと思います。デフォルトの80文字は、その数の文字のみを保持できる古いターミナルウィンドウのカーゴカルトです。 コード内 で見た唯一のオプションは、文字数制限を超えるURLを許可するオプションです。

ファイル全体を無視する を使用できます。探しているものではないでしょう。

6
phoet

特定のルールを無視するには、rubocopで次のコメントを使用できます。

# rubocop:disable Metrics/LineLength
def this_could_be_a_very_long_line_that_extends_forever_into_infinity
end
# rubocop:enable Metrics/LineLength

.rubocop.ymlに追加することにより、ファイル全体を無視することもできます。

AllCops:
  Exclude:
    - path/to/file.rb
4
Rudolf Olah