definition-header
Version:
DefinitelyTyped definition header tools
61 lines • 1.86 kB
JavaScript
;
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