1 |
|
2 |
|
3 |
|
4 |
|
5 | 'use strict';
|
6 | Object.defineProperty(exports, "__esModule", { value: true });
|
7 | exports.Util = void 0;
|
8 | class Util {
|
9 | static isUTF8BOM(char) {
|
10 | const uintArray = Uint8Array.from(Buffer.from(char, "UTF-8"));
|
11 | return uintArray[0] === 0xEF && uintArray[1] == 0xBB && uintArray[2] == 0xBF;
|
12 | }
|
13 | static isWhitespace(char) {
|
14 | return char === ' ' || char === '\t' || Util.isNewline(char);
|
15 | }
|
16 | static isNewline(char) {
|
17 | return char === '\r' || char === '\n';
|
18 | }
|
19 | static findLeadingNonWhitespace(content, escapeChar) {
|
20 | whitespaceCheck: for (let i = 0; i < content.length; i++) {
|
21 | switch (content.charAt(i)) {
|
22 | case ' ':
|
23 | case '\t':
|
24 | continue;
|
25 | case escapeChar:
|
26 | escapeCheck: for (let j = i + 1; j < content.length; j++) {
|
27 | switch (content.charAt(j)) {
|
28 | case ' ':
|
29 | case '\t':
|
30 | continue;
|
31 | case '\r':
|
32 |
|
33 | i = j + 1;
|
34 | continue whitespaceCheck;
|
35 | case '\n':
|
36 | i = j;
|
37 | continue whitespaceCheck;
|
38 | default:
|
39 | break escapeCheck;
|
40 | }
|
41 | }
|
42 |
|
43 | return -1;
|
44 | default:
|
45 | return i;
|
46 | }
|
47 | }
|
48 |
|
49 | return -1;
|
50 | }
|
51 | |
52 |
|
53 |
|
54 |
|
55 |
|
56 |
|
57 | static isInsideRange(position, range) {
|
58 | if (range.start.line === range.end.line) {
|
59 | return range.start.line === position.line
|
60 | && range.start.character <= position.character
|
61 | && position.character <= range.end.character;
|
62 | }
|
63 | else if (range.start.line === position.line) {
|
64 | return range.start.character <= position.character;
|
65 | }
|
66 | else if (range.end.line === position.line) {
|
67 | return position.character <= range.end.character;
|
68 | }
|
69 | return range.start.line < position.line && position.line < range.end.line;
|
70 | }
|
71 | }
|
72 | exports.Util = Util;
|