feat: Custom property value replacement in lexer.matchProperty #3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change gives us the ability to pass in substitute values for variables when validating a property. The idea is that ESLint could keep track of the last value for any given custom property and pass that into
lexer.matchProperty()
so that we can actually validate property values containingvar()
(right now CSSTree just throws an error, which we swallow in the ESLint rule).Ported from csstree#321
This pull request introduces changes to the lexer to support matching CSS properties that use the
var()
function. The changes include adding tests forvar()
handling and modifying the lexer to replacevar()
tokens with their corresponding values.Enhancements to
var()
handling:lib/__tests/lexer-match-property.js
: Added tests to ensurevar()
is correctly matched when variable values are provided and returns an error when not supported.Lexer modifications:
lib/lexer/Lexer.js
: Added thereplaceVarTokens
function to handle the replacement ofvar()
tokens with their corresponding values. ModifiedmatchSyntax
,matchDeclaration
, andmatchProperty
functions to support options for variable values. [1] [2] [3]