aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js')
-rw-r--r--vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js87
1 files changed, 0 insertions, 87 deletions
diff --git a/vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js b/vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js
deleted file mode 100644
index cc584c0..0000000
--- a/vanilla/node_modules/css-tree/lib/tokenizer/OffsetToLocation.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import { adoptBuffer } from './adopt-buffer.js';
-import { isBOM } from './char-code-definitions.js';
-
-const N = 10;
-const F = 12;
-const R = 13;
-
-function computeLinesAndColumns(host) {
- const source = host.source;
- const sourceLength = source.length;
- const startOffset = source.length > 0 ? isBOM(source.charCodeAt(0)) : 0;
- const lines = adoptBuffer(host.lines, sourceLength);
- const columns = adoptBuffer(host.columns, sourceLength);
- let line = host.startLine;
- let column = host.startColumn;
-
- for (let i = startOffset; i < sourceLength; i++) {
- const code = source.charCodeAt(i);
-
- lines[i] = line;
- columns[i] = column++;
-
- if (code === N || code === R || code === F) {
- if (code === R && i + 1 < sourceLength && source.charCodeAt(i + 1) === N) {
- i++;
- lines[i] = line;
- columns[i] = column;
- }
-
- line++;
- column = 1;
- }
- }
-
- lines[sourceLength] = line;
- columns[sourceLength] = column;
-
- host.lines = lines;
- host.columns = columns;
- host.computed = true;
-}
-
-export class OffsetToLocation {
- constructor(source, startOffset, startLine, startColumn) {
- this.setSource(source, startOffset, startLine, startColumn);
- this.lines = null;
- this.columns = null;
- }
- setSource(source = '', startOffset = 0, startLine = 1, startColumn = 1) {
- this.source = source;
- this.startOffset = startOffset;
- this.startLine = startLine;
- this.startColumn = startColumn;
- this.computed = false;
- }
- getLocation(offset, filename) {
- if (!this.computed) {
- computeLinesAndColumns(this);
- }
-
- return {
- source: filename,
- offset: this.startOffset + offset,
- line: this.lines[offset],
- column: this.columns[offset]
- };
- }
- getLocationRange(start, end, filename) {
- if (!this.computed) {
- computeLinesAndColumns(this);
- }
-
- return {
- source: filename,
- start: {
- offset: this.startOffset + start,
- line: this.lines[start],
- column: this.columns[start]
- },
- end: {
- offset: this.startOffset + end,
- line: this.lines[end],
- column: this.columns[end]
- }
- };
- }
-};