From 48dda41e2ec49efe3e94a1fdcaa3f1936d533c42 Mon Sep 17 00:00:00 2001 From: tophf Date: Mon, 4 Dec 2017 08:32:27 +0300 Subject: [PATCH] fixup 99512da9 and 493c1a65: show csslint rule info in issues info box --- edit/lint.js | 22 ++++++++++++--------- vendor-overwrites/csslint/csslint-worker.js | 5 +++++ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/edit/lint.js b/edit/lint.js index 814807b2..afc44211 100644 --- a/edit/lint.js +++ b/edit/lint.js @@ -366,11 +366,11 @@ function showLintHelp() { ? 'https://stylelint.io/user-guide/rules/' // some CSSLint rules do not have a url : 'https://github.com/CSSLint/csslint/issues/535'; - let headerLink, template; + let headerLink, template, csslintRules; if (linter === 'csslint') { headerLink = $createLink('https://github.com/CSSLint/csslint/wiki/Rules-by-ID', 'CSSLint'); template = ruleID => { - const rule = linterConfig.allRuleIds.csslint.find(rule => rule.id === ruleID); + const rule = csslintRules.find(rule => rule.id === ruleID); return rule && $create('li', [ $create('b', $createLink(rule.url || baseUrl, rule.name)), @@ -382,16 +382,20 @@ function showLintHelp() { headerLink = $createLink(baseUrl, 'stylelint'); template = rule => $create('li', - $createLink(baseUrl + rule, rule)); + rule === 'CssSyntaxError' ? rule : $createLink(baseUrl + rule, rule)); } const header = t('linterIssuesHelp', '\x01').split('\x01'); const activeRules = new Set($$('#lint td[role="severity"]').map(el => el.dataset.rule)); - return showHelp(t('linterIssues'), - $create([ - header[0], headerLink, header[1], - $create('ul.rules', [...activeRules.values()].map(template)), - ]) - ); + Promise.resolve(linter !== 'csslint' || linterConfig.invokeWorker({action: 'getAllRuleInfos'})) + .then(data => { + csslintRules = data; + showHelp(t('linterIssues'), + $create([ + header[0], headerLink, header[1], + $create('ul.rules', [...activeRules.values()].map(template)), + ]) + ); + }); } function showLinterErrorMessage(title, contents, popup) { diff --git a/vendor-overwrites/csslint/csslint-worker.js b/vendor-overwrites/csslint/csslint-worker.js index e150c755..03d92460 100644 --- a/vendor-overwrites/csslint/csslint-worker.js +++ b/vendor-overwrites/csslint/csslint-worker.js @@ -10994,6 +10994,11 @@ self.onmessage = ({data: {action = 'run', code, config}}) => { self.postMessage(CSSLint.getRules().map(rule => rule.id)); return; + case 'getAllRuleInfos': + // the functions are non-tranferable + self.postMessage(CSSLint.getRules().map(rule => JSON.parse(JSON.stringify(rule)))); + return; + case 'run': Object.defineProperty(config, 'errors', {get: () => 0, set: () => 0}); config['uso-vars'] = 1;