diff --git a/spec/runtime/node_spec.cc b/spec/runtime/node_spec.cc index a85288d0..68468076 100644 --- a/spec/runtime/node_spec.cc +++ b/spec/runtime/node_spec.cc @@ -12,7 +12,15 @@ describe("Node", []() { before_each([&]() { document = ts_document_make(); ts_document_set_language(document, ts_language_json()); - ts_document_set_input_string(document, " [123, false, {\"x\": null}]"); + ts_document_set_input_string(document,"\n" + "\n" + "[\n" + " 123,\n" + " false,\n" + " {\n" + " \"x\": null\n" + " }\n" + "]"); ts_document_parse(document); array_node = ts_document_root_node(document); @@ -41,13 +49,13 @@ describe("Node", []() { AssertThat(ts_node_name(child3, document), Equals("object")); AssertThat(ts_node_pos(array_node).bytes, Equals(2)); - AssertThat(ts_node_size(array_node).bytes, Equals(25)); + AssertThat(ts_node_size(array_node).bytes, Equals(41)); AssertThat(ts_node_start_point(array_node).row, Equals(0)); - AssertThat(ts_node_start_point(array_node).column, Equals(2)); + AssertThat(ts_node_start_point(array_node).column, Equals(0)); - AssertThat(ts_node_end_point(array_node).row, Equals(0)); - AssertThat(ts_node_end_point(array_node).column, Equals(27)); + AssertThat(ts_node_end_point(array_node).row, Equals(6)); + AssertThat(ts_node_end_point(array_node).column, Equals(0)); AssertThat(ts_node_pos(child1).bytes, Equals(3)); AssertThat(ts_node_size(child1).bytes, Equals(3)); @@ -105,13 +113,13 @@ describe("Node", []() { AssertThat(ts_node_pos(child1).bytes, Equals(2)); AssertThat(ts_node_size(child1).bytes, Equals(1)); - AssertThat(ts_node_pos(child3).bytes, Equals(6)); + AssertThat(ts_node_pos(child3).bytes, Equals(9)); AssertThat(ts_node_size(child3).bytes, Equals(1)); - AssertThat(ts_node_pos(child5).bytes, Equals(13)); + AssertThat(ts_node_pos(child5).bytes, Equals(18)); AssertThat(ts_node_size(child5).bytes, Equals(1)); - AssertThat(ts_node_pos(child7).bytes, Equals(26)); + AssertThat(ts_node_pos(child7).bytes, Equals(42)); AssertThat(ts_node_size(child7).bytes, Equals(1)); AssertThat(ts_node_child_count(child6), Equals(5)) @@ -218,15 +226,15 @@ describe("Node", []() { describe("find_for_range(start, end)", [&]() { describe("when there is a leaf node that spans the given range exactly", [&]() { it("returns that leaf node", [&]() { - TSNode leaf = ts_node_named_descendent_for_range(array_node, 16, 18); + TSNode leaf = ts_node_named_descendent_for_range(array_node, 28, 30); AssertThat(ts_node_name(leaf, document), Equals("string")); AssertThat(ts_node_size(leaf).bytes, Equals(3)); - AssertThat(ts_node_pos(leaf).bytes, Equals(16)); + AssertThat(ts_node_pos(leaf).bytes, Equals(28)); - leaf = ts_node_named_descendent_for_range(array_node, 3, 5); + leaf = ts_node_named_descendent_for_range(array_node, 7, 9); AssertThat(ts_node_name(leaf, document), Equals("number")); AssertThat(ts_node_size(leaf).bytes, Equals(3)); - AssertThat(ts_node_pos(leaf).bytes, Equals(3)); + AssertThat(ts_node_pos(leaf).bytes, Equals(7)); }); }); diff --git a/src/runtime/lexer.c b/src/runtime/lexer.c index d15f8d19..91af5222 100644 --- a/src/runtime/lexer.c +++ b/src/runtime/lexer.c @@ -69,7 +69,7 @@ static bool ts_lexer__advance(TSLexer *self, TSStateId state) { if (self->lookahead == '\n') { self->current_point.row += 1; - self->current_point.column = 1; + self->current_point.column = 0; } else { self->current_point.column += 1; }