jscs
Version:
JavaScript Style Checker
40 lines (33 loc) • 1.3 kB
JavaScript
var assert = require('assert');
module.exports = function() {};
module.exports.prototype = {
configure: function(keywords) {
assert(Array.isArray(keywords), 'requireSpaceAfterKeywords option requires array value');
this._keywordIndex = {};
for (var i = 0, l = keywords.length; i < l; i++) {
this._keywordIndex[keywords[i]] = true;
}
},
getOptionName: function () {
return 'requireSpaceAfterKeywords';
},
check: function(file, errors) {
var keywordIndex = this._keywordIndex;
var tokens = file.getTokens();
for (var i = 0, l = tokens.length; i < l; i++) {
var token = tokens[i];
if (token.type === 'Keyword' && keywordIndex[token.value]) {
var nextToken = tokens[i + 1];
if (nextToken && nextToken.range[0] === token.range[1]) {
if (nextToken.type !== 'Punctuator' || nextToken.value !== ';') {
errors.add(
'Missing space after `' + token.value + '` keyword',
nextToken.loc.start.line,
nextToken.loc.start.column
);
}
}
}
}
}
};