UNPKG

isml-linter

Version:

ISML Linter is a tool for examining if your project's templates follow a specified set of rules defined by your dev team. The available rules can be roughly grouped into:

48 lines (32 loc) 1.31 kB
const SingleLineRulePrototype = require('../prototypes/SingleLineRulePrototype'); const Constants = require('../../Constants'); const ruleId = require('path').basename(__filename).slice(0, -3); const description = 'Line contains only blank spaces'; const Rule = Object.create(SingleLineRulePrototype); Rule.init(ruleId, description); Rule.isBroken = function(line) { return line !== '' && line !== '\r' && line !== Constants.EOL && !/\S/.test(line); }; Rule.getColumnNumber = function() { return 1; }; Rule.getFixedContent = function(templateContent) { const GeneralUtils = require('../../util/GeneralUtils'); const lineBreak = GeneralUtils.getFileLineBreakStyle(templateContent); const lineArray = templateContent.split(lineBreak); const result = []; for (let i = 0; i < lineArray.length; i++) { const line = lineArray[i]; result.push(line.trim() ? line : line.trim()); } return GeneralUtils.applyLineBreak(result.join(lineBreak)); }; Rule.getFirstOccurrence = function(line) { let result = null; if (this.isBroken(line)) { result = { globalPos : 0, length : line.length + 1 }; } return result; }; module.exports = Rule;