Classes should be listed before IDs (.btn should precede #post-edit-button) Open
%button#post-edit-button.btn.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-bs-toggle" => "dropdown", :type => "button"} Actions
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/ClassesBeforeIds
Whether classes or ID attributes should be listed first in tags.
EnforcedStyle: 'class' (default)
Bad: ID before class
haml
%tag#id.class
Good
haml
%tag.class#id
These attributes should be listed in order of their specificity. Since the tag name (if specified) always comes first and has the lowest specificity, classes and then IDs should follow.
EnforcedStyle: 'id'
Bad: Class before ID
haml
%tag.class#id
Good
haml
%tag#id.class
As IDs are more significant than classes to the element they represent, IDs should be listed first and then classes should follow. This gives a more consistent vertical alignment of IDs.
Files should end with a trailing newline Open
= delete_icon
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/FinalNewline
Files should always have a final newline. This results in better diffs when
adding lines to the file, since SCM systems such as git
won't think that you
touched the last line if you append to the end of a file.
You can customize whether or not a final newline exists with the present
option.
Configuration Option | Description |
---|---|
present |
Whether a final newline should be present (default true ) |
Hash attribute should end with one space before the closing brace Open
%button#post-edit-button.btn.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-bs-toggle" => "dropdown", :type => "button"} Actions
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/SpaceInsideHashAttributes
Check the style of hash attributes against one of two possible preferred
styles, space
(default) or no_space
:
Bad: inconsistent spacing inside hash attributes braces
haml
%tag{ foo: bar}
%tag{foo: bar }
%tag{ foo: bar }
With default space
style option: require a single space inside
hash attributes braces
haml
%tag{ foo: bar }
With no_space
style option: require no space inside
hash attributes braces
haml
%tag{foo: bar}
This offers the ability to ensure consistency of Haml hash attributes style with ruby hash literal style (compare with the Style/SpaceInsideHashLiteralBraces cop in Rubocop).
Line is too long. [162/120] Open
%button#post-edit-button.btn.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-bs-toggle" => "dropdown", :type => "button"} Actions
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/LineLength
Option | Description |
---|---|
max |
Maximum number of columns a single line can have. (default 80 ) |
Wrap lines at 80 characters. You can configure this amount via the max
option on the linter, e.g. by adding the following to your .haml-lint.yml
:
linters:
LineLength:
max: 100
Long lines are harder to read and usually indicative of complexity. You can avoid them by splitting long attribute hashes on a comma, for example:
%tag{ attr1: 1,
attr2: 2,
attr3: 3 }
This significantly improves readability.
Hash attribute should start with one space after the opening brace Open
%button#post-edit-button.btn.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-bs-toggle" => "dropdown", :type => "button"} Actions
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/SpaceInsideHashAttributes
Check the style of hash attributes against one of two possible preferred
styles, space
(default) or no_space
:
Bad: inconsistent spacing inside hash attributes braces
haml
%tag{ foo: bar}
%tag{foo: bar }
%tag{ foo: bar }
With default space
style option: require a single space inside
hash attributes braces
haml
%tag{ foo: bar }
With no_space
style option: require no space inside
hash attributes braces
haml
%tag{foo: bar}
This offers the ability to ensure consistency of Haml hash attributes style with ruby hash literal style (compare with the Style/SpaceInsideHashLiteralBraces cop in Rubocop).
Hash attribute should start with one space after the opening brace Open
.dropdown-menu.dropdown-menu-xs{"aria-labelledby" => "post-edit-button"}
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/SpaceInsideHashAttributes
Check the style of hash attributes against one of two possible preferred
styles, space
(default) or no_space
:
Bad: inconsistent spacing inside hash attributes braces
haml
%tag{ foo: bar}
%tag{foo: bar }
%tag{ foo: bar }
With default space
style option: require a single space inside
hash attributes braces
haml
%tag{ foo: bar }
With no_space
style option: require no space inside
hash attributes braces
haml
%tag{foo: bar}
This offers the ability to ensure consistency of Haml hash attributes style with ruby hash literal style (compare with the Style/SpaceInsideHashLiteralBraces cop in Rubocop).
Hash attribute should end with one space before the closing brace Open
.dropdown-menu.dropdown-menu-xs{"aria-labelledby" => "post-edit-button"}
- Read upRead up
- Create a ticketCreate a ticket
- Exclude checks
HamlLint/SpaceInsideHashAttributes
Check the style of hash attributes against one of two possible preferred
styles, space
(default) or no_space
:
Bad: inconsistent spacing inside hash attributes braces
haml
%tag{ foo: bar}
%tag{foo: bar }
%tag{ foo: bar }
With default space
style option: require a single space inside
hash attributes braces
haml
%tag{ foo: bar }
With no_space
style option: require no space inside
hash attributes braces
haml
%tag{foo: bar}
This offers the ability to ensure consistency of Haml hash attributes style with ruby hash literal style (compare with the Style/SpaceInsideHashLiteralBraces cop in Rubocop).