Atom/Sass-lint:sass-lint.yml class-名称的正则表达式

Atom/Sass-lint: Regex for sass-lint.yml class-name

我有一个 sass-lint.yml 文件,其中包含以下规则:

class-name-format:
    - 1
    - convention: '^([a-zA-Z]*)(__[a-z]+)?(-[a-z]*)*(--[a-z]+)?$'

可以在此处检查正则表达式: https://regex101.com/r/SsVde6/2

不幸的是我无法让它正常工作。

在正则表达式测试器中,您会看到我想要包括哪些内容。 Class 名称的第一部分可以是 PascalCase 从那时起 BEMified (BEM) kebabcase(例如:this-is-kebab-case – 全部小写,中间有破折号)

一个非常常见的模式如下所示: ComponentName__element-name--modifier-name

很多东西已经工作了,但我也想在我的 scss 文件中评估嵌套的 BEM 选择器:

例如

&__burgerCross {…}&__burger_cross&__burger__cross 应评估为 false。这必须是 &__burger-cross

但我真的不知道如何处理嵌套规则。

非常欢迎对 sass-lint 和正则表达式的任何帮助。

我想要的是

I would like to evaluate nested BEM selectors in my scss files as well:

我的正则表达式实际上已经突出显示了所有通缉的案例,而不是不匹配的。 问题是,linter 不能检查嵌套的 BEM 选择器。 :(。 在这里阅读: https://github.com/brigade/scss-lint/issues/339#issuecomment-72404341

所以我们在这里能做的不多。