Skip to content

Commit f873bee

Browse files
author
ldoblies
committed
Add js quickfix example
1 parent 504fbc0 commit f873bee

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
define(function(require, exports, module) {
2+
"use strict";
3+
4+
var markerResolution = require('ext/language/MarkerResolution').MarkerResolution;
5+
6+
var JSResolver = function(ast){
7+
this.addResolutions = function(markers){
8+
var _self = this;
9+
markers.forEach(function(curMarker) {
10+
curMarker.resolutions = _self.getResolutions(curMarker);
11+
});
12+
};
13+
14+
this.getResolutions = function(marker){
15+
var type = this.getType(marker);
16+
if (type){
17+
if (typeof this[type] === 'function'){
18+
return this[type](marker);
19+
}
20+
}
21+
return [];
22+
};
23+
24+
this.getType = function(marker){
25+
var msg = marker.message;
26+
if (msg.indexOf("Missing semicolon") !== -1){
27+
return "missingSemicolon";
28+
}else if (msg.indexOf("Unnecessary semicolon") !== -1){
29+
return "unnecessarySemicolon";
30+
}
31+
return undefined;
32+
};
33+
34+
this.unnecessarySemicolon = function(marker){
35+
var label = "Remove semicolon";var image = "";
36+
var preview = "<b>Remove unnecessary semicolon</b>";
37+
38+
var appliedContent = "Not implemented";
39+
40+
return [markerResolution(label,image,preview,appliedContent)];
41+
};
42+
43+
this.missingSemicolon = function(marker){
44+
return [markerResolution("Not implemented", "", "Not implemented", "Not implemented")];
45+
};
46+
47+
};
48+
49+
exports.JSResolver = JSResolver;
50+
51+
});

plugins-client/ext.jslanguage/jshint.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ define(function(require, exports, module) {
99
var baseLanguageHandler = require('ext/language/base_handler');
1010
var lint = require("ace/mode/javascript/jshint").JSHINT;
1111
var handler = module.exports = Object.create(baseLanguageHandler);
12+
var JSResolver = require('ext/jslanguage/JSResolver').JSResolver;
1213

1314
var disabledJSHintWarnings = [/Missing radix parameter./,
1415
/Bad for in variable '(.+)'./,
@@ -83,6 +84,10 @@ handler.analyzeSync = function(value, ast) {
8384
message: warning.reason
8485
});
8586
});
87+
88+
var resolver = new JSResolver(ast);
89+
resolver.addResolutions(markers);
90+
8691
return markers;
8792
};
8893

0 commit comments

Comments
 (0)