Atom/Sass-lint: регулярное выражение для имени класса sass-lint.yml
У меня есть файл 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) шашлык (например: this-is-kebab-case
- все строчные с тире между)
Очень распространенный шаблон будет выглядеть так:ComponentName__element-name--modifier-name
Несколько вещей уже работают, но я хотел бы также оценить вложенные селекторы BEM в моих файлах scss:
&__burgerCross {…}
или же &__burger_cross
или же &__burger__cross
например, следует оценивать как ложное. Это должно быть &__burger-cross
Но я действительно не знаю, как обращаться с вложенными правилами.
Любая помощь по sass-lint и regex очень приветствуется.
1 ответ
То, что я хотел, было
Я хотел бы также оценить вложенные селекторы BEM в моих файлах scss:
Мое регулярное выражение на самом деле уже выдвигало на первый план все разыскиваемые случаи, а нежелательные не были сопоставлены. Проблема заключалась в том, что линтер не может связывать вложенные селекторы БЭМ.:(. Читайте об этом здесь: https://github.com/brigade/scss-lint/issues/339
Так что мало что мы можем сделать здесь.