inherits_from: - .haml-lint_todo.yml # Whether to ignore frontmatter at the beginning of HAML documents for # frameworks such as Jekyll/Middleman skip_frontmatter: false exclude: - 'vendor/**/*' - 'spec/**/*' - 'ee/spec/**/*' require: - './haml_lint/linter/documentation_links.rb' - './haml_lint/linter/inline_javascript.rb' - './haml_lint/linter/no_plain_nodes.rb' linters: AltText: enabled: true ClassAttributeWithStaticValue: enabled: true ClassesBeforeIds: enabled: false ConsecutiveComments: enabled: false ConsecutiveSilentScripts: enabled: false max_consecutive: 2 DocumentationLinks: enabled: true include: - 'app/views/**/*.haml' - 'ee/app/views/**/*.haml' EmptyObjectReference: enabled: true EmptyScript: enabled: true FinalNewline: enabled: true present: true HtmlAttributes: enabled: true IdNames: enabled: false ImplicitDiv: enabled: true InlineJavaScript: enabled: true InlineStyles: enabled: false InstanceVariables: enabled: false LeadingCommentSpace: enabled: false LineLength: enabled: false max: 80 MultilinePipe: enabled: true MultilineScript: enabled: true ObjectReferenceAttributes: enabled: true RepeatedId: enabled: false RuboCop: enabled: true ignored_cops: # These cops are incredibly noisy when it comes to HAML templates, so we # ignore them. - Layout/BlockAlignment - Layout/HashAlignment - Layout/IndentationConsistency - Layout/IndentationWidth - Layout/LineLength - Layout/TrailingWhitespace - Lint/Void - Naming/FileName - Layout/ElseAlignment - Style/FrozenStringLiteralComment - Style/IfUnlessModifier - Style/Next - Style/SoleNestedConditional - Style/StringLiteralsInInterpolation - Style/WhileUntilModifier - Cop/StaticTranslationDefinition # These cops should eventually get enabled # haml-lint force enables these: https://github.com/sds/haml-lint/blob/v0.51.0/config/forced_rubocop_config.yml - Layout/ArgumentAlignment - Layout/ArrayAlignment - Layout/EndAlignment - Cop/LineBreakAfterGuardClauses - Cop/LineBreakAroundConditionalBlock - Cop/ProjectPathHelper - Gitlab/FeatureAvailableUsage - Gitlab/Json - GitlabSecurity/PublicSend - Layout/FirstHashElementIndentation - Layout/EmptyLineAfterGuardClause - Layout/EmptyLines - Layout/EmptyLinesAroundBlockBody - Layout/ExtraSpacing - Layout/InitialIndentation - Layout/LeadingCommentSpace - Layout/MultilineHashBraceLayout - Layout/SpaceAroundOperators - Layout/SpaceBeforeComma - Layout/SpaceBeforeFirstArg - Layout/SpaceInsideHashLiteralBraces - Layout/SpaceInsideStringInterpolation - Layout/TrailingEmptyLines - Lint/AmbiguousOperatorPrecedence - Lint/AssignmentInCondition - Lint/LiteralInInterpolation - Lint/ParenthesesAsGroupedExpression - Lint/RedundantStringCoercion - Lint/SafeNavigationConsistency - Lint/SymbolConversion - Lint/UnusedBlockArgument - Metrics/BlockNesting - Naming/VariableName - Performance/RedundantMatch - Performance/StringReplacement - Rails/LinkToBlank - Rails/OutputSafety - Rails/RequestReferer - Style/ColonMethodCall - Style/ConditionalAssignment - Style/FormatString - Style/HashSyntax - Style/IdenticalConditionalBranches - Style/IfInsideElse - Style/InlineDisableAnnotation - Style/MultilineTernaryOperator - Style/NegatedIf - Style/NestedTernaryOperator - Style/RedundantInterpolation - Style/SelfAssignment - Style/StringConcatenation - Style/TernaryParentheses - Style/TrailingCommaInHashLiteral - Style/UnlessElse - Style/WordArray - Style/ZeroLengthPredicate # WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/207950 - Cop/UserAdmin # See https://gitlab.com/groups/gitlab-org/-/epics/7374. # This should eventually be enabled - Gitlab/AvoidGitlabInstanceChecks RubyComments: enabled: true SpaceBeforeScript: enabled: true SpaceInsideHashAttributes: enabled: true style: space Syntax: enabled: true Indentation: enabled: true character: space # or tab TagName: enabled: true TrailingEmptyLines: enabled: false TrailingWhitespace: enabled: true UnnecessaryInterpolation: enabled: true UnnecessaryStringOutput: enabled: true ViewLength: enabled: false