fixup 99512da9 and 493c1a65: show csslint rule info in issues info box

This commit is contained in:
tophf 2017-12-04 08:32:27 +03:00
parent c0c60fb7a2
commit 48dda41e2e
2 changed files with 18 additions and 9 deletions

View File

@ -366,11 +366,11 @@ function showLintHelp() {
? 'https://stylelint.io/user-guide/rules/' ? 'https://stylelint.io/user-guide/rules/'
// some CSSLint rules do not have a url // some CSSLint rules do not have a url
: 'https://github.com/CSSLint/csslint/issues/535'; : 'https://github.com/CSSLint/csslint/issues/535';
let headerLink, template; let headerLink, template, csslintRules;
if (linter === 'csslint') { if (linter === 'csslint') {
headerLink = $createLink('https://github.com/CSSLint/csslint/wiki/Rules-by-ID', 'CSSLint'); headerLink = $createLink('https://github.com/CSSLint/csslint/wiki/Rules-by-ID', 'CSSLint');
template = ruleID => { template = ruleID => {
const rule = linterConfig.allRuleIds.csslint.find(rule => rule.id === ruleID); const rule = csslintRules.find(rule => rule.id === ruleID);
return rule && return rule &&
$create('li', [ $create('li', [
$create('b', $createLink(rule.url || baseUrl, rule.name)), $create('b', $createLink(rule.url || baseUrl, rule.name)),
@ -382,16 +382,20 @@ function showLintHelp() {
headerLink = $createLink(baseUrl, 'stylelint'); headerLink = $createLink(baseUrl, 'stylelint');
template = rule => template = rule =>
$create('li', $create('li',
$createLink(baseUrl + rule, rule)); rule === 'CssSyntaxError' ? rule : $createLink(baseUrl + rule, rule));
} }
const header = t('linterIssuesHelp', '\x01').split('\x01'); const header = t('linterIssuesHelp', '\x01').split('\x01');
const activeRules = new Set($$('#lint td[role="severity"]').map(el => el.dataset.rule)); const activeRules = new Set($$('#lint td[role="severity"]').map(el => el.dataset.rule));
return showHelp(t('linterIssues'), Promise.resolve(linter !== 'csslint' || linterConfig.invokeWorker({action: 'getAllRuleInfos'}))
$create([ .then(data => {
header[0], headerLink, header[1], csslintRules = data;
$create('ul.rules', [...activeRules.values()].map(template)), showHelp(t('linterIssues'),
]) $create([
); header[0], headerLink, header[1],
$create('ul.rules', [...activeRules.values()].map(template)),
])
);
});
} }
function showLinterErrorMessage(title, contents, popup) { function showLinterErrorMessage(title, contents, popup) {

View File

@ -10994,6 +10994,11 @@ self.onmessage = ({data: {action = 'run', code, config}}) => {
self.postMessage(CSSLint.getRules().map(rule => rule.id)); self.postMessage(CSSLint.getRules().map(rule => rule.id));
return; return;
case 'getAllRuleInfos':
// the functions are non-tranferable
self.postMessage(CSSLint.getRules().map(rule => JSON.parse(JSON.stringify(rule))));
return;
case 'run': case 'run':
Object.defineProperty(config, 'errors', {get: () => 0, set: () => 0}); Object.defineProperty(config, 'errors', {get: () => 0, set: () => 0});
config['uso-vars'] = 1; config['uso-vars'] = 1;