From 5acf815b7908453582ae1cf53c240310419ba7b7 Mon Sep 17 00:00:00 2001 From: tophf Date: Sat, 3 Mar 2018 17:28:29 +0300 Subject: [PATCH] report invalid selector in :not() as a warning to prevent failures when updating usercss styles that have to override [currently] invalid :not() selectors used by the site see #356 --- edit/lint-defaults-csslint.js | 1 + edit/lint.js | 2 +- vendor-overwrites/csslint/csslint.js | 13 +++++++++++++ vendor-overwrites/csslint/parserlib.js | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/edit/lint-defaults-csslint.js b/edit/lint-defaults-csslint.js index 104f767e..465a8215 100644 --- a/edit/lint-defaults-csslint.js +++ b/edit/lint-defaults-csslint.js @@ -10,6 +10,7 @@ window.linterConfig.defaults.csslint = { 'duplicate-properties': 1, 'empty-rules': 1, 'errors': 1, + 'warnings': 1, 'known-properties': 1, // Default disabled diff --git a/edit/lint.js b/edit/lint.js index 31a17484..ff44300c 100644 --- a/edit/lint.js +++ b/edit/lint.js @@ -59,7 +59,7 @@ var linterConfig = { // always use default syntax because we don't expose it in config UI config.syntax = this.defaults.stylelint.syntax; } - return config; + return Object.assign({}, this.defaults[linter] || {}, config); } else { return deepCopy(this.defaults[linter] || {}); } diff --git a/vendor-overwrites/csslint/csslint.js b/vendor-overwrites/csslint/csslint.js index fb0a3b8e..7696ea96 100644 --- a/vendor-overwrites/csslint/csslint.js +++ b/vendor-overwrites/csslint/csslint.js @@ -857,6 +857,19 @@ CSSLint.addRule({ }, }); +CSSLint.addRule({ + id: 'warnings', + name: 'Parsing warnings', + desc: 'This rule looks for parser warnings.', + browsers: 'All', + + init(parser, reporter) { + parser.addListener('warning', ({message, line, col}) => { + reporter.report(message, line, col, this); + }); + }, +}); + CSSLint.addRule({ id: 'fallback-colors', name: 'Require fallback colors', diff --git a/vendor-overwrites/csslint/parserlib.js b/vendor-overwrites/csslint/parserlib.js index b1c75383..ee0ea4fa 100644 --- a/vendor-overwrites/csslint/parserlib.js +++ b/vendor-overwrites/csslint/parserlib.js @@ -4627,7 +4627,7 @@ self.parserlib = (() => { parts[0].modifiers.length + (parts[0].elementName ? 1 : 0) > 1 || /^:not\b/i.test(parts[0])) { this.fire({ - type: 'error', + type: 'warning', message: `Simple selector expected, but found '${arg.join(', ')}'`, }, arg[0]); }