Skip to content

Commit d7aaf53

Browse files
committed
feat: Link to rule doc
1 parent eee53ed commit d7aaf53

File tree

3 files changed

+35
-4
lines changed

3 files changed

+35
-4
lines changed

src/lint/configs/eslint-config-eslint.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@
196196
"eqeqeq": 2,
197197
"func-call-spacing": "off",
198198
"func-names": "off",
199+
"func-name-matching": "off",
199200
"func-style": [
200201
2,
201202
"declaration"

src/results.js renamed to src/results/index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import MatreshkaArray from 'matreshka/array';
2-
import plugins from './lint/plugins';
2+
import ResultsItem from './item';
33

44
export default class Results extends MatreshkaArray {
55
itemRenderer = `<div class="alert alert-danger">
66
{{ message }}
7-
({{ ruleId }})
7+
(<a href="{{ href }}" target="_blank">{{ ruleId }}</a>)
88
</div>`;
9+
Model = ResultsItem;
910
constructor(data, parent) {
1011
super()
1112
.bindNode('sandbox', parent.select('.results'))
12-
.calc('displayMessage', ['message', 'ruleId'], (message, ruleId) => {
13+
/*.calc('displayMessage', ['message', 'ruleId'], (message, ruleId) => {
1314
if(ruleId) {
1415
const pluginName = ruleId.includes('/') ? ruleId.split('/')[0] : null;
1516
const plugin = pluginName ? plugins.find(item => item.name === pluginName) : null;
@@ -28,7 +29,7 @@ export default class Results extends MatreshkaArray {
2829
}
2930
3031
return message;
31-
});
32+
});*/
3233
}
3334

3435
}

src/results/item.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import MatreshkaObject from 'matreshka/object';
2+
import plugins from '../lint/plugins';console.log(plugins);
3+
4+
export default class extends MatreshkaObject {
5+
constructor(data) {
6+
super(data)
7+
.calc({
8+
href: {
9+
source: 'ruleId',
10+
handler: ruleId => {
11+
const splitted = ruleId.split('/');
12+
let pluginName;
13+
let ruleName;
14+
15+
if(splitted.length === 2) {
16+
[pluginName, ruleName] = splitted;
17+
} else {
18+
pluginName = 'internal';
19+
ruleName = ruleId;
20+
}
21+
22+
const plugin = plugins.find(item => item.name === pluginName);
23+
24+
return plugin.getСlarificationURL(ruleName);
25+
}
26+
}
27+
});
28+
}
29+
}

0 commit comments

Comments
 (0)