require: - rubocop-discourse AllCops: TargetRubyVersion: 2.4 DisabledByDefault: true Exclude: - "db/schema.rb" - "bundle/**/*" - "vendor/**/*" - "node_modules/**/*" - "public/**/*" - "plugins/**/gems/**/*" # Prefer &&/|| over and/or. Style/AndOr: Enabled: true Style/FrozenStringLiteralComment: Enabled: true # Do not use braces for hash literals when they are the last argument of a # method call. Style/BracesAroundHashParameters: Enabled: true # Align `when` with `case`. Layout/CaseIndentation: Enabled: true # Align comments with method definitions. Layout/CommentIndentation: Enabled: true # No extra empty lines. Layout/EmptyLines: Enabled: true # Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }. Style/HashSyntax: Enabled: true # Two spaces, no tabs (for indentation). Layout/IndentationWidth: Enabled: true Layout/SpaceAfterColon: Enabled: true Layout/SpaceAfterComma: Enabled: true Layout/SpaceAroundEqualsInParameterDefault: Enabled: true Layout/SpaceAroundKeyword: Enabled: true Layout/SpaceAroundOperators: Enabled: true Layout/SpaceBeforeFirstArg: Enabled: true # Defining a method with parameters needs parentheses. Style/MethodDefParentheses: Enabled: true # Use `foo {}` not `foo{}`. Layout/SpaceBeforeBlockBraces: Enabled: true # Use `foo { bar }` not `foo {bar}`. Layout/SpaceInsideBlockBraces: Enabled: true # Use `{ a: 1 }` not `{a:1}`. Layout/SpaceInsideHashLiteralBraces: Enabled: true Layout/SpaceInsideParens: Enabled: true # Detect hard tabs, no hard tabs. Layout/Tab: Enabled: true # Blank lines should not have any spaces. Layout/TrailingEmptyLines: Enabled: true # No trailing whitespace. Layout/TrailingWhitespace: Enabled: true Lint/Debugger: Enabled: true Layout/BlockAlignment: 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 # Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg. Lint/RequireParentheses: Enabled: true Lint/ShadowingOuterLocalVariable: Enabled: true Layout/MultilineMethodCallIndentation: Enabled: true EnforcedStyle: indented Layout/HashAlignment: Enabled: true Bundler/OrderedGems: Enabled: false Style/SingleLineMethods: Enabled: true Style/Semicolon: Enabled: true AllowAsExpressionSeparator: true Style/RedundantReturn: Enabled: true DiscourseCops/NoChdir: Enabled: true Exclude: - 'spec/**/*' # Specs are run sequentially, so chdir can be used - 'plugins/*/spec/**/*' DiscourseCops/NoURIEscapeEncode: Enabled: true Exclude: - 'plugins/**/*' Style/GlobalVars: Enabled: true Severity: warning Exclude: - 'lib/tasks/**/*' - 'script/**/*' - 'spec/**/*.rb' - 'plugins/*/spec/**/*'