У меня есть файл sass-lint.yml со следующим правилом:
class-name-format:
- 1
- convention: '^([a-zA-Z]*)(__[a-z]+)?(-[a-z]*)*(--[a-z]+)?$'
Регулярное выражение можно проверить здесь: https://regex101.com/r/SsVde6/2
К сожалению, я не могу заставить его работать должным образом.
В тестере регулярных выражений вы видите, какие вещи я хочу включить. Первая часть имени класса может быть PascalCase с этого момента в BEMified (BEM) kebabcase (например: this-is-kebab-case
- все строчные буквы с тире между ними)
Очень распространенный шаблон будет выглядеть так: ComponentName__element-name--modifier-name
Немало вещей уже работает, но я хотел бы также оценить вложенные селекторы БЭМ в моих файлах scss:
Например, &__burgerCross {…}
, &__burger_cross
или &__burger__cross
следует оценивать как ложное. Это должно быть &__burger-cross
Но я действительно не знаю, как обрабатывать вложенные правила.
Любая помощь по sass-lint и regex приветствуется.
^([a-zA-Z]+|__[a-z]+)((?:__|-|--|)[a-zA-Z]+)*(__|--)?
, это то, что вы хотите? - person wp78de   schedule 19.04.2018