1 | 'use strict';
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var lineExp = /\r?\n/g;
|
4 | function getLinesAt(stream, start, end) {
|
5 | if (end === void 0) { end = 0; }
|
6 |
|
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 | }
|
18 | exports.getLinesAt = getLinesAt;
|
19 | function untrail(str) {
|
20 | if (typeof str !== 'string') {
|
21 | return String(str);
|
22 | }
|
23 | return str.replace(/\/$/, '');
|
24 | }
|
25 | exports.untrail = untrail;
|
26 | var longString = '----------------------------------------';
|
27 | function 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 | }
|
35 | exports.charPointer = charPointer;
|
36 |
|
37 | function 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 | }
|
44 | exports.highlightPos = highlightPos;
|
45 | function 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 |
|
58 | return dest + '[' + line + ',' + column + ']';
|
59 | }
|
60 | exports.linkPos = linkPos;
|
61 |
|
\ | No newline at end of file |