From e4ca324d605370a83d29e8be6706059527922698 Mon Sep 17 00:00:00 2001 From: Matt Wang Date: Sat, 16 May 2020 00:53:54 -0700 Subject: [PATCH] ignores WebExtension replacement keywords in isStandardSyntaxValue + two basic tests --- lib/utils/__tests__/isStandardSyntaxValue.test.js | 6 ++++++ lib/utils/isStandardSyntaxValue.js | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/lib/utils/__tests__/isStandardSyntaxValue.test.js b/lib/utils/__tests__/isStandardSyntaxValue.test.js index 44031c13ac..f5a66559a2 100644 --- a/lib/utils/__tests__/isStandardSyntaxValue.test.js +++ b/lib/utils/__tests__/isStandardSyntaxValue.test.js @@ -42,4 +42,10 @@ describe('isStandardSyntaxValue', () => { it('less interpolation', () => { expect(isStandardSyntaxValue('@{var}')).toBeFalsy(); }); + it('WebExtension replacement keyword', () => { + expect(isStandardSyntaxValue('__MSG_@@bidi_dir__')).toBeFalsy(); + }); + it('negative WebExtension replacement keyword', () => { + expect(isStandardSyntaxValue('__msg_@@bidi_dir__')).toBeTruthy(); + }); }); diff --git a/lib/utils/isStandardSyntaxValue.js b/lib/utils/isStandardSyntaxValue.js index f7da6ef853..5f8b430301 100644 --- a/lib/utils/isStandardSyntaxValue.js +++ b/lib/utils/isStandardSyntaxValue.js @@ -36,5 +36,12 @@ module.exports = function (value) { return false; } + // WebExtension replacement keyword used by Chrome/Firefox + // more information: https://developer.chrome.com/extensions/i18n + // and https://github.com/stylelint/stylelint/issues/4707 + if (/__MSG_[^\s]+__/.test(value)) { + return false; + } + return true; };