---

require:
  - rubocop-performance
  - ./rubocop/jekyll

Jekyll/NoPutsAllowed:
  Exclude:
    - rake/*.rake

AllCops:
  TargetRubyVersion: 2.4
  Include:
    - lib/**/*.rb
    - test/**/*.rb
  Exclude:
    - bin/**/*
    - exe/**/*
    - benchmark/**/*
    - script/**/*
    - vendor/**/*
    - tmp/**/*
Layout/AlignHash:
  EnforcedHashRocketStyle: table
Layout/IndentationWidth:
  Severity: error
Layout/IndentFirstArrayElement:
  EnforcedStyle: consistent
Layout/IndentFirstHashElement:
  EnforcedStyle: consistent
Layout/MultilineMethodCallIndentation:
  EnforcedStyle: indented
Layout/MultilineOperationIndentation:
  EnforcedStyle: indented
Lint/NestedPercentLiteral:
  Exclude:
    - test/test_site.rb
Layout/EmptyComment:
  Enabled: false
Layout/EndAlignment:
  Severity: error
Lint/UnreachableCode:
  Severity: error
Lint/Void:
  Exclude:
    - lib/jekyll/site.rb
Metrics/AbcSize:
  Max: 21
Metrics/BlockLength:
  Exclude:
    - test/**/*.rb
    - lib/jekyll/configuration.rb
    - rake/*.rake
Metrics/ClassLength:
  Exclude:
    - !ruby/regexp /features\/.*.rb$/
    - !ruby/regexp /test\/.*.rb$/
    - lib/jekyll/document.rb
    - lib/jekyll/site.rb
    - lib/jekyll/commands/serve.rb
    - lib/jekyll/configuration.rb
  Max: 240
Metrics/CyclomaticComplexity:
  Exclude:
    - lib/jekyll/utils.rb
    - lib/jekyll/commands/serve.rb
Metrics/LineLength:
  Exclude:
    - !ruby/regexp /features\/.*.rb/
    - Rakefile
    - rake/*.rake
    - Gemfile
  Max: 100
  Severity: warning
Metrics/MethodLength:
  CountComments: false
  Max: 20
  Severity: error
Metrics/ModuleLength:
  Max: 240
Metrics/ParameterLists:
  Max: 4
Metrics/PerceivedComplexity:
  Max: 8
Naming/FileName:
  Enabled: false
Naming/HeredocDelimiterNaming:
  Exclude:
    - test/**/*.rb
Naming/MemoizedInstanceVariableName:
  Exclude:
    - lib/jekyll/convertible.rb
    - lib/jekyll/drops/site_drop.rb
    - lib/jekyll/drops/unified_payload_drop.rb
    - lib/jekyll/page_without_a_file.rb
Security/MarshalLoad:
  Exclude:
    - !ruby/regexp /test\/.*.rb$/
    - lib/jekyll/regenerator.rb
Security/YAMLLoad:
  Exclude:
    - !ruby/regexp /features\/.*.rb/
    - !ruby/regexp /test\/.*.rb$/
Style/AccessModifierDeclarations:
  Enabled: false
Style/Alias:
  EnforcedStyle: prefer_alias_method
Style/AndOr:
  Severity: error
Style/ClassAndModuleChildren:
  Exclude:
    - test/**/*.rb
Style/FrozenStringLiteralComment:
  EnforcedStyle: always
Style/Documentation:
  Enabled: false
Style/DoubleNegation:
  Enabled: false
Style/FormatStringToken:
  Exclude:
    - lib/jekyll/utils/ansi.rb
Style/GuardClause:
  Enabled: false
Style/HashSyntax:
  EnforcedStyle: hash_rockets
  Severity: error
Style/MixinUsage:
  Exclude:
    - test/helper.rb
Style/ModuleFunction:
  Enabled: false
Style/MultilineTernaryOperator:
  Severity: error
Style/PercentLiteralDelimiters:
  PreferredDelimiters:
    "%q": "{}"
    "%Q": "{}"
    "%r": "!!"
    "%s": "()"
    "%w": "()"
    "%W": "()"
    "%x": "()"
Style/RegexpLiteral:
  EnforcedStyle: percent_r
Style/RescueModifier:
  Enabled: false
Style/SafeNavigation:
  Exclude:
    - lib/jekyll/document.rb
Style/SignalException:
  EnforcedStyle: only_raise
Style/StringLiterals:
  EnforcedStyle: double_quotes
Style/StringLiteralsInInterpolation:
  EnforcedStyle: double_quotes
Style/SymbolArray:
  EnforcedStyle: brackets
Style/TrailingCommaInArrayLiteral:
  EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInHashLiteral:
  EnforcedStyleForMultiline: consistent_comma
