@projectwallace/css-parser 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,10 +17,11 @@ class ValueParser {
17
17
  }
18
18
  // Parse a declaration value range into value nodes
19
19
  // Returns array of value node indices
20
- parse_value(start, end) {
20
+ parse_value(start, end, start_line, start_column) {
21
21
  this.value_end = end;
22
22
  this.lexer.pos = start;
23
- this.lexer.line = 1;
23
+ this.lexer.line = start_line;
24
+ this.lexer.column = start_column;
24
25
  let nodes = [];
25
26
  while (this.lexer.pos < this.value_end) {
26
27
  this.lexer.next_token_fast(false);
@@ -80,8 +81,8 @@ class ValueParser {
80
81
  node_type,
81
82
  start,
82
83
  end - start,
83
- this.lexer.line,
84
- this.lexer.column
84
+ this.lexer.token_line,
85
+ this.lexer.token_column
85
86
  );
86
87
  this.arena.set_content_length(node, end - start);
87
88
  return node;
@@ -104,8 +105,8 @@ class ValueParser {
104
105
  start,
105
106
  0,
106
107
  // length unknown yet
107
- this.lexer.line,
108
- this.lexer.column
108
+ this.lexer.token_line,
109
+ this.lexer.token_column
109
110
  );
110
111
  this.arena.set_content_start_delta(node, 0);
111
112
  this.arena.set_content_length(node, name_end - start);
@@ -181,8 +182,8 @@ class ValueParser {
181
182
  start,
182
183
  0,
183
184
  // length unknown yet
184
- this.lexer.line,
185
- this.lexer.column
185
+ this.lexer.token_line,
186
+ this.lexer.token_column
186
187
  );
187
188
  let children = [];
188
189
  let paren_depth = 1;
@@ -213,7 +214,7 @@ class ValueParser {
213
214
  function parse_value(value_string) {
214
215
  const arena = new CSSDataArena(CSSDataArena.capacity_for_source(value_string.length));
215
216
  const value_parser = new ValueParser(arena, value_string);
216
- const node_indices = value_parser.parse_value(0, value_string.length);
217
+ const node_indices = value_parser.parse_value(0, value_string.length, 1, 1);
217
218
  return node_indices.map((index) => new CSSNode(arena, value_string, index));
218
219
  }
219
220
 
package/dist/parse.js CHANGED
@@ -213,6 +213,8 @@ class Parser {
213
213
  this.arena.set_content_start_delta(declaration, 0);
214
214
  this.arena.set_content_length(declaration, prop_end - prop_start);
215
215
  let value_start = this.lexer.token_start;
216
+ let value_start_line = this.lexer.token_line;
217
+ let value_start_column = this.lexer.token_column;
216
218
  let value_end = value_start;
217
219
  let has_important = false;
218
220
  let last_end = this.lexer.token_end;
@@ -242,7 +244,7 @@ class Parser {
242
244
  this.arena.set_value_start_delta(declaration, trimmed[0] - prop_start);
243
245
  this.arena.set_value_length(declaration, trimmed[1] - trimmed[0]);
244
246
  if (this.parse_values_enabled && this.value_parser) {
245
- let valueNodes = this.value_parser.parse_value(trimmed[0], trimmed[1]);
247
+ let valueNodes = this.value_parser.parse_value(value_start, trimmed[1], value_start_line, value_start_column);
246
248
  this.arena.append_children(declaration, valueNodes);
247
249
  }
248
250
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectwallace/css-parser",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "High-performance CSS lexer and parser, optimized for CSS inspection and analysis",
5
5
  "author": "Bart Veneman <bat@projectwallace.com>",
6
6
  "license": "MIT",