diff --git a/.changeset/clean-snakes-cheat.md b/.changeset/clean-snakes-cheat.md new file mode 100644 index 0000000000..f5997ce3f0 --- /dev/null +++ b/.changeset/clean-snakes-cheat.md @@ -0,0 +1,5 @@ +--- +"stylelint": patch +--- + +Fixed: `declaration-property-value-no-unknown` parse error for `alpha(opacity=n)` to report as violation diff --git a/lib/rules/declaration-property-value-no-unknown/__tests__/index.js b/lib/rules/declaration-property-value-no-unknown/__tests__/index.js index 99748a5b8d..7a12acfb53 100644 --- a/lib/rules/declaration-property-value-no-unknown/__tests__/index.js +++ b/lib/rules/declaration-property-value-no-unknown/__tests__/index.js @@ -124,6 +124,14 @@ testRule({ endLine: 1, endColumn: 17, }, + { + code: 'a { filter: alpha(opacity=30); }', + message: messages.rejectedParseError('filter', 'alpha(opacity=30)'), + line: 1, + column: 13, + endLine: 1, + endColumn: 30, + }, ], }); diff --git a/lib/rules/declaration-property-value-no-unknown/index.js b/lib/rules/declaration-property-value-no-unknown/index.js index 6c095e1e8c..0f8902b32f 100644 --- a/lib/rules/declaration-property-value-no-unknown/index.js +++ b/lib/rules/declaration-property-value-no-unknown/index.js @@ -19,6 +19,8 @@ const ruleName = 'declaration-property-value-no-unknown'; const messages = ruleMessages(ruleName, { rejected: (property, value) => `Unexpected unknown value "${value}" for property "${property}"`, + rejectedParseError: (property, value) => + `Cannot parse property value "${value}" for property "${property}"`, }); const meta = { @@ -91,9 +93,16 @@ const rule = (primary, secondaryOptions) => { if (containsUnsupportedFunction(cssTreeValueNode)) return; } catch (e) { - result.warn(`Cannot parse property value "${value}"`, { + const index = declarationValueIndex(decl); + const endIndex = index + value.length; + + report({ + message: messages.rejectedParseError(prop, value), node: decl, - stylelintType: 'parseError', + index, + endIndex, + result, + ruleName, }); return;