Atom / Sass-lint: Regex для имени класса 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) kebabcase (например: this-is-kebab-case - все строчные буквы с тире между ними)

Очень распространенный шаблон будет выглядеть так: ComponentName__element-name--modifier-name

Немало вещей уже работает, но я хотел бы также оценить вложенные селекторы БЭМ в моих файлах scss:

Например, &__burgerCross {…}, &__burger_cross или &__burger__cross следует оценивать как ложное. Это должно быть &__burger-cross

Но я действительно не знаю, как обрабатывать вложенные правила.

Любая помощь по sass-lint и regex приветствуется.


person Merc    schedule 18.04.2018    source источник
comment
Вы думаете, что все знают, что такое BEMified kebab-case? Ссылка на ссылку здесь и там не повредит.   -  person wp78de    schedule 19.04.2018
comment
^([a-zA-Z]+|__[a-z]+)((?:__|-|--|)[a-zA-Z]+)*(__|--)?, это то, что вы хотите?   -  person wp78de    schedule 19.04.2018
comment
@ wp78de ты прав!   -  person Merc    schedule 20.04.2018
comment
@ wp78de Я попробовал ваше предложение, но мне не нужен весь PascalCase после первого слова: тем временем я придумал следующее: regex101.com/r/PBNJvx/3 Он работает почти во всех случаях, но, к сожалению, он также включает некоторые из них, которые мы не хотим разрешать. В любом случае спасибо за вашу помощь   -  person Merc    schedule 20.04.2018


Ответы (1)


То, что я хотел, было

Я также хотел бы оценить вложенные БЭМ-селекторы в моих scss-файлах:

Мое регулярное выражение на самом деле уже выделяло все требуемые случаи, а нежелательные не были сопоставлены. Проблема заключалась в том, что линтер не может линтировать вложенные селекторы БЭМ. :(. Прочтите об этом здесь: https://github.com/brigade/scss-lint/issues/339#issuecomment-72404341

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

person Merc    schedule 20.04.2018