What is forcing private and protected blocks to be indented?
#14106
-
|
Given this config, which is the default Rails one with a few tweaks (but being used with a Hanami app, if that makes a difference): rubocop.ymlGemspec:
Enabled: false
Bundler:
Enabled: false
Layout:
Enabled: false
Lint:
Enabled: false
Metrics:
Enabled: false
Naming:
Enabled: false
Security:
Enabled: false
Style:
Enabled: false
AllCops:
DisplayCopNames: true
DisplayStyleGuide: true
ExtraDetails: true
TargetRubyVersion: 3.3
NewCops: enable
SuggestExtensions: false
Include:
- app/**/*.rb
- config/*.rb
- config/**/*.rb
- lib/**/*.rb
- lib/tasks/*.rake
- spec/*.rb
- spec/**/*.rb
# Align `when` with `end`.
Layout/CaseIndentation:
Enabled: true
EnforcedStyle: end
# Align comments with method definitions.
Layout/CommentIndentation:
Enabled: true
Layout/ElseAlignment:
Enabled: true
Layout/EmptyLineAfterMagicComment:
Enabled: true
Layout/EmptyLinesAroundBlockBody:
Enabled: true
# In a regular class definition, no empty lines around the body.
Layout/EmptyLinesAroundClassBody:
Enabled: true
# In a regular method definition, no empty lines around the body.
Layout/EmptyLinesAroundMethodBody:
Enabled: true
# In a regular module definition, no empty lines around the body.
Layout/EmptyLinesAroundModuleBody:
Enabled: true
# Align `end` with the matching keyword or starting expression except for
# assignments, where it should be aligned with the LHS.
Layout/EndAlignment:
Enabled: true
EnforcedStyleAlignWith: variable
# Method definitions after `private` or `protected` isolated calls need one
# extra level of indentation.
#
# We break this rule in context, though, e.g. for private-only concerns,
# so we leave it disabled.
Layout/IndentationConsistency:
Enabled: false
EnforcedStyle: indented_internal_methods
# Detect hard tabs, no hard tabs.
Layout/IndentationStyle:
Enabled: true
Layout/IndentationWidth:
Enabled: true
Width: 2
Layout/LeadingCommentSpace:
Enabled: true
Layout/SpaceAfterColon:
Enabled: true
Layout/SpaceAfterComma:
Enabled: true
Layout/SpaceAroundEqualsInParameterDefault:
Enabled: true
Layout/SpaceAroundKeyword:
Enabled: true
# Use `foo {}` not `foo{}`.
Layout/SpaceBeforeBlockBraces:
Enabled: true
Layout/SpaceBeforeComma:
Enabled: true
Layout/SpaceBeforeFirstArg:
Enabled: true
# Use `->(x, y) { x + y }` not `-> (x, y) { x + y }`
Layout/SpaceInLambdaLiteral:
Enabled: true
# Use `[ a, [ b, c ] ]` not `[a, [b, c]]`
# Use `[]` not `[ ]`
Layout/SpaceInsideArrayLiteralBrackets:
Enabled: true
EnforcedStyle: no_space
EnforcedStyleForEmptyBrackets: no_space
# Use `%w[ a b ]` not `%w[ a b ]`.
Layout/SpaceInsideArrayPercentLiteral:
Enabled: true
# Use `foo { bar }` not `foo {bar}`.
# Use `foo { }` not `foo {}`.
Layout/SpaceInsideBlockBraces:
Enabled: true
EnforcedStyleForEmptyBraces: space
# Use `{ a: 1 }` not `{a:1}`.
# Use `{}` not `{ }`.
Layout/SpaceInsideHashLiteralBraces:
Enabled: true
EnforcedStyle: space
EnforcedStyleForEmptyBraces: no_space
# Use `foo(bar)` not `foo( bar )`
Layout/SpaceInsideParens:
Enabled: true
# Requiring a space is not yet supported as of 0.59.2
# Use `%w[ foo ]` not `%w[foo]`
Layout/SpaceInsidePercentLiteralDelimiters:
Enabled: false
#EnforcedStyle: space
# Use `hash[:key]` not `hash[ :key ]`
Layout/SpaceInsideReferenceBrackets:
Enabled: true
# Blank lines should not have any spaces.
Layout/TrailingEmptyLines:
Enabled: true
# No trailing whitespace.
Layout/TrailingWhitespace:
Enabled: true
Lint/RedundantStringCoercion:
Enabled: true
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
Lint/RequireParentheses:
Enabled: true
Lint/UriEscapeUnescape:
Enabled: true
# We generally prefer &&/|| but like low-precedence and/or in context
Style/AndOr:
Enabled: false
# Prefer Foo.method over Foo::method
Style/ColonMethodCall:
Enabled: true
Style/DefWithParentheses:
Enabled: true
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
Style/HashSyntax:
Enabled: true
EnforcedShorthandSyntax: either
# Defining a method with parameters needs parentheses.
Style/MethodDefParentheses:
Enabled: true
Style/ParenthesesAroundCondition:
Enabled: true
Style/PercentLiteralDelimiters:
Enabled: true
PreferredDelimiters:
default: "()"
"%i": "[]"
"%I": "[]"
"%r": "{}"
"%w": "[]"
"%W": "[]"
# Use quotes for string literals when they are enough.
Style/RedundantPercentQ:
Enabled: false
Style/RedundantReturn:
Enabled: true
AllowMultipleReturnValues: true
Style/Semicolon:
Enabled: true
AllowAsExpressionSeparator: true
Style/StabbyLambdaParentheses:
Enabled: true
# Use `"foo"` not `'foo'` unless escaping is required
Style/StringLiterals:
Enabled: true
EnforcedStyle: double_quotes
Include:
- "app/**/*"
- "config/**/*"
- "lib/**/*"
- "db/migrate/*.rb"
- "spec/**/*"
- "Gemfile"
Style/TrailingCommaInArguments:
Enabled: true
EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInArrayLiteral:
Enabled: true
EnforcedStyleForMultiline: consistent_comma
Style/TrailingCommaInHashLiteral:
Enabled: true
EnforcedStyleForMultiline: consistent_commait enforces this layout: # frozen_string_literal: true
class Foo
def foobar
"foo #{bar}"
end
private
def bar
"bar"
end
endWhat I'm looking to have enforced is this: # frozen_string_literal: true
class Foo
def foobar
"foo #{bar}"
end
private
def bar
"bar"
end
endWhat is causing the I'm really tempted to work around the entire thing by setting the enforced style for Style/AccessModifierDeclarations to "inline" 😁 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
|
Looks like you have Layout/IndentationConsistency set with |
Beta Was this translation helpful? Give feedback.
Looks like you have Layout/IndentationConsistency set with
EnforcedStylewithindented_internal_methods.