csstree / stylelint-validator

Stylelint plugin to validate CSS syntax
MIT License
93 stars 11 forks source link

Allow ignoreProperties to accept RegExp #45

Closed terrymun closed 1 year ago

terrymun commented 2 years ago

This is somewhat related to https://github.com/csstree/stylelint-validator/issues/19, but since v2 has been released, this likely concerns the new ignoreProperties configuration option.

The main use-case if for those using styled-components/emotion, where the use of stylelint-processor-styled-components will insert placeholders in the code, i.e. -styled-mixin0: $dummyValue. The $dummyValue value can be easily ignored by using a regex for ignoreValue config option. However, this isn't the same for the invalid property -styled-mixin0, because the processor appends an incremental number to the end of the property.

This means it is unnecessarily verbose to do this:

"csstree/validator": {
    "ignoreProperties": [
        "-styled-mixin0",
        "-styled-mixin1",
        "-styled-mixin2",
        "-styled-mixin3",
        "-styled-mixin4",
        "-styled-mixin5",
        "-styled-mixin6",
        "-styled-mixin7",
        "-styled-mixin8",
        "-styled-mixin9"
    ],
    "ignoreValue": "\\$dummyValue"
}

And this is not a safe way to fix the issue, since the number is arbitrary. What if we allow ignoreProperties to accept Array<string | RegExp>? By extension, we might want to extend the ignoreValue as well, so that it not only accepts string | RegExp but also Array<string | RegExp>.

I am happy to create a PR for this if necessary: but would love to hear your opinion on this.

lahmatiy commented 1 year ago

Fixed in 2.1.0

linusjf commented 8 months ago

FYI .. ignoreProperties does not accept a single string. It needs an array of length 1.