sds/slim-lint

View on GitHub
.rubocop.yml

Summary

Maintainability
Test Coverage
inherit_from: .rubocop_todo.yml

# We break this rule to write S-expressions more succinctly.
AllCops:
  NewCops: disable
  SuggestExtensions: false
  TargetRubyVersion: 3.0

Layout/ArrayAlignment:
  Exclude:
    - 'lib/slim_lint/filters/**/*.rb'
    - 'lib/slim_lint/linter/**/*.rb'
    - 'spec/slim_lint/**/*.rb'

Layout/DotPosition:
  EnforcedStyle: leading

Layout/LineLength:
  Max: 100

Layout/MultilineOperationIndentation:
  Enabled: false

Lint/AmbiguousRegexpLiteral:
  Enabled: false

Lint/AssignmentInCondition:
  Enabled: false

Lint/Void:
  Enabled: false

Metrics/BlockLength:
  Exclude:
    - 'spec/**/*.rb'

Metrics/MethodLength:
  Max: 20

Metrics/AbcSize:
  Max: 17

Naming/FileName:
  Exclude:
    - 'bin/slim-lint'
    - 'Gemfile'
    - 'Rakefile'
    - '*.gemspec'

# Renaming `has_something?` to `something?` obfuscates whether it is a "is-a" or
# a "has-a" relationship.
Naming/PredicateName:
  Enabled: false

# Enforcing this results in a lot of unnecessary indentation.
Style/ClassAndModuleChildren:
  Enabled: false

Style/CollectionMethods:
  Enabled: false

Style/Documentation:
  Exclude:
    - 'spec/**/*'
    - 'lib/slim_lint/linter/zwsp.rb'

Style/FormatString:
  Enabled: false

Style/GuardClause:
  Enabled: false

Style/IfUnlessModifier:
  Enabled: false

Style/Lambda:
  Enabled: false

Style/NumericPredicate:
  Enabled: false

# Prefer curly braces except for %i/%w/%W, since those return arrays.
Style/PercentLiteralDelimiters:
  PreferredDelimiters:
    '%': '{}'
    '%i': '[]'
    '%q': '{}'
    '%Q': '{}'
    '%r': '{}'
    '%s': '()'
    '%w': '[]'
    '%W': '[]'
    '%x': '{}'

Style/SignalException:
  Enabled: false

# Forcing a particular name (e.g. |a, e|) for inject methods prevents you from
# choosing intention-revealing names.
Style/SingleLineBlockParams:
  Enabled: false

Style/SpecialGlobalVars:
  Enabled: false

Style/TrivialAccessors:
  Enabled: false

Style/TrailingCommaInArguments:
  Enabled: false

Style/TrailingCommaInArrayLiteral:
  Enabled: false

Style/TrailingCommaInHashLiteral:
  Enabled: false

# Disabling some new rubocop 0.48 cops to avoid distracting clutter in a PR
# (Should be enabled and auto-corrected in a follow-up PR.)
Style/InverseMethods:
  Enabled: false

Style/SymbolArray:
  Enabled: false

Style/MutableConstant:
  Enabled: false