UNPKG

jscs

Version:
42 lines (36 loc) 1.15 kB
/** * Returns token by range start. Ignores () * @param {JsFile} file * @param {Number} range * @param {Boolean} [backward=false] Direction */ module.exports.getTokenByRangeStart = function(file, range, backward) { var tokens = file.getTokens(); // get next token var tokenPos = file.getTokenPosByRangeStart(range); var token = tokens[tokenPos]; // we should check for "(" if we go backward var parenthesis = backward ? '(' : ')'; // if token is ")" -> get next token // for example (a) + (b) // next token ---^ // we should find (a) + (b) // ------------------^ if (token && token.type === 'Punctuator' && token.value === parenthesis ) { var pos = backward ? token.range[0] - 1 : token.range[1]; tokenPos = file.getTokenPosByRangeStart(pos); token = tokens[tokenPos]; } return token; }; /** * Returns true is token is punctuator * @param {Object} token * @param {String} punctuator */ module.exports.tokenIsPunctuator = function(token, punctuator) { return token && token.type === 'Punctuator' && token.value === punctuator; };