UNPKG

1.86 kBJavaScriptView Raw
1'use strict';
2Object.defineProperty(exports, "__esModule", { value: true });
3var lineExp = /\r?\n/g;
4function getLinesAt(stream, start, end) {
5 if (end === void 0) { end = 0; }
6 // TODO improve line grabber (remove horrible split for top-down line parser)
7 var arr = stream.split(lineExp);
8 start = Math.max(start, 0);
9 if (!end) {
10 end = arr.length - 1;
11 }
12 else {
13 end = Math.min(end, arr.length - 1);
14 }
15 end = Math.max(end, start + 1);
16 return arr.slice(start, end + 1);
17}
18exports.getLinesAt = getLinesAt;
19function untrail(str) {
20 if (typeof str !== 'string') {
21 return String(str);
22 }
23 return str.replace(/\/$/, '');
24}
25exports.untrail = untrail;
26var longString = '----------------------------------------';
27function charPointer(column) {
28 if (longString.length < column) {
29 for (var i = longString.length; i < column; i++) {
30 longString += '-';
31 }
32 }
33 return longString.substr(0, column) + '^';
34}
35exports.charPointer = charPointer;
36// TODO harden for deeper lines
37function highlightPos(stream, line, column) {
38 var lines = getLinesAt(stream, 0, line + 2);
39 if (typeof column === 'number') {
40 lines.splice(line + 1, 0, charPointer(column));
41 }
42 return lines.join('\n');
43}
44exports.highlightPos = highlightPos;
45function linkPos(dest, line, column, oneBased) {
46 if (oneBased === void 0) { oneBased = false; }
47 if (typeof column !== 'number') {
48 column = 0;
49 }
50 if (typeof line !== 'number') {
51 line = 0;
52 }
53 if (oneBased) {
54 column += 1;
55 line += 1;
56 }
57 // return path.resolve(dest) + '[' + line + ',' + column + ']';
58 return dest + '[' + line + ',' + column + ']';
59}
60exports.linkPos = linkPos;
61//# sourceMappingURL=utils.js.map
\No newline at end of file