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

Так что мало что мы можем сделать здесь.

Другие вопросы по тегам