UNPKG

definition-header

Version:
61 lines 1.86 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var lineExp = /\r?\n/g; function getLinesAt(stream, start, end) { if (end === void 0) { end = 0; } // TODO improve line grabber (remove horrible split for top-down line parser) var arr = stream.split(lineExp); start = Math.max(start, 0); if (!end) { end = arr.length - 1; } else { end = Math.min(end, arr.length - 1); } end = Math.max(end, start + 1); return arr.slice(start, end + 1); } exports.getLinesAt = getLinesAt; function untrail(str) { if (typeof str !== 'string') { return String(str); } return str.replace(/\/$/, ''); } exports.untrail = untrail; var longString = '----------------------------------------'; function charPointer(column) { if (longString.length < column) { for (var i = longString.length; i < column; i++) { longString += '-'; } } return longString.substr(0, column) + '^'; } exports.charPointer = charPointer; // TODO harden for deeper lines function highlightPos(stream, line, column) { var lines = getLinesAt(stream, 0, line + 2); if (typeof column === 'number') { lines.splice(line + 1, 0, charPointer(column)); } return lines.join('\n'); } exports.highlightPos = highlightPos; function linkPos(dest, line, column, oneBased) { if (oneBased === void 0) { oneBased = false; } if (typeof column !== 'number') { column = 0; } if (typeof line !== 'number') { line = 0; } if (oneBased) { column += 1; line += 1; } // return path.resolve(dest) + '[' + line + ',' + column + ']'; return dest + '[' + line + ',' + column + ']'; } exports.linkPos = linkPos; //# sourceMappingURL=utils.js.map