inherit_from: ./.rubocop_shared.yml # enable all formulae audits FormulaAudit: Enabled: true # enable all formulae strict audits FormulaAuditStrict: Enabled: true # disable all formulae strict audits by default NewFormulaAudit: Enabled: false # make our hashes consistent Layout/AlignHash: EnforcedHashRocketStyle: table EnforcedColonStyle: table # `system` is a special case and aligns on second argument Layout/AlignArguments: Enabled: false # favour parens-less DSL-style arguments Lint/AmbiguousOperator: Enabled: false # this is a bit less "floaty" Layout/CaseIndentation: EnforcedStyle: end # this is a bit less "floaty" Layout/EndAlignment: EnforcedStyleAlignWith: start_of_line # conflicts with DSL-style path concatenation with `/` Layout/SpaceAroundOperators: Enabled: false # Auto-correct is broken (https://github.com/rubocop-hq/rubocop/issues/6258) # and layout is not configurable (https://github.com/rubocop-hq/rubocop/issues/6254). Layout/RescueEnsureAlignment: Enabled: false # favour parens-less DSL-style arguments Lint/AmbiguousBlockAssociation: Enabled: false # so many of these in formulae and can't be autocorrected # TODO: fix these as `ruby -w` complains about them. Lint/AmbiguousRegexpLiteral: Enabled: false # assignment in conditions are useful sometimes # TODO: add parentheses for these and remove Lint/AssignmentInCondition: Enabled: false # we output how to use interpolated strings too often Lint/InterpolationCheck: Enabled: false # so many of these in formulae and can't be autocorrected Lint/ParenthesesAsGroupedExpression: Enabled: false # most metrics don't make sense to apply for formulae/taps Metrics/AbcSize: Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: Enabled: false Metrics/MethodLength: Enabled: false Metrics/ModuleLength: Enabled: false Metrics/PerceivedComplexity: Enabled: false # GitHub diff UI wraps beyond 118 characters (so that's the goal) Metrics/LineLength: Max: 170 # ignore manpage comments and long single-line strings IgnoredPatterns: ['#: ', ' url "', ' mirror "', ' plist_options :'] # our current conditional style is established # TODO: enable this when possible Style/ConditionalAssignment: Enabled: false # most of our APIs are internal so don't require docs Style/Documentation: Enabled: false # don't want this for formulae but re-enabled for Library/Homebrew Style/FrozenStringLiteralComment: Enabled: false # so many of these in formulae and can't be autocorrected Style/GuardClause: Enabled: false # depends_on a: :b looks weird in formulae. Style/HashSyntax: EnforcedStyle: hash_rockets Exclude: - '**/Guardfile' - '**/cmd/**/*.rb' - '**/lib/**/*.rb' - '**/spec/**/*.rb' # ruby style guide favorite Style/StringLiterals: EnforcedStyle: double_quotes # consistency with above Style/StringLiteralsInInterpolation: EnforcedStyle: double_quotes # make things a bit easier to read Style/TernaryParentheses: EnforcedStyle: require_parentheses_when_complex # messes with existing plist/caveats style Style/TrailingBodyOnMethodDefinition: Enabled: false # a bit confusing to non-Rubyists but useful for longer arrays Style/WordArray: MinSize: 4